<?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>41948</bug_id>
          
          <creation_ts>2010-07-09 03:26:43 -0700</creation_ts>
          <short_desc>REGRESSION(r60392): Registerfile can be unwound too far following an exception</short_desc>
          <delta_ts>2011-02-21 06:18:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://jp.dk/udland/europa/article2121366.ece</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>48030</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Speck">speck</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>dave+webkit</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>kbalazs</cc>
    
    <cc>mrowe</cc>
    
    <cc>oliver</cc>
    
    <cc>plaes</cc>
    
    <cc>suresh.voruganti</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>248893</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-07-09 03:26:43 -0700</bug_when>
    <thetext>JSC crashes when visiting the page:  http://jp.dk/udland/europa/article2121366.ece

Works in Safari 5, r58209 + r59902

Crashes r60462 + r61502 + r60820 + r61979 + r62096 + r62241 + r62632


Process:         Safari [95225]
Path:            /Applications/Safari.app/Contents/MacOS/Safari
Identifier:      org.webkit.nightly.WebKit
Version:         r62632 (62632)
Code Type:       X86-64 (Native)
Parent Process:  launchd [169]

Date/Time:       2010-07-09 12:02:13.908 +0200
OS Version:      Mac OS X 10.6.4 (10F569)

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000100840977 JSC::JSObject::defaultValue(JSC::ExecState*, JSC::PreferredPrimitiveType) const + 4039
1   com.apple.JavaScriptCore      	0x000000010076138d JSC::JSObject::toPrimitive(JSC::ExecState*, JSC::PreferredPrimitiveType) const + 13
2   com.apple.JavaScriptCore      	0x000000010083ea09 JSC::JSObject::toString(JSC::ExecState*) const + 57
3   com.apple.JavaScriptCore      	0x00000001008c4bfe JSC::stringProtoFuncSubstring(JSC::ExecState*) + 526
4   ???                           	0x00004c94dd2001aa 0 + 84202248733098
5   com.apple.JavaScriptCore      	0x00000001007cfab0 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::ScopeChainNode*, JSC::JSObject*, JSC::JSValue*) + 528
6   ???                           	0x0000000117e5ea00 0 + 4695910912</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248894</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-07-09 03:27:13 -0700</bug_when>
    <thetext>Works in r60376 + r60332 + r59902 + r58209 + r57720 + Safari 5.

Crashes r60462 + r60820 + r61502 + r61979 + r62096 + r62241 + r62632

There is no nightly between r60376 and r60462.

JSC patches in this range: r60392, r60378, r60390, r60401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248926</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-07-09 05:01:00 -0700</bug_when>
    <thetext>This was caused by &lt;http://trac.webkit.org/changeset/60392&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248927</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-07-09 05:01:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/8174724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249112</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-07-09 10:58:18 -0700</bug_when>
    <thetext>Mark, can you reproduce this crash? I couldn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249173</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-07-09 12:24:48 -0700</bug_when>
    <thetext>I can reduce the html page to the following (saved as a local file), and still have it crash every time.  Opening the iframe by itself doesn&apos;t make it crash.

&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;iframe src=&apos;http://front.xstream.dk/jptv/player/player_small/?id=23550&apos; width=&quot;480&quot; height=&quot;402&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; border=&quot;0&quot; frame
spacing=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; vspace=&quot;0&quot; hspace=&quot;0&quot; &gt;&lt;/iframe&gt;
&lt;/body&gt;
&lt;/html&gt;

If I save the iframe html to a local file (same dir) and uses a relative url in &lt;iframe&gt;, then it doesn&apos;t crash.

Element pane in Inspector is always enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249195</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-07-09 12:56:14 -0700</bug_when>
    <thetext>Geoff, yes, I can reproduce this 100% of the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249210</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-07-09 13:12:59 -0700</bug_when>
    <thetext>Trimming the iframe scripts using GlimmerBlocker (http proxy which can modify files on-the-fly), I can reduce the iframe to be just the script
http://front.xstream.dk/jptv/resources/scripts/flash_streaming.js
and still have it crash.

I can reduce the iframe script, so it only consists of the following:

var href=new String(document.location.href);var f=0;var fv=&apos;-&apos;;
var ref = &apos;hello&apos;
eval(&apos;try { if (typeof top.document.referrer==&quot;string&quot;) { ref=top.document.referrer } } catch(e) {f=3;}&apos;);
var url=&apos;&amp;fv=&apos;+escape(fv)+&apos;&amp;href=&apos;+escape(href.substring(0,499));


It crashes in the &quot;var url&quot; line.

It doesn&apos;t crash if I do any of the following:
1) unwrap the eval
2) remove &apos;&amp;fv=&apos;+escape(fv)+
3) remove &apos;&amp;href=&apos;+escape(href.substring(0,499))+
4) change  var href=new String(document.location.href);
   to  	var href=document.location.href;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249220</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-07-09 13:25:53 -0700</bug_when>
    <thetext>It doesn&apos;t crash if the iframe is on the same host (security orgin?) as its parent document.

Minimal html which crashes:
http://glimmerblocker.org/site/wkbug41948/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249613</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-07-11 03:18:12 -0700</bug_when>
    <thetext>Further reduction: now without iframe:
http://glimmerblocker.org/site/wkbug41948/noframe.html

This html page contains just:

abc
&lt;script&gt;
var href=new String(document.location.href);
eval(&apos;try { gyfle.gafle.gufle;  } catch(e) {}&apos;);
var url=&apos;abc&apos; + &apos;&amp;href=&apos;+escape(href.substring(0,1));
&lt;/script&gt;
def


It doesn&apos;t crash if I do any of the following:
1) Changes 1st line to &quot;var href=document.location.href;&quot;
2) Unwraps eval.
3) Removes the &quot;gyfle.gafle.gufle&quot; so it doesn&apos;t throw an exception, or replaces it with &quot;throw new Error();&quot;.  (throw 42; still fails, though).
4) Combines the 2 static strings in &quot;var url=...&quot;
5) Removes substring(), so last line ends with &quot;escape(href);&quot;
6) Adds alert() inside the catch block, i.e. catch(e) { alert(42);}.  Anywhere else, and it still crashes.

