<?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>26838</bug_id>
          
          <creation_ts>2009-06-30 06:15:51 -0700</creation_ts>
          <short_desc>Multithread support for JSC on UNIX</short_desc>
          <delta_ts>2011-07-20 12:05:01 -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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55433</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Martin Zoubek">martin.zoubek</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>alex</cc>
    
    <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jaroslav.franek</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>mario.bensi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>paroga</cc>
    
    <cc>s.mathur</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129051</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Zoubek">martin.zoubek</who>
    <bug_when>2009-06-30 06:15:51 -0700</bug_when>
    <thetext>Build with ENABLE_JSC_MULTIPLE_THREADS=1 is currently not supported on UNIX (Linux). It fails to compile Collector.cpp, because it reaches #error directives in suspendThread() and resumeThread().
On UNIX systems (with pthread library present), there are generally no pthread_suspend() and pthread_resume() functions. I have implemented them using the per-thread signal handler trick -
- when a thread is created, its signal mask is changed to accept SIGUSR2 (can be changed to arbitrary maskable signal)
- global signal handler for SIGUSR2 is added
- suspending a thread is realized sending SIGUSR2 to given thread
- signal handler is activated, it calls sigwait to wait for another SIGUSR2
- thread is then resumed by sending SIGUSR2 to that thread

Attached patch implements these changes to Collector.cpp. I have successfully built it on RHEL3 and tested with valgrind and helgrind, running multiple scripts in parallel threads seems to work flawlessly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129052</commentid>
    <comment_count>1</comment_count>
      <attachid>32061</attachid>
    <who name="Martin Zoubek">martin.zoubek</who>
    <bug_when>2009-06-30 06:16:29 -0700</bug_when>
    <thetext>Created attachment 32061
WebKit-r45357-Collector-multithread-support-for-UNIX.diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129059</commentid>
    <comment_count>2</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-30 06:38:25 -0700</bug_when>
    <thetext>Hi Martin

Thanks for the patch. This needs a ChangeLog and review flag set to r?. See http://webkit.org/coding/contributing.html for more info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129270</commentid>
    <comment_count>3</comment_count>
      <attachid>32117</attachid>
    <who name="Martin Zoubek">martin.zoubek</who>
    <bug_when>2009-07-01 00:27:58 -0700</bug_when>
    <thetext>Created attachment 32117
WebKit-r45374-Collector-multithread-support-for-UNIX.diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129752</commentid>
    <comment_count>4</comment_count>
      <attachid>32117</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-07-03 16:52:43 -0700</bug_when>
    <thetext>Comment on attachment 32117
WebKit-r45374-Collector-multithread-support-for-UNIX.diff

Some style issues:

&gt;#define SIG_THREAD_SUSPEND_RESUME SIGUSR2

I&apos;d consider making this a static const int, rather than a #define. We prefer to avoid preprocessor macros.


&gt; static void pth_sig_suspend_resume(int signo)

This function should use WebKit naming style, for example sendSuspendResumeSignal()


&gt; -  markConservatively(static_cast&lt;void*&gt;(&amp;regs), static_cast&lt;void*&gt;(reinterpret_cast&lt;char*&gt;(&amp;regs) + regSize));
&gt; +  if (regSize &gt; 0)
&gt; +              markConservatively(static_cast&lt;void*&gt;(&amp;regs), static_cast&lt;void*&gt;(reinterpret_cast&lt;char*&gt;(&amp;regs) + regSize));

This change seems unrelated to the rest of the patch. Please submit as a separate patch or document the purpose of this change in the ChangeLog.


Also, since changes to this area can be performance-sensitive, please provide before and after SunSpider results (as determined by the run-sunspider script on the command line).

This patch looks great! r- for now to attend to the above issues, and please resubmit with the requested revisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133453</commentid>
    <comment_count>5</comment_count>
      <attachid>33173</attachid>
    <who name="Martin Zoubek">martin.zoubek</who>
    <bug_when>2009-07-21 05:47:30 -0700</bug_when>
    <thetext>Created attachment 33173
WebKit-r46156-Collector-multithread-support-for-UNIX.diff

Hi Maciej,
thanks for your review. Changes since last version of the patch:
- SIG_THREAD_SUSPEND_RESUME becomes static const int
- pth_sig_suspend_resume was renamed
- unrelated check for registers size in Heap::markOtherThreadConservatively() was removed, it is not needed
- signal handler was modified to use sigsuspend() instead of sigwait(), because sigwait() is not async signal safe

Sunspider results:
1. Single threaded gtk+ build
before: 525.5ms +/- 0.4%
after: 524.8ms +/- 0.6% (no change)
2. Multi threaded gtk+ build
before: not buildable
after: 544.3ms +/- 0.7%

Tests were performed on Fedora 11 x86_64 in VMware machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138045</commentid>
    <comment_count>6</comment_count>
      <attachid>33173</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 12:34:43 -0700</bug_when>
    <thetext>Comment on attachment 33173
WebKit-r46156-Collector-multithread-support-for-UNIX.diff

We really really need to use some sort o Threading abstraction for this stuff.  Someone just posted a QNX patch which has similar #ifdef hacks.  Instead we should have a ThreadingGtk and ThreadingQNX files which know how to get things like stackbase.  Collector could then use those.

I don&apos;t think we can/should keep polluting Collector.cpp like this.  If Maciej feels differently, he should feel completely welcome to r+ this patch, I will not stand in your way if one of the more-regular JSC authors approves of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138621</commentid>
    <comment_count>7</comment_count>
    <who name="Jaroslav Franek">jaroslav.franek</who>
    <bug_when>2009-08-10 02:39:40 -0700</bug_when>
    <thetext>(In reply to comment #6)

As a SW Architect, I understand your point, but look at the reality: Different people are contributing pieces for only the architectures they are using. We at Acision have limited resources and will not engage in writing abstraction layer for any platform possible while x86_64 Linux is what we use exclusively. Those are business/pragmatic constraints.

In my opinion it is better to refactor &gt;&gt;existing&lt;&lt; contributions into an abstraction layer, rather than waiting for a perfect solution - it usually takes ages.

Should you provide an abstract interface you speak of, we could adjust our piece accordingly. Otherwise Martin&apos;s contribution stands as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359322</commentid>
    <comment_count>8</comment_count>
      <attachid>84113</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-02-28 13:55:55 -0800</bug_when>
    <thetext>Created attachment 84113
Proposed patch

Patch updated, now we have two files outside Collector handling this code: StackBounds and MachineStackMarker. Added also GTK and WORKERS in Platform.h to use JSC_MULTIPLE_THREADS trying to fix bug 55378. There is a style issue but it is a pthread define.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359325</commentid>
    <comment_count>9</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-02-28 13:56:56 -0800</bug_when>
    <thetext>*** Bug 55378 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359326</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-28 13:58:49 -0800</bug_when>
    <thetext>Attachment 84113 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MachineStackMarker.cpp:102:  SIG_THREAD_SUSPEND_RESUME is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359358</commentid>
    <comment_count>11</comment_count>
      <attachid>84113</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-28 14:32:35 -0800</bug_when>
    <thetext>Comment on attachment 84113
Proposed patch

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

Looks good, but I think it could use another iteration. Eric, with regard to your previous comment: Not having these stubs pretty much leaves Non-Safari Pthread ports in a broken state. I think it&apos;s valid to separate the task of filling the stubs and then fixing the style issues with the original file. I think that Alex and I would be quite happy to tackle the cleanup here.

&gt;&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:102
&gt;&gt; +static const int SIG_THREAD_SUSPEND_RESUME = SIGUSR2;
&gt; 
&gt; SIG_THREAD_SUSPEND_RESUME is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]

I believe you should make this constant just follow WebKit coding style conventions. g_threadSuspendResumeSignal or something similar.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:109
&gt; +    sigset_t sigs;
&gt; +    sigemptyset(&amp;sigs);
&gt; +    sigaddset(&amp;sigs, SIG_THREAD_SUSPEND_RESUME);
&gt; +    sigsuspend(&amp;sigs);

sigs -&gt; signalSet.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:135
&gt; +#if USE(PTHREADS)
&gt; +        struct sigaction act;
&gt; +        act.sa_handler = pthreadSignalHandlerSuspendResume;
&gt; +        sigemptyset(&amp;act.sa_mask);
&gt; +#ifdef SA_RESTART
&gt; +        act.sa_flags = SA_RESTART;
&gt; +#else
&gt; +        act.sa_flags = 0;
&gt; +#endif
&gt; +        sigaction(SIG_THREAD_SUSPEND_RESUME, &amp;act, 0);
&gt; +
&gt; +        sigset_t mask;
&gt; +        sigemptyset(&amp;mask);
&gt; +        sigaddset(&amp;mask, SIG_THREAD_SUSPEND_RESUME);
&gt; +        pthread_sigmask(SIG_UNBLOCK, &amp;mask, 0);
&gt; +#endif

I&apos;m not sure if USE(PTHREADS) is appropriate ifdef here since it appears that other platforms that already have an implementation for these stubs USE(PTHREADS) as well. You probably want to add  !PLATFORM(DARWIN), etc to this and abstract it into a #define at the top.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:368
&gt; +#if HAVE(PTHREAD_NP_H) || PLATFORM(NETBSD)
&gt; +    // e.g. on FreeBSD 5.4, neundorf@kde.org
&gt; +    pthread_attr_get_np(platformThread, &amp;regs);

I guess configure on NetBSD doesn&apos;t declare PTHREAD_NP_H? Is this bug documented somewhere?

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:418
&gt; +    int rc = pthread_attr_getstack(&amp;regs, &amp;stackBase, &amp;stackSize);
&gt; +    (void)rc; // FIXME: Deal with error code somehow? Seems fatal.

Is it really okay here to not check the return value of pthread_attr_getstack? I&apos;d rather see the FIXME resolved before this patch goes in.

&gt; Source/JavaScriptCore/wtf/Platform.h:566
&gt; +#if (ENABLE(WORKERS) || PLATFORM(GTK) || PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(WIN) || (PLATFORM(QT) &amp;&amp; OS(DARWIN) &amp;&amp; !ENABLE(SINGLE_THREADED))) &amp;&amp; !defined(ENABLE_JSC_MULTIPLE_THREADS)

I don&apos;t feel like I know enough about this code to okay this change, but it seems sane to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359363</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-28 14:34:23 -0800</bug_when>
    <thetext>I think I&apos;d also like to see Sunspider before and after results from ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359408</commentid>
    <comment_count>13</comment_count>
      <attachid>84113</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2011-02-28 15:16:31 -0800</bug_when>
    <thetext>Comment on attachment 84113
Proposed patch

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

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:128
&gt; +#endif

Can&apos;t we just define SA_RESTART do 0 when it&apos;s not present/available/whatever and be done with the check?

&gt;&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:368
&gt;&gt; +    pthread_attr_get_np(platformThread, &amp;regs);
&gt; 
&gt; I guess configure on NetBSD doesn&apos;t declare PTHREAD_NP_H? Is this bug documented somewhere?