crash confirmed with new nigthly: r63031.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251395</commentid>
    <comment_count>10</comment_count>
      <attachid>61559</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-07-14 13:28:04 -0700</bug_when>
    <thetext>Created attachment 61559
reduction

Slightly more reduced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253939</commentid>
    <comment_count>11</comment_count>
      <attachid>62116</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-07-20 14:53:20 -0700</bug_when>
    <thetext>Created attachment 62116
potential solution

Attached a patch that shows the simple-minded way to fix this bug. It breaks fast/js/deep-recursion.html.

It was incorrect to add stack shrinking code to exception unwinding. It&apos;s possible for a caller to require more stack than a callee, so it&apos;s not safe for a callee to shrink the stack to just to satisfy its own needs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286548</commentid>
    <comment_count>12</comment_count>
      <attachid>69110</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-09-28 14:49:12 -0700</bug_when>
    <thetext>Created attachment 69110
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286553</commentid>
    <comment_count>13</comment_count>
      <attachid>69110</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-09-28 14:55:07 -0700</bug_when>
    <thetext>Comment on attachment 69110
The patch

r=me on the code, but patches need regression tests, so you should land the reduction I wrote as a layout test when you land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290964</commentid>
    <comment_count>14</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2010-10-07 06:26:44 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 69110 [details])
&gt; r=me on the code, but patches need regression tests, so you should land the reduction I wrote as a layout test when you land this.

we&apos;ve tried this fix and encounter a crash when on the line:

should the line:
while (callerCallFrame) {
be:
while (callerCallFrame &amp;&amp; callerCallFrame-&gt;codeBlock()) { 

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291014</commentid>
    <comment_count>15</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2010-10-07 08:03:31 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 69110 [details] [details])
&gt; &gt; r=me on the code, but patches need regression tests, so you should land the reduction I wrote as a layout test when you land this.
&gt; 
&gt; we&apos;ve tried this fix and encounter a crash when on the line:
&gt; 
&gt; should the line:
&gt; while (callerCallFrame) {
&gt; be:
&gt; while (callerCallFrame &amp;&amp; callerCallFrame-&gt;codeBlock()) { 
&gt; 
&gt; ?

I&apos;ve modified my local version of the patch to be:

    Register* maxUsedStack = callFrame-&gt;registers() + callFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
    CallFrame* callerCallFrame = callFrame-&gt;callerFrame();
    if (callerCallFrame-&gt;hasHostCallFrameFlag())
        callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
    while (callerCallFrame) {
        Register* callerMaxUsedStack = callerCallFrame-&gt;registers();
        if (callerCallFrame-&gt;codeBlock())
            callerMaxUsedStack += callerCallFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
        if (callerMaxUsedStack &gt; maxUsedStack)
            maxUsedStack = callerMaxUsedStack;
        callerCallFrame = callerCallFrame-&gt;callerFrame();
        if (callerCallFrame-&gt;hasHostCallFrameFlag())
            callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291026</commentid>
    <comment_count>16</comment_count>
    <who name="Peter Speck">speck</who>
    <bug_when>2010-10-07 08:31:11 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I&apos;ve modified my local version of the patch to be:
&gt; 
&gt;     Register* maxUsedStack = callFrame-&gt;registers() + callFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
&gt;     CallFrame* callerCallFrame = callFrame-&gt;callerFrame();
&gt;     if (callerCallFrame-&gt;hasHostCallFrameFlag())
&gt;         callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
&gt;     while (callerCallFrame) {
&gt;         Register* callerMaxUsedStack = callerCallFrame-&gt;registers();
&gt;         if (callerCallFrame-&gt;codeBlock())
&gt;             callerMaxUsedStack += callerCallFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
&gt;         if (callerMaxUsedStack &gt; maxUsedStack)
&gt;             maxUsedStack = callerMaxUsedStack;
&gt;         callerCallFrame = callerCallFrame-&gt;callerFrame();
&gt;         if (callerCallFrame-&gt;hasHostCallFrameFlag())
&gt;             callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
&gt;     }

It can be simplified to the following, including avoiding a NULL deference when the last callerCallFrame-&gt;callerFrame() returns NULL:

    Register* maxUsedStack = callFrame-&gt;registers() + callFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
    CallFrame* callerCallFrame = callFrame-&gt;callerFrame();
    while (callerCallFrame) {
        if (callerCallFrame-&gt;hasHostCallFrameFlag())
            callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
        Register* callerMaxUsedStack = callerCallFrame-&gt;registers();
        if (callerCallFrame-&gt;codeBlock())
            callerMaxUsedStack += callerCallFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
        if (callerMaxUsedStack &gt; maxUsedStack)
            maxUsedStack = callerMaxUsedStack;
        callerCallFrame = callerCallFrame-&gt;callerFrame();
    }

which looks very much like a for-loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291034</commentid>
    <comment_count>17</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2010-10-07 08:46:39 -0700</bug_when>
    <thetext>(In reply to comment #16)

Actually I&apos;m not sure it can be. The callFrame could be 0x1 (The host call Frame flag is just the LSB on the address)... indicating it it has a HostCallFrame flag but the callFrame is actually NULL.

The code should be as follows to avoid any SEGVs...
    CallFrame* callerCallFrame = callFrame-&gt;callerFrame();
    if (callerCallFrame-&gt;hasHostCallFrameFlag())
        callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
    while (callerCallFrame) {
        Register* callerMaxUsedStack = callerCallFrame-&gt;registers();
        if (callerCallFrame-&gt;codeBlock())
            callerMaxUsedStack += callerCallFrame-&gt;codeBlock()-&gt;m_numCalleeRegisters;
        if (callerMaxUsedStack &gt; maxUsedStack)
            maxUsedStack = callerMaxUsedStack;
        callerCallFrame = callerCallFrame-&gt;callerFrame();
        if (callerCallFrame &amp;&amp; callerCallFrame-&gt;hasHostCallFrameFlag())
            callerCallFrame = callerCallFrame-&gt;removeHostCallFrameFlag();
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291041</commentid>
    <comment_count>18</comment_count>
      <attachid>69110</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-10-07 09:04:23 -0700</bug_when>
    <thetext>Comment on attachment 69110
The patch

Hi David, apologies, I think I may have that last change in my local world. I&apos;ll take another look at whether the loop can be simplified when I&apos;ve fixed the last regression test I&apos;m failing.

Clearing review flag due to regression lest failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296333</commentid>
    <comment_count>19</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-10-19 12:28:34 -0700</bug_when>
    <thetext>*** Bug 41454 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296888</commentid>
    <comment_count>20</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-20 11:45:11 -0700</bug_when>
    <thetext>I&apos;ll finish this off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296971</commentid>
    <comment_count>21</comment_count>
      <attachid>71328</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-20 13:26:57 -0700</bug_when>
    <thetext>Created attachment 71328
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296977</commentid>
    <comment_count>22</comment_count>
      <attachid>71328</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-20 13:29:58 -0700</bug_when>
    <thetext>Comment on attachment 71328
patch

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

&gt; JavaScriptCore/interpreter/Interpreter.cpp:680
&gt; +    for (CallFrame* callerFrame = callFrame-&gt;callerFrame()-&gt;removeHostCallFrameFlag(); callerFrame; callerFrame = callerFrame-&gt;callerFrame()-&gt;removeHostCallFrameFlag()) {

This looks a bit like a while rather than for. I always wonder which to use in cases like this one.

&gt; JavaScriptCore/interpreter/Interpreter.cpp:687
&gt; +        if (callerHighWaterMark &lt;= highWaterMark)
&gt; +            continue;
&gt; +        highWaterMark = callerHighWaterMark;

You could use max() here instead of an if statement. I think it looks good that way:

    highWaterMark = max(highWaterMark, callerFrame-&gt;registers() + codeBlock-&gt;m_numCalleeRegisters);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297006</commentid>
    <comment_count>23</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-20 13:54:56 -0700</bug_when>
    <thetext>Committed revision 70174.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297028</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-20 14:35:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70174 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
http/tests/xmlhttprequest/origin-whitelisting-removal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297280</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 01:08:50 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; http://trac.webkit.org/changeset/70174 might have broken SnowLeopard Intel Release (Tests)
&gt; The following tests are not passing:
&gt; http/tests/xmlhttprequest/origin-whitelisting-removal.html

It&apos;s surprising that this is related, but your patch is the only one in the regression range that makes any sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297285</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 01:34:17 -0700</bug_when>
    <thetext>I have confirmed that removing your patch fixes the crash.  I&apos;m going to roll out your change since it cause a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297287</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 01:36:45 -0700</bug_when>
    <thetext>Committed r70212: &lt;http://trac.webkit.org/changeset/70212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297288</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 01:37:36 -0700</bug_when>
    <thetext>Rolled out in http://trac.webkit.org/changeset/70212</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299026</commentid>
    <comment_count>29</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-25 12:23:03 -0700</bug_when>
    <thetext>Hmmm... I asked the sherrifbot to roll this out a few days ago, but I guess it got stuck in the backlog. Thanks for taking care of this, Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299921</commentid>
    <comment_count>30</comment_count>
      <attachid>71974</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-26 18:22:03 -0700</bug_when>
    <thetext>Created attachment 71974
patch

This time for sure!

(Added 0-initialization for the CodeBlock field in CallFrames for host calls.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300356</commentid>
    <comment_count>31</comment_count>
      <attachid>71974</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-10-27 10:42:58 -0700</bug_when>
    <thetext>Comment on attachment 71974
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300368</commentid>
    <comment_count>32</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-10-27 11:01:58 -0700</bug_when>
    <thetext>Committed revision 70673.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312677</commentid>
    <comment_count>33</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-22 20:16:13 -0800</bug_when>
    <thetext>*** Bug 45457 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312724</commentid>
    <comment_count>34</comment_count>
      <attachid>71974</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-23 01:34:54 -0800</bug_when>
    <thetext>Comment on attachment 71974
patch

Clearing flags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351292</commentid>
    <comment_count>35</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2011-02-15 08:36:44 -0800</bug_when>
    <thetext>Please cherry pick the fix for Qtwebkit 2.1.x as this patch fixes the below use case

STEPS TO REPRODUCE:
1. Load gazeta.ru
2. Use &quot;full version&quot; link on top or bottom of page if mobile version loaded

ACTUAL RESULTS:
Browser crashes on loading the full version of page

EXPECTED RESULTS:
Browser should not crash on page loading.

Used QtTestBrowser on N8 to reproduce the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354553</commentid>
    <comment_count>36</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-21 06:16:51 -0800</bug_when>
    <thetext>Revision r70673 cherry-picked into qtwebkit-2.1.x with commit 5386b0f &lt;http://gitorious.org/webkit/qtwebkit/commit/5386b0f&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>61559</attachid>
            <date>2010-07-14 13:28:04 -0700</date>
            <delta_ts>2010-10-20 13:26:57 -0700</delta_ts>
            <desc>reduction</desc>
            <filename>scratch.html</filename>
            <type>text/html</type>
            <size>112</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZXZhbCgndHJ5IHsgdGhyb3cgMDsgfSBjYXRjaChlKSB7fScpOwoKdmFyIHggPSBu
ZXcgU3RyaW5nKCk7CicnICsgZXNjYXBlKHguc3Vic3RyaW5nKDAsIDEpKTsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62116</attachid>
            <date>2010-07-20 14:53:20 -0700</date>
            <delta_ts>2010-09-28 14:49:12 -0700</delta_ts>
            <desc>potential solution</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>669</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlz
aW9uIDYzNTEzKQorKysgSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MzMsOSArNjMzLDYgQEAgTkVWRVJfSU5MSU5FIEhhbmRsZXJJ
bmZvKiBJbnRlcnByZXRlcjo6dAogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAg
Ly8gU2hyaW5rIHRoZSBKUyBzdGFjaywgaW4gY2FzZSBzdGFjayBvdmVyZmxvdyBtYWRlIGl0IGh1
Z2UuCi0gICAgbV9yZWdpc3RlckZpbGUuc2hyaW5rKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycyk7Ci0KICAgICAvLyBV
bndpbmQgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiB0aGUgZXhjZXB0aW9uIGhhbmRsZXIncyBjYWxs
IGZyYW1lLgogICAgIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluID0gY2FsbEZyYW1lLT5zY29w
ZUNoYWluKCk7CiAgICAgU2NvcGVDaGFpbiBzYyhzY29wZUNoYWluKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69110</attachid>
            <date>2010-09-28 14:49:12 -0700</date>
            <delta_ts>2010-10-20 13:26:57 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>41948.patch</filename>
            <type>text/plain</type>
            <size>4043</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NTYzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjggIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyA0MTk0OCAtIFJFR1JFU1NJT04ocjYwMzky
KTogQ3Jhc2ggZHVyaW5nIHBhZ2UgbG9hZCBpbnNpZGUgSlNPYmplY3Q6OmRlZmF1bHRWYWx1ZQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODE3NDcyND4KKworICAgICAgICBUaGUgc3RhY2sgc2hy
aW5raW5nIGNvZGUgaW4gZXhjZXB0aW9uIHVud2luZGluZyBpcyBhIGxpdHRsZSB0b28gYWdncmVz
c2l2ZS4gSXQncyBwb3NzaWJsZQorICAgICAgICBmb3IgYSBjYWxsZXIgdG8gcmVxdWlyZSBtb3Jl
IHN0YWNrIHRoYW4gYSBjYWxsZWUsIHNvIGl0J3Mgbm90IHNhZmUgZm9yIGEgY2FsbGVlIHRvIHNo
cmluaworICAgICAgICB0aGUgc3RhY2sgdG8ganVzdCB0byBzYXRpc2Z5IGl0cyBvd24gbmVlZHMu
CisKKyAgICAgICAgV2hlbiBzaHJpbmtpbmcgdGhlIHN0YWNrIHdoaWxzdCBleGNlcHRpb24gdW53
aW5kaW5nLCBjaGVjayB0aGUgc3RhY2sgZm9yIGNhbGxlciBmdW5jdGlvbnMKKyAgICAgICAgd2hv
IHJlcXVpcmUgbW9yZSBzdGFjayBzcGFjZS4KKworICAgICAgICAqIGludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnRocm93RXhjZXB0aW9uKToK
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAgICAgKiBqaXQv
SklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6CisKIDIwMTAtMDkt
MjggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDY4NDYwKQorKysgSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDAsOCArNjQw
LDIzIEBAIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnQKICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAorICAgIC8vIFNlYXJjaCB0aGUgcmVzdCBvZiB0aGUgSlMg
c3RhY2ssIGxvb2tpbmcgYXQgaG93IG11Y2ggc3RhY2sgc3BhY2UgaXMgYmVpbmcgdXNlZC4KKyAg
ICAvLyBXZSB3b3VsZG4ndCBoYXZlIHRvIGRvIHRoaXMgaWYgY2FsbGVyIGZ1bmN0aW9ucyBkaWRu
J3Qgc2hhcmUgc29tZSBvZiB0aGVpciBzdGFjayBzcGFjZSB3aXRoIGNhbGxlZXMhCisgICAgUmVn
aXN0ZXIqIG1heFVzZWRTdGFjayA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBjYWxsRnJhbWUt
PmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKKyAgICBDYWxsRnJhbWUqIGNhbGxl
ckNhbGxGcmFtZSA9IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKKyAgICBpZiAoY2FsbGVyQ2Fs
bEZyYW1lLT5oYXNIb3N0Q2FsbEZyYW1lRmxhZygpKQorICAgICAgICBjYWxsZXJDYWxsRnJhbWUg
PSBjYWxsZXJDYWxsRnJhbWUtPnJlbW92ZUhvc3RDYWxsRnJhbWVGbGFnKCk7CisgICAgd2hpbGUg
KGNhbGxlckNhbGxGcmFtZSkgeworICAgICAgICBSZWdpc3RlciogY2FsbGVyTWF4VXNlZFN0YWNr
ID0gY2FsbGVyQ2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGNhbGxlckNhbGxGcmFtZS0+Y29kZUJs
b2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgICAgICBpZiAoY2FsbGVyTWF4VXNlZFN0
YWNrID4gbWF4VXNlZFN0YWNrKQorICAgICAgICAgICAgbWF4VXNlZFN0YWNrID0gY2FsbGVyTWF4
VXNlZFN0YWNrOworICAgICAgICBjYWxsZXJDYWxsRnJhbWUgPSBjYWxsZXJDYWxsRnJhbWUtPmNh
bGxlckZyYW1lKCk7CisgICAgICAgIGlmIChjYWxsZXJDYWxsRnJhbWUtPmhhc0hvc3RDYWxsRnJh
bWVGbGFnKCkpCisgICAgICAgICAgICBjYWxsZXJDYWxsRnJhbWUgPSBjYWxsZXJDYWxsRnJhbWUt
PnJlbW92ZUhvc3RDYWxsRnJhbWVGbGFnKCk7CisgICAgfQorCiAgICAgLy8gU2hyaW5rIHRoZSBK
UyBzdGFjaywgaW4gY2FzZSBzdGFjayBvdmVyZmxvdyBtYWRlIGl0IGh1Z2UuCi0gICAgbV9yZWdp
c3RlckZpbGUuc2hyaW5rKGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBjYWxsRnJhbWUtPmNvZGVC
bG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycyk7CisgICAgbV9yZWdpc3RlckZpbGUuc2hyaW5r
KG1heFVzZWRTdGFjayk7CiAKICAgICAvLyBVbndpbmQgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiB0
aGUgZXhjZXB0aW9uIGhhbmRsZXIncyBjYWxsIGZyYW1lLgogICAgIFNjb3BlQ2hhaW5Ob2RlKiBz
Y29wZUNoYWluID0gY2FsbEZyYW1lLT5zY29wZUNoYWluKCk7CkBAIC03MjYsNiArNzQxLDggQEAg
SlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlYwogCiBKU1ZhbHVlIEludGVy
cHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGZ1bmN0
aW9uLCBDYWxsVHlwZSBjYWxsVHlwZSwgY29uc3QgQ2FsbERhdGEmIGNhbGxEYXRhLCBKU1ZhbHVl
IHRoaXNWYWx1ZSwgY29uc3QgQXJnTGlzdCYgYXJncywgSlNWYWx1ZSogZXhjZXB0aW9uKQogewor
ICAgIC8vIFRoZSBjYWxsZnJhbWUgbXVzdCBiZSB3aXRoaW4gdGhlIHJlZ2lzdGVyIGJhbmsuLi4g
b3IgZWxzZSBpdCBtdXN0IGJlIHRoZSBnbG9iYWwgb2JqZWN0J3MgZ2xvYmFsRXhlYygpIQorICAg
IEFTU0VSVCgoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSA8PSBtX3JlZ2lzdGVyRmlsZS5lbmQoKSkg
fHwgKGNhbGxGcmFtZSA9PSBjYWxsRnJhbWUtPmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+Z2xvYmFs
RXhlYygpKSk7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKTsKIAogICAg
IGlmIChtX3JlZW50cnlEZXB0aCA+PSBNYXhTbWFsbFRocmVhZFJlZW50cnlEZXB0aCkgewpJbmRl
eDogSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDY4NDYwKQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MSw4ICs0ODEsNyBAQCBKSVRDb2RlIEpJVDo6cHJp
dmF0ZUNvbXBpbGUoQ29kZVB0ciogZnVuCiAgICAgICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxG
cmFtZUhlYWRlcihtX2NvZGVCbG9jaywgUmVnaXN0ZXJGaWxlOjpDb2RlQmxvY2spOwogCiAgICAg
ICAgIGFkZFB0cihJbW0zMihtX2NvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QxKTsKLSAgICAgICAgcmVnaXN0
ZXJGaWxlQ2hlY2sgPSBicmFuY2hQdHIoQmVsb3csIEFic29sdXRlQWRkcmVzcygmbV9nbG9iYWxE
YXRhLT5pbnRlcnByZXRlci0+cmVnaXN0ZXJGaWxlKCkuCi0gICAgICAgIG1fZW5kKSwgcmVnVDEp
OworICAgICAgICByZWdpc3RlckZpbGVDaGVjayA9IGJyYW5jaFB0cihCZWxvdywgQWJzb2x1dGVB
ZGRyZXNzKCZtX2dsb2JhbERhdGEtPmludGVycHJldGVyLT5yZWdpc3RlckZpbGUoKS5tX2VuZCks
IHJlZ1QxKTsKICAgICB9CiAKICAgICBMYWJlbCBmdW5jdGlvbkJvZHkgPSBsYWJlbCgpOwo=
</data>
<flag name="review"
          id="58739"
          type_id="1"
          status="-"
          setter="barraclough"
    />
    <flag name="commit-queue"
          id="58741"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71328</attachid>
            <date>2010-10-20 13:26:57 -0700</date>
            <delta_ts>2010-10-21 01:36:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>4929</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwMTYxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAtMjAgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE5NDgKKyAgICAgICAgUkVHUkVTU0lPTihyNjAzOTIpOiBSZWdpc3RlcmZpbGUgY2FuIGJl
IHVud291bmQgdG9vIGZhciBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uCisKKyAgICAgICAgKiBpbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0aHJv
d0V4Y2VwdGlvbik6IFdhbGsgdGhlIHN0YWNrIHRvIGNhbGN1bGF0ZSB0aGUgaGlnaAorICAgICAg
ICB3YXRlciBtYXJrIGN1cnJlbnRseSBpbiB1c2UuIEl0J3Mgbm90IHNhZmUgdG8gYXNzdW1lIHRo
YXQgdGhlIGN1cnJlbnQKKyAgICAgICAgQ2FsbEZyYW1lJ3MgaGlnaCB3YXRlciBtYXJrIGlzIHRo
ZSBoaWdoZXN0IGhpZ2ggd2F0ZXIgbWFyayBiZWNhdXNlCisgICAgICAgIGNhbGxzIGRvIG5vdCBh
bHdheXMgc2V0IHVwIGF0IHRoZSBlbmQgb2YgYSBDYWxsRnJhbWUuIEEgbGFyZ2UgY2FsbGVyCisg
ICAgICAgIENhbGxGcmFtZSBjYW4gZW5jb21wYXNzIGEgc21hbGwgY2FsbGVlIENhbGxGcmFtZS4K
KwogMjAxMC0xMC0xOSAgS3dhbmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAubmV0PgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDcwMTU4KQorKysgSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzYs
NyArNjc2LDE3IEBAIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnQKICAg
ICB9CiAKICAgICAvLyBTaHJpbmsgdGhlIEpTIHN0YWNrLCBpbiBjYXNlIHN0YWNrIG92ZXJmbG93
IG1hZGUgaXQgaHVnZS4KLSAgICBtX3JlZ2lzdGVyRmlsZS5zaHJpbmsoY2FsbEZyYW1lLT5yZWdp
c3RlcnMoKSArIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKTsK
KyAgICBSZWdpc3RlciogaGlnaFdhdGVyTWFyayA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCkgKyBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVyczsKKyAgICBmb3IgKENh
bGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCktPnJlbW92ZUhv
c3RDYWxsRnJhbWVGbGFnKCk7IGNhbGxlckZyYW1lOyBjYWxsZXJGcmFtZSA9IGNhbGxlckZyYW1l
LT5jYWxsZXJGcmFtZSgpLT5yZW1vdmVIb3N0Q2FsbEZyYW1lRmxhZygpKSB7CisgICAgICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gY2FsbGVyRnJhbWUtPmNvZGVCbG9jaygpOworICAgICAgICBp
ZiAoIWNvZGVCbG9jaykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBSZWdpc3Rlciog
Y2FsbGVySGlnaFdhdGVyTWFyayA9IGNhbGxlckZyYW1lLT5yZWdpc3RlcnMoKSArIGNvZGVCbG9j
ay0+bV9udW1DYWxsZWVSZWdpc3RlcnM7CisgICAgICAgIGlmIChjYWxsZXJIaWdoV2F0ZXJNYXJr
IDw9IGhpZ2hXYXRlck1hcmspCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaGlnaFdh
dGVyTWFyayA9IGNhbGxlckhpZ2hXYXRlck1hcms7CisgICAgfQorICAgIG1fcmVnaXN0ZXJGaWxl
LnNocmluayhoaWdoV2F0ZXJNYXJrKTsKIAogICAgIC8vIFVud2luZCB0aGUgc2NvcGUgY2hhaW4g
d2l0aGluIHRoZSBleGNlcHRpb24gaGFuZGxlcidzIGNhbGwgZnJhbWUuCiAgICAgU2NvcGVDaGFp
bk5vZGUqIHNjb3BlQ2hhaW4gPSBjYWxsRnJhbWUtPnNjb3BlQ2hhaW4oKTsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDcwMTYxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMjAgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIEFkZGVkIGEgdGVzdCBmb3I6CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQxOTQ4CisgICAgICAgIFJFR1JFU1NJT04ocjYwMzkyKTogUmVn
aXN0ZXJmaWxlIGNhbiBiZSB1bndvdW5kIHRvbyBmYXIgZm9sbG93aW5nIGFuIGV4Y2VwdGlvbgor
CisgICAgICAgICogZmFzdC9qcy9leGNlcHRpb24tcmVnaXN0ZXJmaWxlLXNocmluay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1z
aHJpbmsuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZXhjZXB0
aW9uLXJlZ2lzdGVyZmlsZS1zaHJpbmsuanM6IEFkZGVkLgorCiAyMDEwLTEwLTIwICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRm9sbG93LXVwIHRvIDcw
MTU1OiByZW5hbWUgYW4gZXhwZWN0YXRpb24gdG8gLWV4cGVjdGVkLnR4dApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tcmVnaXN0ZXJmaWxlLXNocmluay1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24tcmVnaXN0ZXJmaWxl
LXNocmluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L2V4Y2VwdGlvbi1yZWdpc3RlcmZpbGUtc2hyaW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBSRUdSRVNTSU9OKHI2MDM5Mik6IFJlZ2lzdGVyZmls
ZSBjYW4gYmUgdW53b3VuZCB0b28gZmFyIGZvbGxvd2luZyBhbiBleGNlcHRpb24uIElmIHRoZSB0
ZXN0IGRvZXNuJ3QgY3Jhc2gsIHlvdSBwYXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJpbmsu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2V4Y2VwdGlvbi1yZWdpc3Rl
cmZpbGUtc2hyaW5rLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2V4
Y2VwdGlvbi1yZWdpc3RlcmZpbGUtc2hyaW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZXhjZXB0aW9u
LXJlZ2lzdGVyZmlsZS1zaHJpbmsuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJp
bmsuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZXhj
ZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJpbmsuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9leGNlcHRpb24tcmVnaXN0ZXJmaWxlLXNocmluay5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorZGVzY3JpcHRpb24oCisiVGVzdCBmb3IgPGEg
aHJlZj0naHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxOTQ4Jz5SRUdS
RVNTSU9OKHI2MDM5Mik6IFJlZ2lzdGVyZmlsZSBjYW4gYmUgdW53b3VuZCB0b28gZmFyIGZvbGxv
d2luZyBhbiBleGNlcHRpb248L2E+LiBJZiB0aGUgdGVzdCBkb2Vzbid0IGNyYXNoLCB5b3UgcGFz
cy4iCispOworCitldmFsKCd0cnkgeyB0aHJvdyAwOyB9IGNhdGNoKGUpIHt9Jyk7CisKK3ZhciB4
ID0gbmV3IFN0cmluZygpOworJycgKyBlc2NhcGUoeC5zdWJzdHJpbmcoMCwgMSkpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71974</attachid>
            <date>2010-10-26 18:22:03 -0700</date>
            <delta_ts>2010-11-23 01:34:54 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>7641</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwNTkxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMTAtMjUgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE5NDgKKyAgICAgICAgUkVHUkVTU0lPTihyNjAzOTIpOiBSZWdpc3RlcmZpbGUgY2FuIGJl
IHVud291bmQgdG9vIGZhciBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uCisKKyAgICAgICAgKiBpbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0aHJv
d0V4Y2VwdGlvbik6IFdhbGsgdGhlIHN0YWNrIHRvIGNhbGN1bGF0ZSB0aGUgaGlnaAorICAgICAg
ICB3YXRlciBtYXJrIGN1cnJlbnRseSBpbiB1c2UuIEl0J3Mgbm90IHNhZmUgdG8gYXNzdW1lIHRo
YXQgdGhlIGN1cnJlbnQKKyAgICAgICAgQ2FsbEZyYW1lJ3MgaGlnaCB3YXRlciBtYXJrIGlzIHRo
ZSBoaWdoZXN0IGhpZ2ggd2F0ZXIgbWFyayBiZWNhdXNlCisgICAgICAgIGNhbGxzIGRvIG5vdCBh
bHdheXMgc2V0IHVwIGF0IHRoZSBlbmQgb2YgYSBDYWxsRnJhbWUuIEEgbGFyZ2UgY2FsbGVyCisg
ICAgICAgIENhbGxGcmFtZSBjYW4gZW5jb21wYXNzIGEgc21hbGwgY2FsbGVlIENhbGxGcmFtZS4K
KworICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2
YXRlQ29tcGlsZUNUSU5hdGl2ZUNhbGwpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQu
Y3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZlQ2FsbCk6IE1h
a2Ugc3VyZSB0byBzZXQgYSAwIENvZGVCbG9jaworICAgICAgICBpbiB0aGUgQ2FsbEZyYW1lIG9m
IGEgaG9zdCBjYWxsLCBsaWtlIHRoZSBJbnRlcnByZXRlciBkb2VzLCBpbnN0ZWFkIG9mCisgICAg
ICAgIGxlYXZpbmcgdGhlIENvZGVCbG9jayBmaWVsZCB1bmluaXRpYWxpemVkLiBUaGUgYmFja3Ry
YWNpbmcgY29kZSByZXF1aXJlcworICAgICAgICBhIHZhbGlkIENvZGVCbG9jayBmaWVsZCBpbiBl
YWNoIENhbGxGcmFtZS4KKwogMjAxMC0xMC0yNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEludGVycHJldGVyIGJ1aWxkIGZpeC4KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDcwNDkyKQorKysgSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NzYsNyArNjc2LDE1IEBAIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6
OnQKICAgICB9CiAKICAgICAvLyBTaHJpbmsgdGhlIEpTIHN0YWNrLCBpbiBjYXNlIHN0YWNrIG92
ZXJmbG93IG1hZGUgaXQgaHVnZS4KLSAgICBtX3JlZ2lzdGVyRmlsZS5zaHJpbmsoY2FsbEZyYW1l
LT5yZWdpc3RlcnMoKSArIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0
ZXJzKTsKKyAgICBSZWdpc3RlciogaGlnaFdhdGVyTWFyayA9IDA7CisgICAgZm9yIChDYWxsRnJh
bWUqIGNhbGxlckZyYW1lID0gY2FsbEZyYW1lOyBjYWxsZXJGcmFtZTsgY2FsbGVyRnJhbWUgPSBj
YWxsZXJGcmFtZS0+Y2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENhbGxGcmFtZUZsYWcoKSkgewor
ICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxlckZyYW1lLT5jb2RlQmxvY2soKTsK
KyAgICAgICAgaWYgKCFjb2RlQmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
UmVnaXN0ZXIqIGNhbGxlckhpZ2hXYXRlck1hcmsgPSBjYWxsZXJGcmFtZS0+cmVnaXN0ZXJzKCkg
KyBjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOworICAgICAgICBoaWdoV2F0ZXJNYXJr
ID0gbWF4KGhpZ2hXYXRlck1hcmssIGNhbGxlckhpZ2hXYXRlck1hcmspOworICAgIH0KKyAgICBt
X3JlZ2lzdGVyRmlsZS5zaHJpbmsoaGlnaFdhdGVyTWFyayk7CiAKICAgICAvLyBVbndpbmQgdGhl
IHNjb3BlIGNoYWluIHdpdGhpbiB0aGUgZXhjZXB0aW9uIGhhbmRsZXIncyBjYWxsIGZyYW1lLgog
ICAgIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluID0gY2FsbEZyYW1lLT5zY29wZUNoYWluKCk7
CkBAIC0xMDAxLDcgKzEwMDksNiBAQCBDYWxsRnJhbWVDbG9zdXJlIEludGVycHJldGVyOjpwcmVw
YXJlRm9yCiAgICAgICAgIG1fcmVnaXN0ZXJGaWxlLnNocmluayhvbGRFbmQpOwogICAgICAgICBy
ZXR1cm4gQ2FsbEZyYW1lQ2xvc3VyZSgpOwogICAgIH0KLSAgICAvLyBhIDAgY29kZUJsb2NrIGlu
ZGljYXRlcyBhIGJ1aWx0LWluIGNhbGxlcgogICAgIG5ld0NhbGxGcmFtZS0+aW5pdChjb2RlQmxv
Y2ssIDAsIHNjb3BlQ2hhaW4sIGNhbGxGcmFtZS0+YWRkSG9zdENhbGxGcmFtZUZsYWcoKSwgYXJn
YywgZnVuY3Rpb24pOyAgCiAgICAgQ2FsbEZyYW1lQ2xvc3VyZSByZXN1bHQgPSB7IGNhbGxGcmFt
ZSwgbmV3Q2FsbEZyYW1lLCBmdW5jdGlvbiwgRnVuY3Rpb25FeGVjdXRhYmxlLCBzY29wZUNoYWlu
LT5nbG9iYWxEYXRhLCBvbGRFbmQsIHNjb3BlQ2hhaW4sIGNvZGVCbG9jay0+bV9udW1QYXJhbWV0
ZXJzLCBhcmdjIH07CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTExMjEsNyArMTEyOCw2IEBAIEpT
VmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEKIAogICAgIENhbGxGcmFtZSog
bmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobV9yZWdpc3RlckZpbGUuc3RhcnQoKSAr
IGdsb2JhbFJlZ2lzdGVyT2Zmc2V0KTsKIAotICAgIC8vIGEgMCBjb2RlQmxvY2sgaW5kaWNhdGVz
IGEgYnVpbHQtaW4gY2FsbGVyCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJz
ID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgogICAgIG5ld0NhbGxGcmFtZS0+aW5p
dChjb2RlQmxvY2ssIDAsIHNjb3BlQ2hhaW4sIGNhbGxGcmFtZS0+YWRkSG9zdENhbGxGcmFtZUZs
YWcoKSwgY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMsIDApOwogICAgIG5ld0NhbGxGcmFtZS0+
cihuZXdDYWxsRnJhbWUtPmhvc3RUaGlzUmVnaXN0ZXIoKSkgPSBKU1ZhbHVlKHRoaXNPYmopOwpJ
bmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHJldmlzaW9uIDcwNDky
KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE5OCw2ICsxOTgsOCBAQCBKSVQ6OkxhYmVsIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElO
YXRpdmVDCiAKICAgICBMYWJlbCBuYXRpdmVDYWxsVGh1bmsgPSBhbGlnbigpOwogCisgICAgZW1p
dFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKDAsIFJlZ2lzdGVyRmlsZTo6Q29kZUJsb2Nr
KTsKKwogI2lmIENQVShYODYpCiAgICAgLy8gTG9hZCBjYWxsZXIgZnJhbWUncyBzY29wZSBjaGFp
biBpbnRvIHRoaXMgY2FsbGZyYW1lIHNvIHRoYXQgd2hhdGV2ZXIgd2UgY2FsbCBjYW4KICAgICAv
LyBnZXQgdG8gaXRzIGdsb2JhbCBkYXRhLgpAQCAtMzEyLDYgKzMxNCw4IEBAIEpJVDo6Q29kZVB0
ciBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXYKICAgICBDYWxsIG5hdGl2ZUNhbGw7CiAgICAg
TGFiZWwgbmF0aXZlQ2FsbFRodW5rID0gYWxpZ24oKTsKIAorICAgIGVtaXRQdXRJbW1lZGlhdGVU
b0NhbGxGcmFtZUhlYWRlcigwLCBSZWdpc3RlckZpbGU6OkNvZGVCbG9jayk7CisKICNpZiBDUFUo
WDg2KQogICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNh
bGxmcmFtZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuCiAgICAgLy8gZ2V0IHRvIGl0cyBn
bG9iYWwgZGF0YS4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDcw
NDkyKQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTgsNiArMTk4LDggQEAgSklUOjpMYWJlbCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0
aXZlQwogICAgIGludCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbiA9IGlzQ29uc3RydWN0ID8g
T0JKRUNUX09GRlNFVE9GKE5hdGl2ZUV4ZWN1dGFibGUsIG1fY29uc3RydWN0b3IpIDogT0JKRUNU
X09GRlNFVE9GKE5hdGl2ZUV4ZWN1dGFibGUsIG1fZnVuY3Rpb24pOwogCiAgICAgTGFiZWwgbmF0
aXZlQ2FsbFRodW5rID0gYWxpZ24oKTsKKyAgICAKKyAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxs
RnJhbWVIZWFkZXIoMCwgUmVnaXN0ZXJGaWxlOjpDb2RlQmxvY2spOwogCiAjaWYgQ1BVKFg4Nl82
NCkKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWluIGludG8gdGhpcyBjYWxs
ZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzA0
OTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxMC0xMC0yNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRk
ZWQgYSB0ZXN0IGZvcjoKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE5NDgKKyAgICAgICAgUkVHUkVTU0lPTihyNjAzOTIpOiBSZWdpc3RlcmZpbGUg
Y2FuIGJlIHVud291bmQgdG9vIGZhciBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uCisKKyAgICAgICAg
KiBmYXN0L2pzL2V4Y2VwdGlvbi1yZWdpc3RlcmZpbGUtc2hyaW5rLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9qcy9leGNlcHRpb24tcmVnaXN0ZXJmaWxlLXNocmluay5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9leGNlcHRpb24tcmVnaXN0
ZXJmaWxlLXNocmluay5qczogQWRkZWQuCisKIDIwMTAtMTAtMjUgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZGVkIGV4cGVj
dGF0aW9ucyBmb3IgcjcwNDgyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9leGNlcHRpb24t
cmVnaXN0ZXJmaWxlLXNocmluay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9qcy9leGNlcHRpb24tcmVnaXN0ZXJmaWxlLXNocmluay1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2V4Y2VwdGlvbi1yZWdpc3RlcmZpbGUt
c2hyaW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUZXN0IGZv
ciBSRUdSRVNTSU9OKHI2MDM5Mik6IFJlZ2lzdGVyZmlsZSBjYW4gYmUgdW53b3VuZCB0b28gZmFy
IGZvbGxvd2luZyBhbiBleGNlcHRpb24uIElmIHRoZSB0ZXN0IGRvZXNuJ3QgY3Jhc2gsIHlvdSBw
YXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJpbmsuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL2V4Y2VwdGlvbi1yZWdpc3RlcmZpbGUtc2hyaW5rLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2V4Y2VwdGlvbi1yZWdpc3RlcmZpbGUtc2hy
aW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJpbmsuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJpbmsuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZXhjZXB0aW9uLXJlZ2lzdGVyZmlsZS1zaHJp
bmsuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9l
eGNlcHRpb24tcmVnaXN0ZXJmaWxlLXNocmluay5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MCBAQAorZGVzY3JpcHRpb24oCisiVGVzdCBmb3IgPGEgaHJlZj0naHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxOTQ4Jz5SRUdSRVNTSU9OKHI2MDM5Mik6IFJlZ2lzdGVy
ZmlsZSBjYW4gYmUgdW53b3VuZCB0b28gZmFyIGZvbGxvd2luZyBhbiBleGNlcHRpb248L2E+LiBJ
ZiB0aGUgdGVzdCBkb2Vzbid0IGNyYXNoLCB5b3UgcGFzcy4iCispOworCitldmFsKCd0cnkgeyB0
aHJvdyAwOyB9IGNhdGNoKGUpIHt9Jyk7CisKK3ZhciB4ID0gbmV3IFN0cmluZygpOworJycgKyBl
c2NhcGUoeC5zdWJzdHJpbmcoMCwgMSkpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>