I&apos;d say let&apos;s get rid of this if we cannot test it... NetBSD people can submit patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359429</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-28 15:33:23 -0800</bug_when>
    <thetext>See also discussion in bug 54836 (I&apos;m not thinking of anything in particular, but seems useful to be aware of other work being done in the same area right now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359505</commentid>
    <comment_count>15</comment_count>
      <attachid>84154</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-02-28 17:00:28 -0800</bug_when>
    <thetext>Created attachment 84154
Proposed patch

I tried to keep the code similar to the one we have in StackBounds, seems the best option considering that code is already used. I&apos;ve removed the WORKERS condition from Platform.h and just left the GTK, it is enough for the moment we take care of the issues in GTK and later we can try to check other situations :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359514</commentid>
    <comment_count>16</comment_count>
      <attachid>84154</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-28 17:07:22 -0800</bug_when>
    <thetext>Comment on attachment 84154
Proposed patch

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

Okay, with the few fixes I mentioned. This needs to be cleaned up, but the GTK+ bots are dying in a bloody heap at the moment.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:74
&gt; +#if USE(PTHREADS)

Please use if !OS(WINDOWS) &amp;&amp; !OS(DARWIN) &amp;&amp; USE(PTHREADS) here as well.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:77
&gt; +#define SA_RESTART 0

Probably should just &quot;#error MachineStackMarker requires SA_RESTART&quot; (or something nicer sounding) here. I don&apos;t think 0 is actually a working replacement.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:124
&gt; +        struct sigaction act;

act -&gt; action</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359547</commentid>
    <comment_count>17</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-02-28 17:46:09 -0800</bug_when>
    <thetext>Added the fixes and landed: http://trac.webkit.org/changeset/79952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359563</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-28 18:03:47 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/79952 might have broken SnowLeopard Intel Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359566</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2011-02-28 18:06:35 -0800</bug_when>
    <thetext>This appears to have broken the Mac builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359567</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-28 18:06:47 -0800</bug_when>
    <thetext>This broke the snow leopard compile.  Starting a rollout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439913</commentid>
    <comment_count>21</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-20 12:05:01 -0700</bug_when>
    <thetext>From visual inspection, this code was not rolled out, fix still seems to be in ToT.
Restoring resolved/fixed status.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32061</attachid>
            <date>2009-06-30 06:16:29 -0700</date>
            <delta_ts>2009-07-01 00:27:58 -0700</delta_ts>
            <desc>WebKit-r45357-Collector-multithread-support-for-UNIX.diff</desc>
            <filename>WebKit-r45357-Collector-multithread-support-for-UNIX.diff</filename>
            <type>text/plain</type>
            <size>6102</size>
            <attacher name="Martin Zoubek">martin.zoubek</attacher>
            
              <data encoding="base64">ZGlmZiAtTnJ1cCBXZWJLaXQtcjQ1MzU3LW9yaWcvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xs
ZWN0b3IuY3BwIFdlYktpdC1yNDUzNTcvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3Iu
Y3BwCi0tLSBXZWJLaXQtcjQ1MzU3LW9yaWcvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0
b3IuY3BwCTIwMDktMDYtMjUgMDc6MTQ6MTYuMDAwMDAwMDAwICswMjAwCisrKyBXZWJLaXQtcjQ1
MzU3L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAkyMDA5LTA2LTMwIDE0OjEw
OjE5LjAwMDAwMDAwMCArMDIwMApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDkgQWNpc2lvbiBCVi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY4LDYgKzY5LDEwIEBACiAjaW5jbHVk
ZSA8cHRocmVhZF9ucC5oPgogI2VuZGlmCiAKKyNpZiBVU0UoUFRIUkVBRFMpCisjaW5jbHVkZSA8
c2lnbmFsLmg+CisjZW5kaWYKKwogI2VuZGlmCiAKICNkZWZpbmUgREVCVUdfQ09MTEVDVE9SIDAK
QEAgLTk5LDYgKzEwNCwxOCBAQCBzdHJ1Y3QgUGxhdGZvcm1UaHJlYWQgewogICAgIERXT1JEIGlk
OwogICAgIEhBTkRMRSBoYW5kbGU7CiB9OworI2VsaWYgVVNFKFBUSFJFQURTKQordHlwZWRlZiBw
dGhyZWFkX3QgUGxhdGZvcm1UaHJlYWQ7CisjZGVmaW5lIFNJR19USFJFQURfU1VTUEVORF9SRVNV
TUUgU0lHVVNSMgorCitzdGF0aWMgdm9pZCBwdGhfc2lnX3N1c3BlbmRfcmVzdW1lKGludCBzaWdu
bykKK3sKKyAgICBzaWdzZXRfdCBzaWdzOworICAgIGludCBzaWdubzI7CisgICAgc2lnZW1wdHlz
ZXQoJnNpZ3MpOworICAgIHNpZ2FkZHNldCgmc2lncywgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VN
RSk7CisgICAgc2lnd2FpdCgmc2lncywgJnNpZ25vMik7Cit9CiAjZW5kaWYKIAogY2xhc3MgSGVh
cDo6VGhyZWFkIHsKQEAgLTEwOCw2ICsxMjUsMjIgQEAgcHVibGljOgogICAgICAgICAsIHBsYXRm
b3JtVGhyZWFkKHBsYXRUaHJlYWQpCiAgICAgICAgICwgc3RhY2tCYXNlKGJhc2UpCiAgICAgewor
I2lmIFVTRShQVEhSRUFEUykKKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CisgICAgICAg
IGFjdC5zYV9oYW5kbGVyID0gcHRoX3NpZ19zdXNwZW5kX3Jlc3VtZTsKKyAgICAgICAgc2lnZW1w
dHlzZXQoJmFjdC5zYV9tYXNrKTsKKyNpZmRlZiBTQV9SRVNUQVJUCisgICAgICAgIGFjdC5zYV9m
bGFncyA9IFNBX1JFU1RBUlQ7CisjZWxzZQorICAgICAgICBhY3Quc2FfZmxhZ3MgPSAwOworI2Vu
ZGlmCisgICAgICAgIHNpZ2FjdGlvbihTSUdfVEhSRUFEX1NVU1BFTkRfUkVTVU1FLCAmYWN0LCBO
VUxMKTsKKworICAgICAgICBzaWdzZXRfdCBtYXNrOworICAgICAgICBzaWdlbXB0eXNldCgmbWFz
ayk7CisgICAgICAgIHNpZ2FkZHNldCgmbWFzaywgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSk7
CisgICAgICAgIHB0aHJlYWRfc2lnbWFzayhTSUdfVU5CTE9DSywgJm1hc2ssIE5VTEwpOworI2Vu
ZGlmCiAgICAgfQogCiAgICAgVGhyZWFkKiBuZXh0OwpAQCAtNDk0LDExICs1MjcsMTggQEAgc3Rh
dGljIGlubGluZSB2b2lkKiBjdXJyZW50VGhyZWFkU3RhY2tCYQogICAgIH0KICAgICByZXR1cm4g
KHZvaWQqKXN0YWNrQmFzZTsKICNlbGlmIFBMQVRGT1JNKFVOSVgpCisjaWYgRU5BQkxFKEpTQ19N
VUxUSVBMRV9USFJFQURTKQorICAgIHZvaWQqIHN0YWNrQmFzZSA9IDA7CisgICAgc2l6ZV90IHN0
YWNrU2l6ZSA9IDA7CisjZWxzZQogICAgIHN0YXRpYyB2b2lkKiBzdGFja0Jhc2UgPSAwOwogICAg
IHN0YXRpYyBzaXplX3Qgc3RhY2tTaXplID0gMDsKICAgICBzdGF0aWMgcHRocmVhZF90IHN0YWNr
VGhyZWFkOworI2VuZGlmCiAgICAgcHRocmVhZF90IHRocmVhZCA9IHB0aHJlYWRfc2VsZigpOwor
I2lmICFFTkFCTEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCiAgICAgaWYgKHN0YWNrQmFzZSA9PSAw
IHx8IHRocmVhZCAhPSBzdGFja1RocmVhZCkgeworI2VuZGlmCiAgICAgICAgIHB0aHJlYWRfYXR0
cl90IHNhdHRyOwogICAgICAgICBwdGhyZWFkX2F0dHJfaW5pdCgmc2F0dHIpOwogI2lmIEhBVkUo
UFRIUkVBRF9OUF9IKSB8fCBQTEFURk9STShORVRCU0QpCkBAIC01MTIsOCArNTUyLDEwIEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCogY3VycmVudFRocmVhZFN0YWNrQmEKICAgICAgICAgKHZvaWQpcmM7
IC8vIEZJWE1FOiBEZWFsIHdpdGggZXJyb3IgY29kZSBzb21laG93PyBTZWVtcyBmYXRhbC4KICAg
ICAgICAgQVNTRVJUKHN0YWNrQmFzZSk7CiAgICAgICAgIHB0aHJlYWRfYXR0cl9kZXN0cm95KCZz
YXR0cik7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgc3RhY2tU
aHJlYWQgPSB0aHJlYWQ7CiAgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNo
YXIqPihzdGFja0Jhc2UpICsgc3RhY2tTaXplOwogI2VsaWYgUExBVEZPUk0oV0lOQ0UpCiAgICAg
aWYgKGdfc3RhY2tCYXNlKQpAQCAtNTM2LDYgKzU3OCw4IEBAIHN0YXRpYyBpbmxpbmUgUGxhdGZv
cm1UaHJlYWQgZ2V0Q3VycmVudFAKICNlbGlmIFBMQVRGT1JNKFdJTl9PUykKICAgICBIQU5ETEUg
dGhyZWFkSGFuZGxlID0gcHRocmVhZF9nZXR3MzJ0aHJlYWRoYW5kbGVfbnAocHRocmVhZF9zZWxm
KCkpOwogICAgIHJldHVybiBQbGF0Zm9ybVRocmVhZChHZXRDdXJyZW50VGhyZWFkSWQoKSwgdGhy
ZWFkSGFuZGxlKTsKKyNlbGlmIFVTRShQVEhSRUFEUykKKyAgICByZXR1cm4gcHRocmVhZF9zZWxm
KCk7CiAjZW5kaWYKIH0KIApAQCAtNjkzLDYgKzczNyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz
dXNwZW5kVGhyZWFkKGNvbnN0IFAKICAgICB0aHJlYWRfc3VzcGVuZChwbGF0Zm9ybVRocmVhZCk7
CiAjZWxpZiBQTEFURk9STShXSU5fT1MpCiAgICAgU3VzcGVuZFRocmVhZChwbGF0Zm9ybVRocmVh
ZC5oYW5kbGUpOworI2VsaWYgVVNFKFBUSFJFQURTKQorICAgIHB0aHJlYWRfa2lsbChwbGF0Zm9y
bVRocmVhZCwgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSk7CiAjZWxzZQogI2Vycm9yIE5lZWQg
YSB3YXkgdG8gc3VzcGVuZCB0aHJlYWRzIG9uIHRoaXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtNzA0
LDYgKzc1MCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByZXN1bWVUaHJlYWQoY29uc3QgUGwKICAg
ICB0aHJlYWRfcmVzdW1lKHBsYXRmb3JtVGhyZWFkKTsKICNlbGlmIFBMQVRGT1JNKFdJTl9PUykK
ICAgICBSZXN1bWVUaHJlYWQocGxhdGZvcm1UaHJlYWQuaGFuZGxlKTsKKyNlbGlmIFVTRShQVEhS
RUFEUykKKyAgICBwdGhyZWFkX2tpbGwocGxhdGZvcm1UaHJlYWQsIFNJR19USFJFQURfU1VTUEVO
RF9SRVNVTUUpOwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRvIHJlc3VtZSB0aHJlYWRzIG9u
IHRoaXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtNzI5LDYgKzc3Nyw4IEBAIHR5cGVkZWYgYXJtX3Ro
cmVhZF9zdGF0ZV90IFBsYXRmb3JtVGhyZWEKIAogI2VsaWYgUExBVEZPUk0oV0lOX09TKSYmIFBM
QVRGT1JNKFg4NikKIHR5cGVkZWYgQ09OVEVYVCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVyczsKKyNl
bGlmIFVTRShQVEhSRUFEUykKK3R5cGVkZWYgcHRocmVhZF9hdHRyX3QgUGxhdGZvcm1UaHJlYWRS
ZWdpc3RlcnM7CiAjZWxzZQogI2Vycm9yIE5lZWQgYSB0aHJlYWQgcmVnaXN0ZXIgc3RydWN0IGZv
ciB0aGlzIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTc2OSwxMSArODE5LDI4IEBAIHN0YXRpYyBzaXpl
X3QgZ2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMKICAgICByZWdzLkNvbnRleHRGbGFncyA9IENP
TlRFWFRfSU5URUdFUiB8IENPTlRFWFRfQ09OVFJPTCB8IENPTlRFWFRfU0VHTUVOVFM7CiAgICAg
R2V0VGhyZWFkQ29udGV4dChwbGF0Zm9ybVRocmVhZC5oYW5kbGUsICZyZWdzKTsKICAgICByZXR1
cm4gc2l6ZW9mKENPTlRFWFQpOworI2VsaWYgVVNFKFBUSFJFQURTKQorICAgIHB0aHJlYWRfYXR0
cl9pbml0KCZyZWdzKTsKKyNpZiBIQVZFKFBUSFJFQURfTlBfSCkgfHwgUExBVEZPUk0oTkVUQlNE
KQorICAgIC8vIGUuZy4gb24gRnJlZUJTRCA1LjQsIG5ldW5kb3JmQGtkZS5vcmcKKyAgICBwdGhy
ZWFkX2F0dHJfZ2V0X25wKHBsYXRmb3JtVGhyZWFkLCAmcmVncyk7CisjZWxzZQorICAgIC8vIEZJ
WE1FOiB0aGlzIGZ1bmN0aW9uIGlzIG5vbi1wb3J0YWJsZTsgb3RoZXIgUE9TSVggc3lzdGVtcyBt
YXkgaGF2ZSBkaWZmZXJlbnQgbnAgYWx0ZXJuYXRpdmVzCisgICAgcHRocmVhZF9nZXRhdHRyX25w
KHBsYXRmb3JtVGhyZWFkLCAmcmVncyk7CisjZW5kaWYKKyAgICByZXR1cm4gMDsKICNlbHNlCiAj
ZXJyb3IgTmVlZCBhIHdheSB0byBnZXQgdGhyZWFkIHJlZ2lzdGVycyBvbiB0aGlzIHBsYXRmb3Jt
CiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKFBs
YXRmb3JtVGhyZWFkUmVnaXN0ZXJzJiByZWdzKQoreworI2lmIFVTRShQVEhSRUFEUykKKyAgICBw
dGhyZWFkX2F0dHJfZGVzdHJveSgmcmVncyk7CisjZW5kaWYKK30KKwogc3RhdGljIGlubGluZSB2
b2lkKiBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihjb25zdCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
cyYgcmVncykKIHsKICNpZiBQTEFURk9STShEQVJXSU4pCkBAIC04MDksNiArODc2LDEzIEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCogb3RoZXJUaHJlYWRTdGFja1BvaW4KIC8vIGVuZCBQTEFURk9STShE
QVJXSU4pCiAjZWxpZiBQTEFURk9STShYODYpICYmIFBMQVRGT1JNKFdJTl9PUykKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oKHVpbnRwdHJfdCkgcmVncy5Fc3ApOworI2VsaWYg
VVNFKFBUSFJFQURTKQorICAgIHZvaWQqIHN0YWNrQmFzZSA9IDA7CisgICAgc2l6ZV90IHN0YWNr
U2l6ZSA9IDA7CisgICAgaW50IHJjID0gcHRocmVhZF9hdHRyX2dldHN0YWNrKCZyZWdzLCAmc3Rh
Y2tCYXNlLCAmc3RhY2tTaXplKTsKKyAgICAodm9pZClyYzsgLy8gRklYTUU6IERlYWwgd2l0aCBl
cnJvciBjb2RlIHNvbWVob3c/IFNlZW1zIGZhdGFsLgorICAgIEFTU0VSVChzdGFja0Jhc2UpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2tCYXNlKSArIHN0YWNrU2l6ZTsKICNl
bHNlCiAjZXJyb3IgTmVlZCBhIHdheSB0byBnZXQgdGhlIHN0YWNrIHBvaW50ZXIgZm9yIGFub3Ro
ZXIgdGhyZWFkIG9uIHRoaXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtODIyLDEyICs4OTYsMTUgQEAg
dm9pZCBIZWFwOjptYXJrT3RoZXJUaHJlYWRDb25zZXJ2YXRpdmVseQogICAgIHNpemVfdCByZWdT
aXplID0gZ2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnModGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwg
cmVncyk7CiAKICAgICAvLyBtYXJrIHRoZSB0aHJlYWQncyByZWdpc3RlcnMKLSAgICBtYXJrQ29u
c2VydmF0aXZlbHkoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpKTsKKyAgICBpZiAocmVn
U2l6ZSA+IDApCisgICAgICAgIG1hcmtDb25zZXJ2YXRpdmVseShzdGF0aWNfY2FzdDx2b2lkKj4o
JnJlZ3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3Mp
ICsgcmVnU2l6ZSkpOwogCiAgICAgdm9pZCogc3RhY2tQb2ludGVyID0gb3RoZXJUaHJlYWRTdGFj
a1BvaW50ZXIocmVncyk7CiAgICAgbWFya0NvbnNlcnZhdGl2ZWx5KHN0YWNrUG9pbnRlciwgdGhy
ZWFkLT5zdGFja0Jhc2UpOwogCiAgICAgcmVzdW1lVGhyZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJl
YWQpOworCisgICAgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCiAjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32117</attachid>
            <date>2009-07-01 00:27:58 -0700</date>
            <delta_ts>2009-07-21 05:47:30 -0700</delta_ts>
            <desc>WebKit-r45374-Collector-multithread-support-for-UNIX.diff</desc>
            <filename>WebKit-r45374-Collector-multithread-support-for-UNIX.diff</filename>
            <type>text/plain</type>
            <size>6840</size>
            <attacher name="Martin Zoubek">martin.zoubek</attacher>
            
              <data encoding="base64">ZGlmZiAtTnJ1cCBXZWJLaXQtcjQ1Mzc0LW9yaWcvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLnR4
dCBXZWJLaXQtcjQ1Mzc0L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZy50eHQKLS0tIFdlYktpdC1y
NDUzNzQtb3JpZy9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cudHh0CTIwMDktMDctMDEgMDk6MDM6
NTQuMDAwMDAwMDAwICswMjAwCisrKyBXZWJLaXQtcjQ1Mzc0L0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZy50eHQJMjAwOS0wNy0wMSAwOToyMjoxMS4wMDAwMDAwMDAgKzAyMDAKQEAgLTEsMyArMSwx
NiBAQAorMjAwOS0wNy0wMSAgTWFydGluIFpvdWJlayAgPG1hcnRpbi56b3ViZWtAYWNpc2lvbi5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjgzOD4KKworICAgICAgICBN
dWx0aXRocmVhZCBzdXBwb3J0IGZvciBKU0Mgb24gVU5JWC4KKworICAgICAgICBJbXBsZW1lbnQg
c3VzcGVuZFRocmVhZCgpIGFuZCByZXN1bWVUaHJlYWQoKSBmb3Igc3lzdGVtcyB3aXRoCisgICAg
ICAgIHB0aHJlYWQuaCB1c2luZyB0aHJlYWQgc2lnbmFsIGhhbmRsZXIuCisKKyAgICAgICAgKiBy
dW50aW1lL0NvbGxlY3Rvci5jcHA6CisKIDIwMDktMDYtMzAgIEt3YW5nIFl1bCBTZW8gIDxza3l1
bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtTnJ1cCBXZWJLaXQtcjQ1Mzc0LW9yaWcvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0
b3IuY3BwIFdlYktpdC1yNDUzNzQvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuY3Bw
Ci0tLSBXZWJLaXQtcjQ1Mzc0LW9yaWcvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3Iu
Y3BwCTIwMDktMDYtMjUgMDc6MTQ6MTYuMDAwMDAwMDAwICswMjAwCisrKyBXZWJLaXQtcjQ1Mzc0
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAkyMDA5LTA3LTAxIDA5OjA1OjQ2
LjAwMDAwMDAwMCArMDIwMApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDkgQWNpc2lvbiBCVi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY4LDYgKzY5LDEwIEBACiAjaW5jbHVkZSA8
cHRocmVhZF9ucC5oPgogI2VuZGlmCiAKKyNpZiBVU0UoUFRIUkVBRFMpCisjaW5jbHVkZSA8c2ln
bmFsLmg+CisjZW5kaWYKKwogI2VuZGlmCiAKICNkZWZpbmUgREVCVUdfQ09MTEVDVE9SIDAKQEAg
LTk5LDYgKzEwNCwxOCBAQCBzdHJ1Y3QgUGxhdGZvcm1UaHJlYWQgewogICAgIERXT1JEIGlkOwog
ICAgIEhBTkRMRSBoYW5kbGU7CiB9OworI2VsaWYgVVNFKFBUSFJFQURTKQordHlwZWRlZiBwdGhy
ZWFkX3QgUGxhdGZvcm1UaHJlYWQ7CisjZGVmaW5lIFNJR19USFJFQURfU1VTUEVORF9SRVNVTUUg
U0lHVVNSMgorCitzdGF0aWMgdm9pZCBwdGhfc2lnX3N1c3BlbmRfcmVzdW1lKGludCBzaWdubykK
K3sKKyAgICBzaWdzZXRfdCBzaWdzOworICAgIGludCBzaWdubzI7CisgICAgc2lnZW1wdHlzZXQo
JnNpZ3MpOworICAgIHNpZ2FkZHNldCgmc2lncywgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSk7
CisgICAgc2lnd2FpdCgmc2lncywgJnNpZ25vMik7Cit9CiAjZW5kaWYKIAogY2xhc3MgSGVhcDo6
VGhyZWFkIHsKQEAgLTEwOCw2ICsxMjUsMjIgQEAgcHVibGljOgogICAgICAgICAsIHBsYXRmb3Jt
VGhyZWFkKHBsYXRUaHJlYWQpCiAgICAgICAgICwgc3RhY2tCYXNlKGJhc2UpCiAgICAgeworI2lm
IFVTRShQVEhSRUFEUykKKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CisgICAgICAgIGFj
dC5zYV9oYW5kbGVyID0gcHRoX3NpZ19zdXNwZW5kX3Jlc3VtZTsKKyAgICAgICAgc2lnZW1wdHlz
ZXQoJmFjdC5zYV9tYXNrKTsKKyNpZmRlZiBTQV9SRVNUQVJUCisgICAgICAgIGFjdC5zYV9mbGFn
cyA9IFNBX1JFU1RBUlQ7CisjZWxzZQorICAgICAgICBhY3Quc2FfZmxhZ3MgPSAwOworI2VuZGlm
CisgICAgICAgIHNpZ2FjdGlvbihTSUdfVEhSRUFEX1NVU1BFTkRfUkVTVU1FLCAmYWN0LCBOVUxM
KTsKKworICAgICAgICBzaWdzZXRfdCBtYXNrOworICAgICAgICBzaWdlbXB0eXNldCgmbWFzayk7
CisgICAgICAgIHNpZ2FkZHNldCgmbWFzaywgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSk7Cisg
ICAgICAgIHB0aHJlYWRfc2lnbWFzayhTSUdfVU5CTE9DSywgJm1hc2ssIE5VTEwpOworI2VuZGlm
CiAgICAgfQogCiAgICAgVGhyZWFkKiBuZXh0OwpAQCAtNDk0LDExICs1MjcsMTggQEAgc3RhdGlj
IGlubGluZSB2b2lkKiBjdXJyZW50VGhyZWFkU3RhY2tCYQogICAgIH0KICAgICByZXR1cm4gKHZv
aWQqKXN0YWNrQmFzZTsKICNlbGlmIFBMQVRGT1JNKFVOSVgpCisjaWYgRU5BQkxFKEpTQ19NVUxU
SVBMRV9USFJFQURTKQorICAgIHZvaWQqIHN0YWNrQmFzZSA9IDA7CisgICAgc2l6ZV90IHN0YWNr
U2l6ZSA9IDA7CisjZWxzZQogICAgIHN0YXRpYyB2b2lkKiBzdGFja0Jhc2UgPSAwOwogICAgIHN0
YXRpYyBzaXplX3Qgc3RhY2tTaXplID0gMDsKICAgICBzdGF0aWMgcHRocmVhZF90IHN0YWNrVGhy
ZWFkOworI2VuZGlmCiAgICAgcHRocmVhZF90IHRocmVhZCA9IHB0aHJlYWRfc2VsZigpOworI2lm
ICFFTkFCTEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCiAgICAgaWYgKHN0YWNrQmFzZSA9PSAwIHx8
IHRocmVhZCAhPSBzdGFja1RocmVhZCkgeworI2VuZGlmCiAgICAgICAgIHB0aHJlYWRfYXR0cl90
IHNhdHRyOwogICAgICAgICBwdGhyZWFkX2F0dHJfaW5pdCgmc2F0dHIpOwogI2lmIEhBVkUoUFRI
UkVBRF9OUF9IKSB8fCBQTEFURk9STShORVRCU0QpCkBAIC01MTIsOCArNTUyLDEwIEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCogY3VycmVudFRocmVhZFN0YWNrQmEKICAgICAgICAgKHZvaWQpcmM7IC8v
IEZJWE1FOiBEZWFsIHdpdGggZXJyb3IgY29kZSBzb21laG93PyBTZWVtcyBmYXRhbC4KICAgICAg
ICAgQVNTRVJUKHN0YWNrQmFzZSk7CiAgICAgICAgIHB0aHJlYWRfYXR0cl9kZXN0cm95KCZzYXR0
cik7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgc3RhY2tUaHJl
YWQgPSB0aHJlYWQ7CiAgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIq
PihzdGFja0Jhc2UpICsgc3RhY2tTaXplOwogI2VsaWYgUExBVEZPUk0oV0lOQ0UpCiAgICAgaWYg
KGdfc3RhY2tCYXNlKQpAQCAtNTM2LDYgKzU3OCw4IEBAIHN0YXRpYyBpbmxpbmUgUGxhdGZvcm1U
aHJlYWQgZ2V0Q3VycmVudFAKICNlbGlmIFBMQVRGT1JNKFdJTl9PUykKICAgICBIQU5ETEUgdGhy
ZWFkSGFuZGxlID0gcHRocmVhZF9nZXR3MzJ0aHJlYWRoYW5kbGVfbnAocHRocmVhZF9zZWxmKCkp
OwogICAgIHJldHVybiBQbGF0Zm9ybVRocmVhZChHZXRDdXJyZW50VGhyZWFkSWQoKSwgdGhyZWFk
SGFuZGxlKTsKKyNlbGlmIFVTRShQVEhSRUFEUykKKyAgICByZXR1cm4gcHRocmVhZF9zZWxmKCk7
CiAjZW5kaWYKIH0KIApAQCAtNjkzLDYgKzczNyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzdXNw
ZW5kVGhyZWFkKGNvbnN0IFAKICAgICB0aHJlYWRfc3VzcGVuZChwbGF0Zm9ybVRocmVhZCk7CiAj
ZWxpZiBQTEFURk9STShXSU5fT1MpCiAgICAgU3VzcGVuZFRocmVhZChwbGF0Zm9ybVRocmVhZC5o
YW5kbGUpOworI2VsaWYgVVNFKFBUSFJFQURTKQorICAgIHB0aHJlYWRfa2lsbChwbGF0Zm9ybVRo
cmVhZCwgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSk7CiAjZWxzZQogI2Vycm9yIE5lZWQgYSB3
YXkgdG8gc3VzcGVuZCB0aHJlYWRzIG9uIHRoaXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtNzA0LDYg
Kzc1MCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByZXN1bWVUaHJlYWQoY29uc3QgUGwKICAgICB0
aHJlYWRfcmVzdW1lKHBsYXRmb3JtVGhyZWFkKTsKICNlbGlmIFBMQVRGT1JNKFdJTl9PUykKICAg
ICBSZXN1bWVUaHJlYWQocGxhdGZvcm1UaHJlYWQuaGFuZGxlKTsKKyNlbGlmIFVTRShQVEhSRUFE
UykKKyAgICBwdGhyZWFkX2tpbGwocGxhdGZvcm1UaHJlYWQsIFNJR19USFJFQURfU1VTUEVORF9S
RVNVTUUpOwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRvIHJlc3VtZSB0aHJlYWRzIG9uIHRo
aXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtNzI5LDYgKzc3Nyw4IEBAIHR5cGVkZWYgYXJtX3RocmVh
ZF9zdGF0ZV90IFBsYXRmb3JtVGhyZWEKIAogI2VsaWYgUExBVEZPUk0oV0lOX09TKSYmIFBMQVRG
T1JNKFg4NikKIHR5cGVkZWYgQ09OVEVYVCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVyczsKKyNlbGlm
IFVTRShQVEhSRUFEUykKK3R5cGVkZWYgcHRocmVhZF9hdHRyX3QgUGxhdGZvcm1UaHJlYWRSZWdp
c3RlcnM7CiAjZWxzZQogI2Vycm9yIE5lZWQgYSB0aHJlYWQgcmVnaXN0ZXIgc3RydWN0IGZvciB0
aGlzIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTc2OSwxMSArODE5LDI4IEBAIHN0YXRpYyBzaXplX3Qg
Z2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMKICAgICByZWdzLkNvbnRleHRGbGFncyA9IENPTlRF
WFRfSU5URUdFUiB8IENPTlRFWFRfQ09OVFJPTCB8IENPTlRFWFRfU0VHTUVOVFM7CiAgICAgR2V0
VGhyZWFkQ29udGV4dChwbGF0Zm9ybVRocmVhZC5oYW5kbGUsICZyZWdzKTsKICAgICByZXR1cm4g
c2l6ZW9mKENPTlRFWFQpOworI2VsaWYgVVNFKFBUSFJFQURTKQorICAgIHB0aHJlYWRfYXR0cl9p
bml0KCZyZWdzKTsKKyNpZiBIQVZFKFBUSFJFQURfTlBfSCkgfHwgUExBVEZPUk0oTkVUQlNEKQor
ICAgIC8vIGUuZy4gb24gRnJlZUJTRCA1LjQsIG5ldW5kb3JmQGtkZS5vcmcKKyAgICBwdGhyZWFk
X2F0dHJfZ2V0X25wKHBsYXRmb3JtVGhyZWFkLCAmcmVncyk7CisjZWxzZQorICAgIC8vIEZJWE1F
OiB0aGlzIGZ1bmN0aW9uIGlzIG5vbi1wb3J0YWJsZTsgb3RoZXIgUE9TSVggc3lzdGVtcyBtYXkg
aGF2ZSBkaWZmZXJlbnQgbnAgYWx0ZXJuYXRpdmVzCisgICAgcHRocmVhZF9nZXRhdHRyX25wKHBs
YXRmb3JtVGhyZWFkLCAmcmVncyk7CisjZW5kaWYKKyAgICByZXR1cm4gMDsKICNlbHNlCiAjZXJy
b3IgTmVlZCBhIHdheSB0byBnZXQgdGhyZWFkIHJlZ2lzdGVycyBvbiB0aGlzIHBsYXRmb3JtCiAj
ZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKFBsYXRm
b3JtVGhyZWFkUmVnaXN0ZXJzJiByZWdzKQoreworI2lmIFVTRShQVEhSRUFEUykKKyAgICBwdGhy
ZWFkX2F0dHJfZGVzdHJveSgmcmVncyk7CisjZW5kaWYKK30KKwogc3RhdGljIGlubGluZSB2b2lk
KiBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihjb25zdCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyYg
cmVncykKIHsKICNpZiBQTEFURk9STShEQVJXSU4pCkBAIC04MDksNiArODc2LDEzIEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCogb3RoZXJUaHJlYWRTdGFja1BvaW4KIC8vIGVuZCBQTEFURk9STShEQVJX
SU4pCiAjZWxpZiBQTEFURk9STShYODYpICYmIFBMQVRGT1JNKFdJTl9PUykKICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oKHVpbnRwdHJfdCkgcmVncy5Fc3ApOworI2VsaWYgVVNF
KFBUSFJFQURTKQorICAgIHZvaWQqIHN0YWNrQmFzZSA9IDA7CisgICAgc2l6ZV90IHN0YWNrU2l6
ZSA9IDA7CisgICAgaW50IHJjID0gcHRocmVhZF9hdHRyX2dldHN0YWNrKCZyZWdzLCAmc3RhY2tC
YXNlLCAmc3RhY2tTaXplKTsKKyAgICAodm9pZClyYzsgLy8gRklYTUU6IERlYWwgd2l0aCBlcnJv
ciBjb2RlIHNvbWVob3c/IFNlZW1zIGZhdGFsLgorICAgIEFTU0VSVChzdGFja0Jhc2UpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2tCYXNlKSArIHN0YWNrU2l6ZTsKICNlbHNl
CiAjZXJyb3IgTmVlZCBhIHdheSB0byBnZXQgdGhlIHN0YWNrIHBvaW50ZXIgZm9yIGFub3RoZXIg
dGhyZWFkIG9uIHRoaXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtODIyLDEyICs4OTYsMTUgQEAgdm9p
ZCBIZWFwOjptYXJrT3RoZXJUaHJlYWRDb25zZXJ2YXRpdmVseQogICAgIHNpemVfdCByZWdTaXpl
ID0gZ2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnModGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVn
cyk7CiAKICAgICAvLyBtYXJrIHRoZSB0aHJlYWQncyByZWdpc3RlcnMKLSAgICBtYXJrQ29uc2Vy
dmF0aXZlbHkoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpKTsKKyAgICBpZiAocmVnU2l6
ZSA+IDApCisgICAgICAgIG1hcmtDb25zZXJ2YXRpdmVseShzdGF0aWNfY2FzdDx2b2lkKj4oJnJl
Z3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsg
cmVnU2l6ZSkpOwogCiAgICAgdm9pZCogc3RhY2tQb2ludGVyID0gb3RoZXJUaHJlYWRTdGFja1Bv
aW50ZXIocmVncyk7CiAgICAgbWFya0NvbnNlcnZhdGl2ZWx5KHN0YWNrUG9pbnRlciwgdGhyZWFk
LT5zdGFja0Jhc2UpOwogCiAgICAgcmVzdW1lVGhyZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQp
OworCisgICAgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="16628"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33173</attachid>
            <date>2009-07-21 05:47:30 -0700</date>
            <delta_ts>2011-02-28 13:55:55 -0800</delta_ts>
            <desc>WebKit-r46156-Collector-multithread-support-for-UNIX.diff</desc>
            <filename>WebKit-r46156-Collector-multithread-support-for-UNIX.diff</filename>
            <type>text/plain</type>
            <size>6672</size>
            <attacher name="Martin Zoubek">martin.zoubek</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ2MTU2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMDctMjEgIE1hcnRpbiBa
b3ViZWsgIDxtYXJ0aW4uem91YmVrQGFjaXNpb24uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjY4Mzg+CisKKyAgICAgICAgTXVsdGl0aHJlYWQgc3VwcG9ydCBmb3IgSlND
IG9uIFVOSVguCisKKyAgICAgICAgSW1wbGVtZW50IHN1c3BlbmRUaHJlYWQoKSBhbmQgcmVzdW1l
VGhyZWFkKCkgZm9yIHN5c3RlbXMgd2l0aAorICAgICAgICBwdGhyZWFkLmggdXNpbmcgdGhyZWFk
IHNpZ25hbCBoYW5kbGVyLgorCisgICAgICAgICogcnVudGltZS9Db2xsZWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpwdGhyZWFkU2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUpOgorICAgICAgICAo
SlNDOjpIZWFwOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChKU0M6OmN1cnJlbnRUaHJlYWRT
dGFja0Jhc2UpOgorICAgICAgICAoSlNDOjpnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQpOgorICAg
ICAgICAoSlNDOjpzdXNwZW5kVGhyZWFkKToKKyAgICAgICAgKEpTQzo6cmVzdW1lVGhyZWFkKToK
KyAgICAgICAgKEpTQzo6Z2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMpOgorICAgICAgICAoSlND
OjpmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpvdGhlclRocmVh
ZFN0YWNrUG9pbnRlcik6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtPdGhlclRocmVhZENvbnNl
cnZhdGl2ZWx5KToKKwogMjAwOS0wNy0yMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoQnVpbGQgZml4KS4KSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAJKHJldmlzaW9uIDQ2MTIzKQorKysgSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db2xsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBA
QAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
NyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOSBB
Y2lzaW9uIEJWLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAt
NjgsNiArNjksMTAgQEAKICNpbmNsdWRlIDxwdGhyZWFkX25wLmg+CiAjZW5kaWYKIAorI2lmIFVT
RShQVEhSRUFEUykKKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNlbmRpZgorCiAjZW5kaWYKIAogI2Rl
ZmluZSBERUJVR19DT0xMRUNUT1IgMApAQCAtOTksNiArMTA0LDE3IEBAIHN0cnVjdCBQbGF0Zm9y
bVRocmVhZCB7CiAgICAgRFdPUkQgaWQ7CiAgICAgSEFORExFIGhhbmRsZTsKIH07CisjZWxpZiBV
U0UoUFRIUkVBRFMpCit0eXBlZGVmIHB0aHJlYWRfdCBQbGF0Zm9ybVRocmVhZDsKK3N0YXRpYyBj
b25zdCBpbnQgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSA9IFNJR1VTUjI7CisKK3N0YXRpYyB2
b2lkIHB0aHJlYWRTaWduYWxIYW5kbGVyU3VzcGVuZFJlc3VtZShpbnQgc2lnbm8pCit7CisgICAg
c2lnc2V0X3Qgc2lnczsKKyAgICBzaWdlbXB0eXNldCgmc2lncyk7CisgICAgc2lnYWRkc2V0KCZz
aWdzLCBTSUdfVEhSRUFEX1NVU1BFTkRfUkVTVU1FKTsKKyAgICBzaWdzdXNwZW5kKCZzaWdzKTsK
K30KICNlbmRpZgogCiBjbGFzcyBIZWFwOjpUaHJlYWQgewpAQCAtMTA4LDYgKzEyNCwyMiBAQCBw
dWJsaWM6CiAgICAgICAgICwgcGxhdGZvcm1UaHJlYWQocGxhdFRocmVhZCkKICAgICAgICAgLCBz
dGFja0Jhc2UoYmFzZSkKICAgICB7CisjaWYgVVNFKFBUSFJFQURTKQorICAgICAgICBzdHJ1Y3Qg
c2lnYWN0aW9uIGFjdDsKKyAgICAgICAgYWN0LnNhX2hhbmRsZXIgPSBwdGhyZWFkU2lnbmFsSGFu
ZGxlclN1c3BlbmRSZXN1bWU7CisgICAgICAgIHNpZ2VtcHR5c2V0KCZhY3Quc2FfbWFzayk7Cisj
aWZkZWYgU0FfUkVTVEFSVAorICAgICAgICBhY3Quc2FfZmxhZ3MgPSBTQV9SRVNUQVJUOworI2Vs
c2UKKyAgICAgICAgYWN0LnNhX2ZsYWdzID0gMDsKKyNlbmRpZgorICAgICAgICBzaWdhY3Rpb24o
U0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSwgJmFjdCwgTlVMTCk7CisKKyAgICAgICAgc2lnc2V0
X3QgbWFzazsKKyAgICAgICAgc2lnZW1wdHlzZXQoJm1hc2spOworICAgICAgICBzaWdhZGRzZXQo
Jm1hc2ssIFNJR19USFJFQURfU1VTUEVORF9SRVNVTUUpOworICAgICAgICBwdGhyZWFkX3NpZ21h
c2soU0lHX1VOQkxPQ0ssICZtYXNrLCBOVUxMKTsKKyNlbmRpZgogICAgIH0KIAogICAgIFRocmVh
ZCogbmV4dDsKQEAgLTQ5NCwxMSArNTI2LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCogY3VycmVu
dFRocmVhZFN0YWNrQmEKICAgICB9CiAgICAgcmV0dXJuICh2b2lkKilzdGFja0Jhc2U7CiAjZWxp
ZiBQTEFURk9STShVTklYKQorI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKKyAgICB2
b2lkKiBzdGFja0Jhc2UgPSAwOworICAgIHNpemVfdCBzdGFja1NpemUgPSAwOworI2Vsc2UKICAg
ICBzdGF0aWMgdm9pZCogc3RhY2tCYXNlID0gMDsKICAgICBzdGF0aWMgc2l6ZV90IHN0YWNrU2l6
ZSA9IDA7CiAgICAgc3RhdGljIHB0aHJlYWRfdCBzdGFja1RocmVhZDsKKyNlbmRpZgogICAgIHB0
aHJlYWRfdCB0aHJlYWQgPSBwdGhyZWFkX3NlbGYoKTsKKyNpZiAhRU5BQkxFKEpTQ19NVUxUSVBM
RV9USFJFQURTKQogICAgIGlmIChzdGFja0Jhc2UgPT0gMCB8fCB0aHJlYWQgIT0gc3RhY2tUaHJl
YWQpIHsKKyNlbmRpZgogICAgICAgICBwdGhyZWFkX2F0dHJfdCBzYXR0cjsKICAgICAgICAgcHRo
cmVhZF9hdHRyX2luaXQoJnNhdHRyKTsKICNpZiBIQVZFKFBUSFJFQURfTlBfSCkgfHwgUExBVEZP
Uk0oTkVUQlNEKQpAQCAtNTEyLDggKzU1MSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQqIGN1cnJl
bnRUaHJlYWRTdGFja0JhCiAgICAgICAgICh2b2lkKXJjOyAvLyBGSVhNRTogRGVhbCB3aXRoIGVy
cm9yIGNvZGUgc29tZWhvdz8gU2VlbXMgZmF0YWwuCiAgICAgICAgIEFTU0VSVChzdGFja0Jhc2Up
OwogICAgICAgICBwdGhyZWFkX2F0dHJfZGVzdHJveSgmc2F0dHIpOworI2lmICFFTkFCTEUoSlND
X01VTFRJUExFX1RIUkVBRFMpCiAgICAgICAgIHN0YWNrVGhyZWFkID0gdGhyZWFkOwogICAgIH0K
KyNlbmRpZgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhY2tCYXNlKSArIHN0YWNr
U2l6ZTsKICNlbGlmIFBMQVRGT1JNKFdJTkNFKQogICAgIGlmIChnX3N0YWNrQmFzZSkKQEAgLTUz
Niw2ICs1NzcsOCBAQCBzdGF0aWMgaW5saW5lIFBsYXRmb3JtVGhyZWFkIGdldEN1cnJlbnRQCiAj
ZWxpZiBQTEFURk9STShXSU5fT1MpCiAgICAgSEFORExFIHRocmVhZEhhbmRsZSA9IHB0aHJlYWRf
Z2V0dzMydGhyZWFkaGFuZGxlX25wKHB0aHJlYWRfc2VsZigpKTsKICAgICByZXR1cm4gUGxhdGZv
cm1UaHJlYWQoR2V0Q3VycmVudFRocmVhZElkKCksIHRocmVhZEhhbmRsZSk7CisjZWxpZiBVU0Uo
UFRIUkVBRFMpCisgICAgcmV0dXJuIHB0aHJlYWRfc2VsZigpOwogI2VuZGlmCiB9CiAKQEAgLTY5
Myw2ICs3MzYsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3VzcGVuZFRocmVhZChjb25zdCBQCiAg
ICAgdGhyZWFkX3N1c3BlbmQocGxhdGZvcm1UaHJlYWQpOwogI2VsaWYgUExBVEZPUk0oV0lOX09T
KQogICAgIFN1c3BlbmRUaHJlYWQocGxhdGZvcm1UaHJlYWQuaGFuZGxlKTsKKyNlbGlmIFVTRShQ
VEhSRUFEUykKKyAgICBwdGhyZWFkX2tpbGwocGxhdGZvcm1UaHJlYWQsIFNJR19USFJFQURfU1VT
UEVORF9SRVNVTUUpOwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRvIHN1c3BlbmQgdGhyZWFk
cyBvbiB0aGlzIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTcwNCw2ICs3NDksOCBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgcmVzdW1lVGhyZWFkKGNvbnN0IFBsCiAgICAgdGhyZWFkX3Jlc3VtZShwbGF0Zm9y
bVRocmVhZCk7CiAjZWxpZiBQTEFURk9STShXSU5fT1MpCiAgICAgUmVzdW1lVGhyZWFkKHBsYXRm
b3JtVGhyZWFkLmhhbmRsZSk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9raWxs
KHBsYXRmb3JtVGhyZWFkLCBTSUdfVEhSRUFEX1NVU1BFTkRfUkVTVU1FKTsKICNlbHNlCiAjZXJy
b3IgTmVlZCBhIHdheSB0byByZXN1bWUgdGhyZWFkcyBvbiB0aGlzIHBsYXRmb3JtCiAjZW5kaWYK
QEAgLTcyOSw2ICs3NzYsOCBAQCB0eXBlZGVmIGFybV90aHJlYWRfc3RhdGVfdCBQbGF0Zm9ybVRo
cmVhCiAKICNlbGlmIFBMQVRGT1JNKFdJTl9PUykmJiBQTEFURk9STShYODYpCiB0eXBlZGVmIENP
TlRFWFQgUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnM7CisjZWxpZiBVU0UoUFRIUkVBRFMpCit0eXBl
ZGVmIHB0aHJlYWRfYXR0cl90IFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzOwogI2Vsc2UKICNlcnJv
ciBOZWVkIGEgdGhyZWFkIHJlZ2lzdGVyIHN0cnVjdCBmb3IgdGhpcyBwbGF0Zm9ybQogI2VuZGlm
CkBAIC03NjksMTEgKzgxOCwyOCBAQCBzdGF0aWMgc2l6ZV90IGdldFBsYXRmb3JtVGhyZWFkUmVn
aXN0ZXJzCiAgICAgcmVncy5Db250ZXh0RmxhZ3MgPSBDT05URVhUX0lOVEVHRVIgfCBDT05URVhU
X0NPTlRST0wgfCBDT05URVhUX1NFR01FTlRTOwogICAgIEdldFRocmVhZENvbnRleHQocGxhdGZv
cm1UaHJlYWQuaGFuZGxlLCAmcmVncyk7CiAgICAgcmV0dXJuIHNpemVvZihDT05URVhUKTsKKyNl
bGlmIFVTRShQVEhSRUFEUykKKyAgICBwdGhyZWFkX2F0dHJfaW5pdCgmcmVncyk7CisjaWYgSEFW
RShQVEhSRUFEX05QX0gpIHx8IFBMQVRGT1JNKE5FVEJTRCkKKyAgICAvLyBlLmcuIG9uIEZyZWVC
U0QgNS40LCBuZXVuZG9yZkBrZGUub3JnCisgICAgcHRocmVhZF9hdHRyX2dldF9ucChwbGF0Zm9y
bVRocmVhZCwgJnJlZ3MpOworI2Vsc2UKKyAgICAvLyBGSVhNRTogdGhpcyBmdW5jdGlvbiBpcyBu
b24tcG9ydGFibGU7IG90aGVyIFBPU0lYIHN5c3RlbXMgbWF5IGhhdmUgZGlmZmVyZW50IG5wIGFs
dGVybmF0aXZlcworICAgIHB0aHJlYWRfZ2V0YXR0cl9ucChwbGF0Zm9ybVRocmVhZCwgJnJlZ3Mp
OworI2VuZGlmCisgICAgcmV0dXJuIDA7CiAjZWxzZQogI2Vycm9yIE5lZWQgYSB3YXkgdG8gZ2V0
IHRocmVhZCByZWdpc3RlcnMgb24gdGhpcyBwbGF0Zm9ybQogI2VuZGlmCiB9CiAKK3N0YXRpYyB2
b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyhQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyYg
cmVncykKK3sKKyNpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9hdHRyX2Rlc3Ryb3koJnJl
Z3MpOworI2VuZGlmCit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCogb3RoZXJUaHJlYWRTdGFja1Bv
aW50ZXIoY29uc3QgUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMmIHJlZ3MpCiB7CiAjaWYgUExBVEZP
Uk0oREFSV0lOKQpAQCAtODA5LDYgKzg3NSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQqIG90aGVy
VGhyZWFkU3RhY2tQb2luCiAvLyBlbmQgUExBVEZPUk0oREFSV0lOKQogI2VsaWYgUExBVEZPUk0o
WDg2KSAmJiBQTEFURk9STShXSU5fT1MpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KCh1aW50cHRyX3QpIHJlZ3MuRXNwKTsKKyNlbGlmIFVTRShQVEhSRUFEUykKKyAgICB2b2lk
KiBzdGFja0Jhc2UgPSAwOworICAgIHNpemVfdCBzdGFja1NpemUgPSAwOworICAgIGludCByYyA9
IHB0aHJlYWRfYXR0cl9nZXRzdGFjaygmcmVncywgJnN0YWNrQmFzZSwgJnN0YWNrU2l6ZSk7Cisg
ICAgKHZvaWQpcmM7IC8vIEZJWE1FOiBEZWFsIHdpdGggZXJyb3IgY29kZSBzb21laG93PyBTZWVt
cyBmYXRhbC4KKyAgICBBU1NFUlQoc3RhY2tCYXNlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y2hhcio+KHN0YWNrQmFzZSkgKyBzdGFja1NpemU7CiAjZWxzZQogI2Vycm9yIE5lZWQgYSB3YXkg
dG8gZ2V0IHRoZSBzdGFjayBwb2ludGVyIGZvciBhbm90aGVyIHRocmVhZCBvbiB0aGlzIHBsYXRm
b3JtCiAjZW5kaWYKQEAgLTgyOCw2ICs5MDEsOCBAQCB2b2lkIEhlYXA6Om1hcmtPdGhlclRocmVh
ZENvbnNlcnZhdGl2ZWx5CiAgICAgbWFya0NvbnNlcnZhdGl2ZWx5KHN0YWNrUG9pbnRlciwgdGhy
ZWFkLT5zdGFja0Jhc2UpOwogCiAgICAgcmVzdW1lVGhyZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJl
YWQpOworCisgICAgZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCiAjZW5k
aWYK
</data>
<flag name="review"
          id="17493"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84113</attachid>
            <date>2011-02-28 13:55:55 -0800</date>
            <delta_ts>2011-02-28 17:00:28 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>threadingjsc.patch</filename>
            <type>text/plain</type>
            <size>6743</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg5MGEwZWQuLjQ2OWY2NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTAyLTI4ICBNYXJ0aW4gWm91YmVr
ICA8bWFydGluLnpvdWJla0BhY2lzaW9uLmNvbT4gYW5kIEFsZWphbmRybyBHLiBDYXN0cm8gIDxh
bGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTXVsdGl0aHJlYWQgc3VwcG9ydCBmb3IgSlNDIG9uIFVOSVgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODM4CisKKyAgICAgICAgSW1w
bGVtZW50IHN1c3BlbmRUaHJlYWQoKSBhbmQgcmVzdW1lVGhyZWFkKCkgZm9yIHN5c3RlbXMgd2l0
aAorICAgICAgICBwdGhyZWFkLmggdXNpbmcgdGhyZWFkIHNpZ25hbCBoYW5kbGVyLgorCisgICAg
ICAgICogcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlNDOjpwdGhy
ZWFkU2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3Rh
Y2tNYXJrZXI6OlRocmVhZDo6VGhyZWFkKToKKyAgICAgICAgKEpTQzo6Z2V0Q3VycmVudFBsYXRm
b3JtVGhyZWFkKToKKyAgICAgICAgKEpTQzo6c3VzcGVuZFRocmVhZCk6CisgICAgICAgIChKU0M6
OnJlc3VtZVRocmVhZCk6CisgICAgICAgIChKU0M6OmdldFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJz
KToKKyAgICAgICAgKEpTQzo6b3RoZXJUaHJlYWRTdGFja1BvaW50ZXIpOgorICAgICAgICAoSlND
OjpmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3Rh
Y2tNYXJrZXI6Om1hcmtPdGhlclRocmVhZENvbnNlcnZhdGl2ZWx5KToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDogQWRkZWQgR3RrIHBvcnQgdG8gdXNlCisgICAgICAgIEVOQUJMRV9KU0NfTVVM
VElQTEVfVEhSRUFEUy4KKwogMjAxMS0wMi0yNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAKaW5kZXggNDQz
MDk0Ny4uNTA2OGIyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFjaGluZVN0YWNrTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqICBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOSBBY2lzaW9uIEJWLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNzAsNiArNzEsMTAg
QEAKICNpbmNsdWRlIDxlcnJuby5oPgogI2VuZGlmCiAKKyNpZiBVU0UoUFRIUkVBRFMpCisjaW5j
bHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAt
OTIsNiArOTcsMTcgQEAgVU5VU0VEX1BBUkFNKGVuZCk7CiB0eXBlZGVmIG1hY2hfcG9ydF90IFBs
YXRmb3JtVGhyZWFkOwogI2VsaWYgT1MoV0lORE9XUykKIHR5cGVkZWYgSEFORExFIFBsYXRmb3Jt
VGhyZWFkOworI2VsaWYgVVNFKFBUSFJFQURTKQordHlwZWRlZiBwdGhyZWFkX3QgUGxhdGZvcm1U
aHJlYWQ7CitzdGF0aWMgY29uc3QgaW50IFNJR19USFJFQURfU1VTUEVORF9SRVNVTUUgPSBTSUdV
U1IyOworCitzdGF0aWMgdm9pZCBwdGhyZWFkU2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUoaW50
IHNpZ25vKQoreworICAgIHNpZ3NldF90IHNpZ3M7CisgICAgc2lnZW1wdHlzZXQoJnNpZ3MpOwor
ICAgIHNpZ2FkZHNldCgmc2lncywgU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSk7CisgICAgc2ln
c3VzcGVuZCgmc2lncyk7Cit9CiAjZW5kaWYKIAogY2xhc3MgTWFjaGluZVN0YWNrTWFya2VyOjpU
aHJlYWQgewpAQCAtMTAxLDYgKzExNywyMiBAQCBwdWJsaWM6CiAgICAgICAgICwgcGxhdGZvcm1U
aHJlYWQocGxhdFRocmVhZCkKICAgICAgICAgLCBzdGFja0Jhc2UoYmFzZSkKICAgICB7CisjaWYg
VVNFKFBUSFJFQURTKQorICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIGFjdDsKKyAgICAgICAgYWN0
LnNhX2hhbmRsZXIgPSBwdGhyZWFkU2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWU7CisgICAgICAg
IHNpZ2VtcHR5c2V0KCZhY3Quc2FfbWFzayk7CisjaWZkZWYgU0FfUkVTVEFSVAorICAgICAgICBh
Y3Quc2FfZmxhZ3MgPSBTQV9SRVNUQVJUOworI2Vsc2UKKyAgICAgICAgYWN0LnNhX2ZsYWdzID0g
MDsKKyNlbmRpZgorICAgICAgICBzaWdhY3Rpb24oU0lHX1RIUkVBRF9TVVNQRU5EX1JFU1VNRSwg
JmFjdCwgMCk7CisKKyAgICAgICAgc2lnc2V0X3QgbWFzazsKKyAgICAgICAgc2lnZW1wdHlzZXQo
Jm1hc2spOworICAgICAgICBzaWdhZGRzZXQoJm1hc2ssIFNJR19USFJFQURfU1VTUEVORF9SRVNV
TUUpOworICAgICAgICBwdGhyZWFkX3NpZ21hc2soU0lHX1VOQkxPQ0ssICZtYXNrLCAwKTsKKyNl
bmRpZgogICAgIH0KIAogICAgIFRocmVhZCogbmV4dDsKQEAgLTE0NSw2ICsxNzcsOCBAQCBzdGF0
aWMgaW5saW5lIFBsYXRmb3JtVGhyZWFkIGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpCiAgICAg
cmV0dXJuIHB0aHJlYWRfbWFjaF90aHJlYWRfbnAocHRocmVhZF9zZWxmKCkpOwogI2VsaWYgT1Mo
V0lORE9XUykKICAgICByZXR1cm4gcHRocmVhZF9nZXR3MzJ0aHJlYWRoYW5kbGVfbnAocHRocmVh
ZF9zZWxmKCkpOworI2VsaWYgVVNFKFBUSFJFQURTKQorICAgIHJldHVybiBwdGhyZWFkX3NlbGYo
KTsKICNlbmRpZgogfQogCkBAIC0yNDUsNiArMjc5LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHN1
c3BlbmRUaHJlYWQoY29uc3QgUGxhdGZvcm1UaHJlYWQmIHBsYXRmb3JtVGhyZWFkKQogICAgIHRo
cmVhZF9zdXNwZW5kKHBsYXRmb3JtVGhyZWFkKTsKICNlbGlmIE9TKFdJTkRPV1MpCiAgICAgU3Vz
cGVuZFRocmVhZChwbGF0Zm9ybVRocmVhZCk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRo
cmVhZF9raWxsKHBsYXRmb3JtVGhyZWFkLCBTSUdfVEhSRUFEX1NVU1BFTkRfUkVTVU1FKTsKICNl
bHNlCiAjZXJyb3IgTmVlZCBhIHdheSB0byBzdXNwZW5kIHRocmVhZHMgb24gdGhpcyBwbGF0Zm9y
bQogI2VuZGlmCkBAIC0yNTYsNiArMjkyLDggQEAgc3RhdGljIGlubGluZSB2b2lkIHJlc3VtZVRo
cmVhZChjb25zdCBQbGF0Zm9ybVRocmVhZCYgcGxhdGZvcm1UaHJlYWQpCiAgICAgdGhyZWFkX3Jl
c3VtZShwbGF0Zm9ybVRocmVhZCk7CiAjZWxpZiBPUyhXSU5ET1dTKQogICAgIFJlc3VtZVRocmVh
ZChwbGF0Zm9ybVRocmVhZCk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9raWxs
KHBsYXRmb3JtVGhyZWFkLCBTSUdfVEhSRUFEX1NVU1BFTkRfUkVTVU1FKTsKICNlbHNlCiAjZXJy
b3IgTmVlZCBhIHdheSB0byByZXN1bWUgdGhyZWFkcyBvbiB0aGlzIHBsYXRmb3JtCiAjZW5kaWYK
QEAgLTI4MSw2ICszMTksOCBAQCB0eXBlZGVmIGFybV90aHJlYWRfc3RhdGVfdCBQbGF0Zm9ybVRo
cmVhZFJlZ2lzdGVyczsKIAogI2VsaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4NikKIHR5cGVkZWYg
Q09OVEVYVCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVyczsKKyNlbGlmIFVTRShQVEhSRUFEUykKK3R5
cGVkZWYgcHRocmVhZF9hdHRyX3QgUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnM7CiAjZWxzZQogI2Vy
cm9yIE5lZWQgYSB0aHJlYWQgcmVnaXN0ZXIgc3RydWN0IGZvciB0aGlzIHBsYXRmb3JtCiAjZW5k
aWYKQEAgLTMyMSw2ICszNjEsMTYgQEAgc3RhdGljIHNpemVfdCBnZXRQbGF0Zm9ybVRocmVhZFJl
Z2lzdGVycyhjb25zdCBQbGF0Zm9ybVRocmVhZCYgcGxhdGZvcm1UaHJlYWQsIFAKICAgICByZWdz
LkNvbnRleHRGbGFncyA9IENPTlRFWFRfSU5URUdFUiB8IENPTlRFWFRfQ09OVFJPTCB8IENPTlRF
WFRfU0VHTUVOVFM7CiAgICAgR2V0VGhyZWFkQ29udGV4dChwbGF0Zm9ybVRocmVhZCwgJnJlZ3Mp
OwogICAgIHJldHVybiBzaXplb2YoQ09OVEVYVCk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAg
cHRocmVhZF9hdHRyX2luaXQoJnJlZ3MpOworI2lmIEhBVkUoUFRIUkVBRF9OUF9IKSB8fCBQTEFU
Rk9STShORVRCU0QpCisgICAgLy8gZS5nLiBvbiBGcmVlQlNEIDUuNCwgbmV1bmRvcmZAa2RlLm9y
ZworICAgIHB0aHJlYWRfYXR0cl9nZXRfbnAocGxhdGZvcm1UaHJlYWQsICZyZWdzKTsKKyNlbHNl
CisgICAgLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gaXMgbm9uLXBvcnRhYmxlOyBvdGhlciBQT1NJ
WCBzeXN0ZW1zIG1heSBoYXZlIGRpZmZlcmVudCBucCBhbHRlcm5hdGl2ZXMKKyAgICBwdGhyZWFk
X2dldGF0dHJfbnAocGxhdGZvcm1UaHJlYWQsICZyZWdzKTsKKyNlbmRpZgorICAgIHJldHVybiAw
OwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRvIGdldCB0aHJlYWQgcmVnaXN0ZXJzIG9uIHRo
aXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtMzYxLDExICs0MTEsMjUgQEAgc3RhdGljIGlubGluZSB2
b2lkKiBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihjb25zdCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
cyYgcmVncykKIC8vIGVuZCBPUyhEQVJXSU4pCiAjZWxpZiBDUFUoWDg2KSAmJiBPUyhXSU5ET1dT
KQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPigodWludHB0cl90KSByZWdzLkVz
cCk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgdm9pZCogc3RhY2tCYXNlID0gMDsKKyAgICBz
aXplX3Qgc3RhY2tTaXplID0gMDsKKyAgICBpbnQgcmMgPSBwdGhyZWFkX2F0dHJfZ2V0c3RhY2so
JnJlZ3MsICZzdGFja0Jhc2UsICZzdGFja1NpemUpOworICAgICh2b2lkKXJjOyAvLyBGSVhNRTog
RGVhbCB3aXRoIGVycm9yIGNvZGUgc29tZWhvdz8gU2VlbXMgZmF0YWwuCisgICAgQVNTRVJUKHN0
YWNrQmFzZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihzdGFja0Jhc2UpICsgc3Rh
Y2tTaXplOwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRvIGdldCB0aGUgc3RhY2sgcG9pbnRl
ciBmb3IgYW5vdGhlciB0aHJlYWQgb24gdGhpcyBwbGF0Zm9ybQogI2VuZGlmCiB9CiAKK3N0YXRp
YyB2b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyhQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
cyYgcmVncykKK3sKKyNpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9hdHRyX2Rlc3Ryb3ko
JnJlZ3MpOworI2VuZGlmCit9CisKIHZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrT3RoZXJU
aHJlYWRDb25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZhdGl2ZVNldCwgVGhy
ZWFkKiB0aHJlYWQpCiB7CiAgICAgc3VzcGVuZFRocmVhZCh0aHJlYWQtPnBsYXRmb3JtVGhyZWFk
KTsKQEAgLTM4Miw2ICs0NDYsOCBAQCB2b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6bWFya090aGVy
VGhyZWFkQ29uc2VydmF0aXZlbHkoQ29uc2VydmF0aXZlU2V0JiBjb25zZXJ2YQogICAgIGNvbnNl
cnZhdGl2ZVNldC5hZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UpOwogCiAgICAgcmVzdW1lVGhy
ZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQpOworCisgICAgZnJlZVBsYXRmb3JtVGhyZWFkUmVn
aXN0ZXJzKHJlZ3MpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAppbmRleCAyZjFmNTkyLi5mNTU0NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCkBAIC01NjMsNyArNTYzLDcgQEAKICNkZWZpbmUgV1RGX1VTRV9NRVJTRU5ORV9UV0lTVEVS
XzE5OTM3IDEKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoREFSV0lOKSAmJiAhRU5BQkxF
KFNJTkdMRV9USFJFQURFRCkpKSAmJiAhZGVmaW5lZChFTkFCTEVfSlNDX01VTFRJUExFX1RIUkVB
RFMpCisjaWYgKEVOQUJMRShXT1JLRVJTKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKElP
UykgfHwgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYg
T1MoREFSV0lOKSAmJiAhRU5BQkxFKFNJTkdMRV9USFJFQURFRCkpKSAmJiAhZGVmaW5lZChFTkFC
TEVfSlNDX01VTFRJUExFX1RIUkVBRFMpCiAjZGVmaW5lIEVOQUJMRV9KU0NfTVVMVElQTEVfVEhS
RUFEUyAxCiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="76062"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84154</attachid>
            <date>2011-02-28 17:00:28 -0800</date>
            <delta_ts>2011-06-18 12:40:42 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>threading.patch</filename>
            <type>text/plain</type>
            <size>6745</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI5MjE1MzcuLmVhMDE4NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTAyLTI4ICBNYXJ0aW4gWm91YmVr
ICA8bWFydGluLnpvdWJla0BhY2lzaW9uLmNvbT4gYW5kIEFsZWphbmRybyBHLiBDYXN0cm8gIDxh
bGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTXVsdGl0aHJlYWQgc3VwcG9ydCBmb3IgSlNDIG9uIFVOSVgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODM4CisKKyAgICAgICAgSW1w
bGVtZW50IHN1c3BlbmRUaHJlYWQoKSBhbmQgcmVzdW1lVGhyZWFkKCkgZm9yIHN5c3RlbXMgd2l0
aAorICAgICAgICBwdGhyZWFkLmggdXNpbmcgdGhyZWFkIHNpZ25hbCBoYW5kbGVyLgorCisgICAg
ICAgICogcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlNDOjpwdGhy
ZWFkU2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3Rh
Y2tNYXJrZXI6OlRocmVhZDo6VGhyZWFkKToKKyAgICAgICAgKEpTQzo6Z2V0Q3VycmVudFBsYXRm
b3JtVGhyZWFkKToKKyAgICAgICAgKEpTQzo6c3VzcGVuZFRocmVhZCk6CisgICAgICAgIChKU0M6
OnJlc3VtZVRocmVhZCk6CisgICAgICAgIChKU0M6OmdldFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJz
KToKKyAgICAgICAgKEpTQzo6b3RoZXJUaHJlYWRTdGFja1BvaW50ZXIpOgorICAgICAgICAoSlND
OjpmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3Rh
Y2tNYXJrZXI6Om1hcmtPdGhlclRocmVhZENvbnNlcnZhdGl2ZWx5KToKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDogQWRkZWQgR3RrIHBvcnQgdG8gdXNlCisgICAgICAgIEVOQUJMRV9KU0NfTVVM
VElQTEVfVEhSRUFEUy4KKwogMjAxMS0wMi0yOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCmluZGV4
IDQ0MzA5NDcuLjg1OWNiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBT
ZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDkgQWNpc2lvbiBC
Vi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTcwLDYgKzcx
LDEzIEBACiAjaW5jbHVkZSA8ZXJybm8uaD4KICNlbmRpZgogCisjaWYgVVNFKFBUSFJFQURTKQor
I2luY2x1ZGUgPHNpZ25hbC5oPgorI2lmbmRlZiBTQV9SRVNUQVJUCisjZGVmaW5lIFNBX1JFU1RB
UlQgMAorI2VuZGlmCisjZW5kaWYKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtOTIs
NiArMTAwLDE3IEBAIFVOVVNFRF9QQVJBTShlbmQpOwogdHlwZWRlZiBtYWNoX3BvcnRfdCBQbGF0
Zm9ybVRocmVhZDsKICNlbGlmIE9TKFdJTkRPV1MpCiB0eXBlZGVmIEhBTkRMRSBQbGF0Zm9ybVRo
cmVhZDsKKyNlbGlmIFVTRShQVEhSRUFEUykKK3R5cGVkZWYgcHRocmVhZF90IFBsYXRmb3JtVGhy
ZWFkOworc3RhdGljIGNvbnN0IGludCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lID0gU0lHVVNSMjsK
Kworc3RhdGljIHZvaWQgcHRocmVhZFNpZ25hbEhhbmRsZXJTdXNwZW5kUmVzdW1lKGludCBzaWdu
bykKK3sKKyAgICBzaWdzZXRfdCBzaWduYWxTZXQ7CisgICAgc2lnZW1wdHlzZXQoJnNpZ25hbFNl
dCk7CisgICAgc2lnYWRkc2V0KCZzaWduYWxTZXQsIFNpZ1RocmVhZFN1c3BlbmRSZXN1bWUpOwor
ICAgIHNpZ3N1c3BlbmQoJnNpZ25hbFNldCk7Cit9CiAjZW5kaWYKIAogY2xhc3MgTWFjaGluZVN0
YWNrTWFya2VyOjpUaHJlYWQgewpAQCAtMTAxLDYgKzEyMCwxOCBAQCBwdWJsaWM6CiAgICAgICAg
ICwgcGxhdGZvcm1UaHJlYWQocGxhdFRocmVhZCkKICAgICAgICAgLCBzdGFja0Jhc2UoYmFzZSkK
ICAgICB7CisjaWYgIU9TKFdJTkRPV1MpICYmICFPUyhEQVJXSU4pICYmIFVTRShQVEhSRUFEUykK
KyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CisgICAgICAgIGFjdC5zYV9oYW5kbGVyID0g
cHRocmVhZFNpZ25hbEhhbmRsZXJTdXNwZW5kUmVzdW1lOworICAgICAgICBzaWdlbXB0eXNldCgm
YWN0LnNhX21hc2spOworICAgICAgICBhY3Quc2FfZmxhZ3MgPSBTQV9SRVNUQVJUOworICAgICAg
ICBzaWdhY3Rpb24oU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSwgJmFjdCwgMCk7CisKKyAgICAgICAg
c2lnc2V0X3QgbWFzazsKKyAgICAgICAgc2lnZW1wdHlzZXQoJm1hc2spOworICAgICAgICBzaWdh
ZGRzZXQoJm1hc2ssIFNpZ1RocmVhZFN1c3BlbmRSZXN1bWUpOworICAgICAgICBwdGhyZWFkX3Np
Z21hc2soU0lHX1VOQkxPQ0ssICZtYXNrLCAwKTsKKyNlbmRpZgogICAgIH0KIAogICAgIFRocmVh
ZCogbmV4dDsKQEAgLTE0NSw2ICsxNzYsOCBAQCBzdGF0aWMgaW5saW5lIFBsYXRmb3JtVGhyZWFk
IGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpCiAgICAgcmV0dXJuIHB0aHJlYWRfbWFjaF90aHJl
YWRfbnAocHRocmVhZF9zZWxmKCkpOwogI2VsaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4gcHRo
cmVhZF9nZXR3MzJ0aHJlYWRoYW5kbGVfbnAocHRocmVhZF9zZWxmKCkpOworI2VsaWYgVVNFKFBU
SFJFQURTKQorICAgIHJldHVybiBwdGhyZWFkX3NlbGYoKTsKICNlbmRpZgogfQogCkBAIC0yNDUs
NiArMjc4LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHN1c3BlbmRUaHJlYWQoY29uc3QgUGxhdGZv
cm1UaHJlYWQmIHBsYXRmb3JtVGhyZWFkKQogICAgIHRocmVhZF9zdXNwZW5kKHBsYXRmb3JtVGhy
ZWFkKTsKICNlbGlmIE9TKFdJTkRPV1MpCiAgICAgU3VzcGVuZFRocmVhZChwbGF0Zm9ybVRocmVh
ZCk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9raWxsKHBsYXRmb3JtVGhyZWFk
LCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lKTsKICNlbHNlCiAjZXJyb3IgTmVlZCBhIHdheSB0byBz
dXNwZW5kIHRocmVhZHMgb24gdGhpcyBwbGF0Zm9ybQogI2VuZGlmCkBAIC0yNTYsNiArMjkxLDgg
QEAgc3RhdGljIGlubGluZSB2b2lkIHJlc3VtZVRocmVhZChjb25zdCBQbGF0Zm9ybVRocmVhZCYg
cGxhdGZvcm1UaHJlYWQpCiAgICAgdGhyZWFkX3Jlc3VtZShwbGF0Zm9ybVRocmVhZCk7CiAjZWxp
ZiBPUyhXSU5ET1dTKQogICAgIFJlc3VtZVRocmVhZChwbGF0Zm9ybVRocmVhZCk7CisjZWxpZiBV
U0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9raWxsKHBsYXRmb3JtVGhyZWFkLCBTaWdUaHJlYWRT
dXNwZW5kUmVzdW1lKTsKICNlbHNlCiAjZXJyb3IgTmVlZCBhIHdheSB0byByZXN1bWUgdGhyZWFk
cyBvbiB0aGlzIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTI4MSw2ICszMTgsOCBAQCB0eXBlZGVmIGFy
bV90aHJlYWRfc3RhdGVfdCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVyczsKIAogI2VsaWYgT1MoV0lO
RE9XUykgJiYgQ1BVKFg4NikKIHR5cGVkZWYgQ09OVEVYVCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
czsKKyNlbGlmIFVTRShQVEhSRUFEUykKK3R5cGVkZWYgcHRocmVhZF9hdHRyX3QgUGxhdGZvcm1U
aHJlYWRSZWdpc3RlcnM7CiAjZWxzZQogI2Vycm9yIE5lZWQgYSB0aHJlYWQgcmVnaXN0ZXIgc3Ry
dWN0IGZvciB0aGlzIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTMyMSw2ICszNjAsMTYgQEAgc3RhdGlj
IHNpemVfdCBnZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyhjb25zdCBQbGF0Zm9ybVRocmVhZCYg
cGxhdGZvcm1UaHJlYWQsIFAKICAgICByZWdzLkNvbnRleHRGbGFncyA9IENPTlRFWFRfSU5URUdF
UiB8IENPTlRFWFRfQ09OVFJPTCB8IENPTlRFWFRfU0VHTUVOVFM7CiAgICAgR2V0VGhyZWFkQ29u
dGV4dChwbGF0Zm9ybVRocmVhZCwgJnJlZ3MpOwogICAgIHJldHVybiBzaXplb2YoQ09OVEVYVCk7
CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgcHRocmVhZF9hdHRyX2luaXQoJnJlZ3MpOworI2lm
IEhBVkUoUFRIUkVBRF9OUF9IKSB8fCBPUyhORVRCU0QpCisgICAgLy8gZS5nLiBvbiBGcmVlQlNE
IDUuNCwgbmV1bmRvcmZAa2RlLm9yZworICAgIHB0aHJlYWRfYXR0cl9nZXRfbnAocGxhdGZvcm1U
aHJlYWQsICZyZWdzKTsKKyNlbHNlCisgICAgLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gaXMgbm9u
LXBvcnRhYmxlOyBvdGhlciBQT1NJWCBzeXN0ZW1zIG1heSBoYXZlIGRpZmZlcmVudCBucCBhbHRl
cm5hdGl2ZXMKKyAgICBwdGhyZWFkX2dldGF0dHJfbnAocGxhdGZvcm1UaHJlYWQsICZyZWdzKTsK
KyNlbmRpZgorICAgIHJldHVybiAwOwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRvIGdldCB0
aHJlYWQgcmVnaXN0ZXJzIG9uIHRoaXMgcGxhdGZvcm0KICNlbmRpZgpAQCAtMzYxLDExICs0MTAs
MjUgQEAgc3RhdGljIGlubGluZSB2b2lkKiBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihjb25zdCBQ
bGF0Zm9ybVRocmVhZFJlZ2lzdGVycyYgcmVncykKIC8vIGVuZCBPUyhEQVJXSU4pCiAjZWxpZiBD
UFUoWDg2KSAmJiBPUyhXSU5ET1dTKQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQq
PigodWludHB0cl90KSByZWdzLkVzcCk7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgdm9pZCog
c3RhY2tCYXNlID0gMDsKKyAgICBzaXplX3Qgc3RhY2tTaXplID0gMDsKKyAgICBpbnQgcmMgPSBw
dGhyZWFkX2F0dHJfZ2V0c3RhY2soJnJlZ3MsICZzdGFja0Jhc2UsICZzdGFja1NpemUpOworICAg
ICh2b2lkKXJjOyAvLyBGSVhNRTogRGVhbCB3aXRoIGVycm9yIGNvZGUgc29tZWhvdz8gU2VlbXMg
ZmF0YWwuCisgICAgQVNTRVJUKHN0YWNrQmFzZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNo
YXIqPihzdGFja0Jhc2UpICsgc3RhY2tTaXplOwogI2Vsc2UKICNlcnJvciBOZWVkIGEgd2F5IHRv
IGdldCB0aGUgc3RhY2sgcG9pbnRlciBmb3IgYW5vdGhlciB0aHJlYWQgb24gdGhpcyBwbGF0Zm9y
bQogI2VuZGlmCiB9CiAKK3N0YXRpYyB2b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyhQ
bGF0Zm9ybVRocmVhZFJlZ2lzdGVycyYgcmVncykKK3sKKyNpZiBVU0UoUFRIUkVBRFMpCisgICAg
cHRocmVhZF9hdHRyX2Rlc3Ryb3koJnJlZ3MpOworI2VuZGlmCit9CisKIHZvaWQgTWFjaGluZVN0
YWNrTWFya2VyOjptYXJrT3RoZXJUaHJlYWRDb25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQm
IGNvbnNlcnZhdGl2ZVNldCwgVGhyZWFkKiB0aHJlYWQpCiB7CiAgICAgc3VzcGVuZFRocmVhZCh0
aHJlYWQtPnBsYXRmb3JtVGhyZWFkKTsKQEAgLTM4Miw2ICs0NDUsOCBAQCB2b2lkIE1hY2hpbmVT
dGFja01hcmtlcjo6bWFya090aGVyVGhyZWFkQ29uc2VydmF0aXZlbHkoQ29uc2VydmF0aXZlU2V0
JiBjb25zZXJ2YQogICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jh
c2UpOwogCiAgICAgcmVzdW1lVGhyZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQpOworCisgICAg
ZnJlZVBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAyZjFmNTkyLi5mMDBjMWMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC01NjMsNyArNTYzLDcgQEAKICNkZWZpbmUgV1RG
X1VTRV9NRVJTRU5ORV9UV0lTVEVSXzE5OTM3IDEKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKElP
UykgfHwgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShRVCkgJiYg
T1MoREFSV0lOKSAmJiAhRU5BQkxFKFNJTkdMRV9USFJFQURFRCkpKSAmJiAhZGVmaW5lZChFTkFC
TEVfSlNDX01VTFRJUExFX1RIUkVBRFMpCisjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKFFUKSAm
JiBPUyhEQVJXSU4pICYmICFFTkFCTEUoU0lOR0xFX1RIUkVBREVEKSkpICYmICFkZWZpbmVkKEVO
QUJMRV9KU0NfTVVMVElQTEVfVEhSRUFEUykKICNkZWZpbmUgRU5BQkxFX0pTQ19NVUxUSVBMRV9U
SFJFQURTIDEKICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>