<?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>55017</bug_id>
          
          <creation_ts>2011-02-22 19:58:02 -0800</creation_ts>
          <short_desc>SVGImage causes MainResourceLoader leaks</short_desc>
          <delta_ts>2011-03-04 23:08:52 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55185</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jnd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>355798</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-22 19:58:02 -0800</bug_when>
    <thetext>The following code (in WebCore/svg/graphics/SVGImage.cpp) causes ResourceLoader leak:

        RefPtr&lt;Frame&gt; frame = Frame::create(m_page.get(), 0, dummyFrameLoaderClient);
        frame-&gt;setView(FrameView::create(frame.get()));
        frame-&gt;init();
        ResourceRequest fakeRequest(KURL(ParsedURLString, &quot;&quot;));
        FrameLoader* loader = frame-&gt;loader();
        loader-&gt;setForcedSandboxFlags(SandboxAll);
        loader-&gt;load(fakeRequest, false); // Make sure the DocumentLoader is created

didFinishLoading() of the newly created ResourceLoader will be never called, causing the ResourceLoader stay in the list of loading loaders list of ResourceLoaderScheduler forever. When the number of leaked ResourceLoaderScheduler reaches 20, no more new loaders will be executed and the whole browser will stop working.

I reproduced the issue in chromium-linux environment running the following layout tests with single process mode (new-run-webkit-tests --no-retry-failures --no-pixel-tests --child-processes=1 --test-list=a_file_containing_the_following_lines):

svg/W3C-SVG-1.1/struct-use-01-t.svg
svg/W3C-SVG-1.1/struct-image-07-t.svg
svg/W3C-SVG-1.1/struct-image-05-b.svg
svg/W3C-SVG-1.1/struct-image-05-b.svg
svg/W3C-SVG-1.1/filters-light-01-f.svg
svg/W3C-SVG-1.1/color-prof-01-f.svg
svg/W3C-SVG-1.1/filters-diffuse-01-f.svg
svg/W3C-SVG-1.1/struct-image-03-t.svg
svg/W3C-SVG-1.1/struct-image-10-t.svg
svg/W3C-SVG-1.1/struct-symbol-01-b.svg
svg/W3C-SVG-1.1/struct-image-02-b.svg
svg/W3C-SVG-1.1/struct-image-06-t.svg
svg/W3C-SVG-1.1/struct-image-01-t.svg
svg/W3C-SVG-1.1/filters-conv-01-f.svg
svg/W3C-SVG-1.1/render-groups-03-t.svg
svg/W3C-SVG-1.1/struct-image-09-t.svg
svg/W3C-SVG-1.1/render-groups-01-b.svg
svg/W3C-SVG-1.1/struct-image-08-t.svg
svg/W3C-SVG-1.1/masking-path-04-b.svg
svg/W3C-SVG-1.1/filters-specular-01-f.svg
svg/animations/animVal-basics.html

The last test will timeout.

I&apos;ll provide a patch today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355803</commentid>
    <comment_count>1</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-22 20:07:01 -0800</bug_when>
    <thetext>Sorry for typos

&gt; didFinishLoading() of the newly created ResourceLoader will be never called, causing the ResourceLoader stay in the list of loading loaders list of ResourceLoaderScheduler forever. When the number of leaked ResourceLoaderScheduler reaches 20, no more new loaders will be executed and the whole browser will stop working.

Should be:

didFinishLoading() of the newly created ResourceLoader will be never called, causing the ResourceLoader stay in the list of loading loaders of ResourceLoadScheduler forever. When the number of leaked ResourceLoaders reaches 20, no more new loaders will be executed and the whole browser will stop working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355953</commentid>
    <comment_count>2</comment_count>
      <attachid>83459</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-23 02:16:58 -0800</bug_when>
    <thetext>Created attachment 83459
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356008</commentid>
    <comment_count>3</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2011-02-23 03:57:58 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=83459) [details]
&gt; patch

Nice, one suggestion, in the layout test, using the following data URL may save two more files.

scriptFrame.src = &apos;data:text/html;charset=utf-8,&lt;script src=&quot;empty.js&quot;&gt;&lt;/script&gt;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356028</commentid>
    <comment_count>4</comment_count>
      <attachid>83472</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-23 04:54:30 -0800</bug_when>
    <thetext>Created attachment 83472
updated patch

I&apos;ve tried data URL, but it didn&apos;t work:
scriptFrame.src = &quot;data:text/html,&lt;script src=x.js&gt;&lt;&quot; + &quot;&lt;/script&gt;&quot;
won&apos;t load x.js at all (may be a security restriction?)
So I still use an external html for the frame.

Adopted Johnny&apos;s another suggestion, removed blank.js and use XXXXX.js in load-script.html.
The issue can be triggered no matter the resource exists or not.

This updated patch also fixed a problem in the test case: &quot;totalFrames = 10&quot; was wrong because I forgot to revert a temporary change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356029</commentid>
    <comment_count>5</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-23 04:56:39 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; scriptFrame.src = &quot;data:text/html,&lt;script src=x.js&gt;&lt;&quot; + &quot;&lt;/script&gt;&quot;
scriptFrame.src = &quot;data:text/html,&lt;script src=x.js&gt;&lt;&quot; + &quot;/script&gt;&quot;, in fact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356117</commentid>
    <comment_count>6</comment_count>
      <attachid>83472</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-23 08:56:37 -0800</bug_when>
    <thetext>Comment on attachment 83472
updated patch

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

Nice catch.

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:285
&gt; +        loader-&gt;activeDocumentLoader()-&gt;cancelMainResourceLoad(ResourceError());

Will this result in an error line in Safari activity window, and/or in Web Inspector?

FWIW, existing callers of this function provide a real error object. The case in WebHTMLRepresentation.mm looks very similar:

    if (coreFrame-&gt;document()-&gt;isMediaDocument())
        coreFrame-&gt;loader()-&gt;documentLoader()-&gt;cancelMainResourceLoad(coreFrame-&gt;loader()-&gt;client()-&gt;pluginWillHandleLoadError(coreFrame-&gt;loader()-&gt;documentLoader()-&gt;response()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356626</commentid>
    <comment_count>7</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-23 19:12:29 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 83472 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83472&amp;action=review
&gt; 
&gt; Nice catch.
&gt; 
&gt; &gt; Source/WebCore/svg/graphics/SVGImage.cpp:285
&gt; &gt; +        loader-&gt;activeDocumentLoader()-&gt;cancelMainResourceLoad(ResourceError());
&gt; 
&gt; Will this result in an error line in Safari activity window, and/or in Web Inspector?
&gt;

Seems the Web Inspector will report this as an error.

&gt; FWIW, existing callers of this function provide a real error object. The case in WebHTMLRepresentation.mm looks very similar:
&gt; 
&gt;     if (coreFrame-&gt;document()-&gt;isMediaDocument())
&gt;         coreFrame-&gt;loader()-&gt;documentLoader()-&gt;cancelMainResourceLoad(coreFrame-&gt;loader()-&gt;client()-&gt;pluginWillHandleLoadError(coreFrame-&gt;loader()-&gt;documentLoader()-&gt;response()));

This is not a real error, just a cancellation of the fake empty request with no error. ResourceLoader will replace the empty error with a cancellation error.

I&apos;m wondering better ways to avoid the leak.
1) better way to clear the loader for the fake request.
  frame loader -&gt; document loader -&gt; main resource loader 
(In reply to comment #6)
&gt; (From update of attachment 83472 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83472&amp;action=review
&gt; 
&gt; Nice catch.
&gt; 
&gt; &gt; Source/WebCore/svg/graphics/SVGImage.cpp:285
&gt; &gt; +        loader-&gt;activeDocumentLoader()-&gt;cancelMainResourceLoad(ResourceError());
&gt; 
&gt; Will this result in an error line in Safari activity window, and/or in Web Inspector?
&gt; 
&gt; FWIW, existing callers of this function provide a real error object. The case in WebHTMLRepresentation.mm looks very similar:
&gt; 
&gt;     if (coreFrame-&gt;document()-&gt;isMediaDocument())
&gt;         coreFrame-&gt;loader()-&gt;documentLoader()-&gt;cancelMainResourceLoad(coreFrame-&gt;loader()-&gt;client()-&gt;pluginWillHandleLoadError(coreFrame-&gt;loader()-&gt;documentLoader()-&gt;response()));

There is no real error because I just want to cancel the loading for the fake request. ResourceLoader will replace the empty ResourceError with a cancellation error.

However, I just found a way to avoid calling loader-&gt;load(...). I&apos;ll create a patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356630</commentid>
    <comment_count>8</comment_count>
      <attachid>83597</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-23 19:28:15 -0800</bug_when>
    <thetext>Created attachment 83597
patch using loader-&gt;init() instead of loader-&gt;load(fakeRequest)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356633</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-23 19:37:58 -0800</bug_when>
    <thetext>&gt; &gt;     if (coreFrame-&gt;document()-&gt;isMediaDocument())
&gt; &gt;         coreFrame-&gt;loader()-&gt;documentLoader()-&gt;cancelMainResourceLoad(coreFrame-&gt;loader()-&gt;client()-&gt;pluginWillHandleLoadError(coreFrame-&gt;loader()-&gt;documentLoader()-&gt;response()));
&gt; 
&gt; There is no real error because I just want to cancel the loading for the fake request.

This doesn&apos;t matter any more, but it&apos;s the same in the example I gave. It&apos;s not an error, but a non-null error object is provided nonetheless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356794</commentid>
    <comment_count>10</comment_count>
      <attachid>83597</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-24 02:37:17 -0800</bug_when>
    <thetext>Comment on attachment 83597
patch using loader-&gt;init() instead of loader-&gt;load(fakeRequest)

I&apos;m not sure this is 100% correct (or even if this code could even be correct), but calling init is much better than trying a fake load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357308</commentid>
    <comment_count>11</comment_count>
      <attachid>83597</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 12:58:01 -0800</bug_when>
    <thetext>Comment on attachment 83597
patch using loader-&gt;init() instead of loader-&gt;load(fakeRequest)

Clearing flags on attachment: 83597

Committed r79604: &lt;http://trac.webkit.org/changeset/79604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357309</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 12:58:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357386</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-24 14:13:11 -0800</bug_when>
    <thetext>This is causing some assertion failures, for example:

ASSERTION FAILED: State(m_state + 1) == state || (firstLayoutDone() &amp;&amp; state == CommittedFirstRealLoad)
third_party/WebKit/Source/WebCore/loader/FrameLoaderStateMachine.cpp(69) : void WebCore::FrameLoaderStateMachine::advanceTo(WebCore::FrameLoaderStateMachine::State)
[19278:19278:3100559591770:ERROR:process_util_posix.cc(107)] Received signal 11
on compositing/images/direct-svg-image.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357387</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-24 14:15:55 -0800</bug_when>
    <thetext>Committed r79620: &lt;http://trac.webkit.org/changeset/79620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357388</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-02-24 14:16:14 -0800</bug_when>
    <thetext>That assertion tripped on:
compositing/images/direct-svg-image.html
fast/canvas/svg-taint.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357528</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-24 16:07:31 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/79620 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357660</commentid>
    <comment_count>17</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-24 19:53:17 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; That assertion tripped on:
&gt; compositing/images/direct-svg-image.html
&gt; fast/canvas/svg-taint.html

I can&apos;t reproduce the assertion failure with chromium-linux debug version.
Which platform are you using?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357664</commentid>
    <comment_count>18</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-24 20:12:49 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #15)
&gt; &gt; That assertion tripped on:
&gt; &gt; compositing/images/direct-svg-image.html
&gt; &gt; fast/canvas/svg-taint.html
&gt; 
&gt; I can&apos;t reproduce the assertion failure with chromium-linux debug version.
&gt; Which platform are you using?

Sorry I used the wrong version. Please ignore the above reply.

Reopening the bug because the patch was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357666</commentid>
    <comment_count>19</comment_count>
      <attachid>83766</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-02-24 20:36:05 -0800</bug_when>
    <thetext>Created attachment 83766
Update patch to fix assertion failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360317</commentid>
    <comment_count>20</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-01 15:40:48 -0800</bug_when>
    <thetext>Hi, Adam, could you please take a look at the updated patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360348</commentid>
    <comment_count>21</comment_count>
      <attachid>83766</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-01 16:16:34 -0800</bug_when>
    <thetext>Comment on attachment 83766
Update patch to fix assertion failures

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

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:279
&gt; +        if (!loader-&gt;activeDocumentLoader())
&gt; +            loader-&gt;init(); // Make sure the DocumentLoader is created

Why is there a branch here?  This boot-up process should be deterministic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360747</commentid>
    <comment_count>22</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-02 05:18:25 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 83766 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83766&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/graphics/SVGImage.cpp:279
&gt; &gt; +        if (!loader-&gt;activeDocumentLoader())
&gt; &gt; +            loader-&gt;init(); // Make sure the DocumentLoader is created
&gt; 
&gt; Why is there a branch here?  This boot-up process should be deterministic.

After comparing the execution paths on chromium-linux and mac, I found I was misled by the execution path on chromium-linux: the code is executed for the first image contained in an SVG document, which seems incorrect. SVGImage shouldn&apos;t be created and loaded at all for the tests because no SVG document is used as an embedded image. The execution path doesn&apos;t happen on mac webkit.

However, that SVGImage causes MainResourceLoader leaks is still a fact on all platforms thought it should be triggered with different tests. The tests listed in my first bug description just accidentally triggered this issue on chromium-linux (maybe also some other platforms). I will file another bug for the wrong execution path issue on chromium-linux, and create a new test case for this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361297</commentid>
    <comment_count>23</comment_count>
      <attachid>84507</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-02 18:53:50 -0800</bug_when>
    <thetext>Created attachment 84507
new patch

Hi, Adam,

This new patch removed the loader-&gt;init() code which is unnecessary because frame-&gt;init() has already initialized the loader.
Also updated the test case suitable for all platforms. Could you please take another look?

About chromium-linux&apos;s unnecessary SVGImage creation, I created bug 55643 to track it.

Thanks,
Xianzhu</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361299</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 18:56:02 -0800</bug_when>
    <thetext>Attachment 84507 did not pass style-queue:

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

Source/WebCore/svg/graphics/SVGImage.cpp:277:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 6 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>361302</commentid>
    <comment_count>25</comment_count>
      <attachid>84509</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-02 19:02:32 -0800</bug_when>
    <thetext>Created attachment 84509
Fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361372</commentid>
    <comment_count>26</comment_count>
      <attachid>84509</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-02 22:48:51 -0800</bug_when>
    <thetext>Comment on attachment 84509
Fix style

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

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:-278
&gt; -        loader-&gt;setForcedSandboxFlags(SandboxAll);

Why did you remove this sandboxing?  We still want this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361373</commentid>
    <comment_count>27</comment_count>
      <attachid>84509</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-02 22:49:21 -0800</bug_when>
    <thetext>Comment on attachment 84509
Fix style

I should say that the rest of the change looks good.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361437</commentid>
    <comment_count>28</comment_count>
      <attachid>84534</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-03 01:31:44 -0800</bug_when>
    <thetext>Created attachment 84534
Fix sandbox issue

Sorry. My fault. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361669</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-03 09:19:58 -0800</bug_when>
    <thetext>Does this need an additional test case to cover the sandbox mistake?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361860</commentid>
    <comment_count>30</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-03 13:00:06 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; Does this need an additional test case to cover the sandbox mistake?

I could be wrong, but I don&apos;t think the sandbox bits are observable here.  We&apos;re using them as defense in depth.  The problem is you can&apos;t run script inside an SVGImage, which makes it tough to poke at things and see if you&apos;re sandboxed.  I&apos;m open to suggestions if you have a clever idea how to test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361872</commentid>
    <comment_count>31</comment_count>
      <attachid>84534</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-03 13:07:34 -0800</bug_when>
    <thetext>Comment on attachment 84534
Fix sandbox issue

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

I continue to like this patch because it removes cruft from the SVGImage bootup code.  Please give Alexey a chance to suggest an approach for additional testing before landing.  Thanks!

&gt; LayoutTests/fast/images/svg-image-leak-loader.html:6
&gt; +  layoutTestController.dumpAsText();
&gt; +  layoutTestController.waitUntilDone();

We usually use four-space indent in tests, but it doesn&apos;t really matter.

&gt; LayoutTests/fast/images/resources/load-script.html:3
&gt; +&lt;script src=&quot;XXXXX.js&quot;&gt;&lt;/script&gt;

I might have called this &quot;does-not-exist.js&quot; so a future reader doesn&apos;t need to wonder what XXXXX means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361894</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-03 13:28:45 -0800</bug_when>
    <thetext>I also don&apos;t know how to test this. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362245</commentid>
    <comment_count>33</comment_count>
      <attachid>84686</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-03 21:14:22 -0800</bug_when>
    <thetext>Created attachment 84686
Final patch

Thanks Adam for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362548</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 09:02:52 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 84686:

inspector/audits/audits-panel-functional.html bug 55776 (authors: apavlov@chromium.org, pfeldman@chromium.org, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362549</commentid>
    <comment_count>35</comment_count>
      <attachid>84686</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 09:04:36 -0800</bug_when>
    <thetext>Comment on attachment 84686
Final patch

Rejecting attachment 84686 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-7&apos;, &apos;land-a...&quot; exit_code: 1

Last 500 characters of output:
ages.in
	M	Source/WebKit2/WebProcess/WebPage/WebPage.cpp
	M	Tools/TestWebKitAPI/JavaScriptTest.cpp
	M	Tools/TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp
	M	Tools/TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp
	M	Tools/TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp
	M	Tools/ChangeLog
r80358 = da0785b77f5fe28405a577a7d2bb2afb8a665b8c (refs/remotes/trunk)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/trunk.

Full output: http://queues.webkit.org/results/8082727</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362650</commentid>
    <comment_count>36</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-04 11:57:13 -0800</bug_when>
    <thetext>NOBODY (OOPS!) found in /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.

was the error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362757</commentid>
    <comment_count>37</comment_count>
      <attachid>84818</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-04 15:41:37 -0800</bug_when>
    <thetext>Created attachment 84818
Really final:) Fixed reviewer in LayoutTests/ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362882</commentid>
    <comment_count>38</comment_count>
      <attachid>84818</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 23:08:45 -0800</bug_when>
    <thetext>Comment on attachment 84818
Really final:) Fixed reviewer in LayoutTests/ChangeLog

Clearing flags on attachment: 84818

Committed r80410: &lt;http://trac.webkit.org/changeset/80410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362883</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-04 23:08:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83459</attachid>
            <date>2011-02-23 02:16:58 -0800</date>
            <delta_ts>2011-02-23 04:54:30 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch55017</filename>
            <type>text/plain</type>
            <size>6151</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDI4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjMgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwbGljaXRseSBjYW5jZWwgdGhlIGxvYWRlciBmb3Ig
ZmFrZSByZXF1ZXN0IGluIFNWR0ltYWdlIHRvIHByZXZlbnQKKyAgICAgICAgY2F1c2luZyBSZXNv
dXJjZUxvYWRlciBsZWFrcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAgICAgICBUZXN0OiBzdmcvbWlzYy9TVkdJbWFnZS1sZWFr
LVJlc291cmNlTG9hZGVyLmh0bWwKKworICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorCiAyMDExLTAy
LTIzICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHAJKHJldmlzaW9uIDc5MzI3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc5LDYgKzI3OSwxMSBAQCBib29sIFNW
R0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSCiAgICAgICAgIGxvYWRlci0+bG9hZChm
YWtlUmVxdWVzdCwgZmFsc2UpOyAvLyBNYWtlIHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNy
ZWF0ZWQKICAgICAgICAgbG9hZGVyLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7IC8v
IGNhbmNlbCBhbnkgcG9saWN5IGNoZWNrcwogICAgICAgICBsb2FkZXItPmNvbW1pdFByb3Zpc2lv
bmFsTG9hZCgpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgTWFpblJlc291cmNlTG9hZGVy
IGZvciB0aGUgZmFrZSByZXF1ZXN0IGZpbmlzaGVzIGxvYWRpbmcsCisgICAgICAgIC8vIG90aGVy
d2lzZSBpdCdsbCBiZSBpbiBsb2FkaW5nIHN0YXRlIGZvcmV2ZXIgYW5kIGxlYWtzLgorICAgICAg
ICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQo
UmVzb3VyY2VFcnJvcigpKTsKKwogICAgICAgICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPndyaXRlcigpLT5zZXRNSU1FVHlwZSgiaW1hZ2Uvc3ZnK3htbCIpOwogICAgICAgICBsb2Fk
ZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpLT5iZWdpbihLVVJMKCkpOyAvLyBj
cmVhdGUgdGhlIGVtcHR5IGRvY3VtZW50CiAgICAgICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+d3JpdGVyKCktPmFkZERhdGEoZGF0YSgpLT5kYXRhKCksIGRhdGEoKS0+c2l6ZSgp
KTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDI4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDItMjMgIFhpYW56aHUgV2FuZyAg
PHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byBlbnN1cmUgU1ZHSW1hZ2Ugd29uJ3QgY2F1
c2UgUmVzb3VyY2VMb2FkZXIgbGVha3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NTAxNworCisgICAgICAgICogc3ZnL21pc2M6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9taXNjL1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9taXNjL3Jlc291cmNlczogQWRkZWQuCisgICAg
ICAgICogc3ZnL21pc2MvcmVzb3VyY2VzL2JsYW5rLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
bWlzYy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL21p
c2MvcmVzb3VyY2VzL3NtYWxsLnBuZzogQWRkZWQuCisKIDIwMTEtMDItMjMgIERvbWluaWMgTWF6
em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSdXNzZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNv
dXJjZUxvYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL21p
c2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgY2hlY2tz
IGlmIFNWR0lNYWdlcyBjYXVzZSBNYWluUmVzb3VyY2VMb2FkZXJzIGxlYWtzIHdoaWNoIHdpbGwg
cHJldmVudCBsYXRlciBzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLgorVGhpcyB0ZXN0
IHNob3VsZCBwcm9kdWNlICJTVUNDRVNTIiBhbmQgc2hvdWxkIG5vdCB0aW1lb3V0LgorU1VDQ0VT
UworIApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxv
YWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9taXNjL1NWR0ltYWdlLWxl
YWstUmVzb3VyY2VMb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9t
aXNjL1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NCBAQAorPGh0bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBjaGVja3MgaWYgU1ZHSU1hZ2Vz
IGNhdXNlIE1haW5SZXNvdXJjZUxvYWRlcnMgbGVha3Mgd2hpY2ggd2lsbCBwcmV2ZW50IGxhdGVy
CitzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLjxicj4KK1RoaXMgdGVzdCBzaG91bGQg
cHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91dC4KKworPGRpdiBpZD0icmVz
dWx0Ij5GQUlMPC9kaXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgIHZhciB0b3RhbEZyYW1lcyA9IDEwOwor
ICB2YXIgbnVtRnJhbWVzTG9hZGVkID0gMDsKKworICBmb3IgKHZhciBpID0gMDsgaSA8IHRvdGFs
RnJhbWVzOyBpKyspIHsKKyAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aWZyYW1lJyk7CisgICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgbnVtRnJh
bWVzTG9hZGVkKys7CisgICAgICBpZiAobnVtRnJhbWVzTG9hZGVkID09IHRvdGFsRnJhbWVzKSB7
CisgICAgICAgIC8vIEJlZm9yZSBidWcgNTUwMTcgaXMgcmVzb2x2ZWQsIHRoZSBhYm92ZSBTVkdJ
bWFnZXMgd2lsbCBsZWFrIHRoZWlyIE1haW5SZXNvdXJjZUxvYWRlcnMsCisgICAgICAgIC8vIHBy
ZXZlbnRpbmcgdGhlIGZvbGxvd2luZyBzY3JpcHQgZnJvbSBiZWluZyBsb2FkZWQsIGNhdXNpbmcg
dGhlIHRlc3QgdG8gdGltZW91dC4KKyAgICAgICAgdmFyIHNjcmlwdEZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAgIHNjcmlwdEZyYW1lLm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5p
bm5lclRleHQgPSAiU1VDQ0VTUyI7CisgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAgIHNjcmlwdEZyYW1lLnNyYyA9ICJyZXNvdXJj
ZXMvbG9hZC1zY3JpcHQuaHRtbCIKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChz
Y3JpcHRGcmFtZSk7CisgICAgICB9CisgICAgfQorCisgICAgLy8gTGV0IHRoZSBpZnJhbWUgbG9h
ZCBhbiBTVkcgZG9jdW1lbnQgbGlrZSAoP24gaXMgdG8gbWFrZSB0aGUgaW1hZ2UgVVJMcyBkaWZm
ZXJlbnQpOgorICAgIC8vIDxzdmcgLi4uPjxpbWFnZSB4bGluazpocmVmPSJyZXNvdXJjZXMvc21h
bGwucG5nP24iLz48L3N2Zz4KKyAgICBpZnJhbWUuc3JjID0gImRhdGE6aW1hZ2Uvc3ZnK3htbDtj
aGFyc2V0PXV0Zi04LDxzdmcgeG1sbnM9JTIyaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjIg
eG1sbnM6eGxpbms9JTIyaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayUyMj48aW1hZ2UgeGxp
bms6aHJlZj0lMjJyZXNvdXJjZXMvc21hbGwucG5nJTNmIiArIGkgKyAiJTIyLz48L3N2Zz4iOwor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgfQorfSBlbHNlIHsKKyAg
ZG9jdW1lbnQud3JpdGUoIjxicj48Yj5UaGlzIHRlc3Qgb25seSB3b3JrcyBhcyBhIGxheW91dCB0
ZXN0PC9iPjxicj4iKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL2JsYW5rLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9taXNjL3Jlc291cmNlcy9ibGFuay5qcwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3N2Zy9taXNjL3Jlc291cmNlcy9ibGFuay5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSBAQAorLyogYmxhbmsuanMgKi8KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9taXNjL3Jlc291cmNl
cy9sb2FkLXNjcmlwdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9taXNjL3Jl
c291cmNlcy9sb2FkLXNjcmlwdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L21pc2MvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NiBAQAorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJibGFuay5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9taXNjL3Jlc291cmNlcy9z
bWFsbC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5h
cnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL3NtYWxsLnBuZwpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFRQUFBQUVDQVlBQUFDcDhaNStBQUFBRVVs
RVFWUUlXMlA4RHdRTVNJQ1JkQUVBZm93UAo5Y2tKRi9jQUFBQUFTVVZPUks1Q1lJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83472</attachid>
            <date>2011-02-23 04:54:30 -0800</date>
            <delta_ts>2011-02-23 19:28:15 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>patch55017a</filename>
            <type>text/plain</type>
            <size>5989</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDI4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjMgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwbGljaXRseSBjYW5jZWwgdGhlIGxvYWRlciBmb3Ig
ZmFrZSByZXF1ZXN0IGluIFNWR0ltYWdlIHRvIHByZXZlbnQKKyAgICAgICAgY2F1c2luZyBSZXNv
dXJjZUxvYWRlciBsZWFrcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAgICAgICBUZXN0OiBzdmcvbWlzYy9TVkdJbWFnZS1sZWFr
LVJlc291cmNlTG9hZGVyLmh0bWwKKworICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorCiAyMDExLTAy
LTIzICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHAJKHJldmlzaW9uIDc5MzI3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc5LDYgKzI3OSwxMSBAQCBib29sIFNW
R0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSCiAgICAgICAgIGxvYWRlci0+bG9hZChm
YWtlUmVxdWVzdCwgZmFsc2UpOyAvLyBNYWtlIHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNy
ZWF0ZWQKICAgICAgICAgbG9hZGVyLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7IC8v
IGNhbmNlbCBhbnkgcG9saWN5IGNoZWNrcwogICAgICAgICBsb2FkZXItPmNvbW1pdFByb3Zpc2lv
bmFsTG9hZCgpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgTWFpblJlc291cmNlTG9hZGVy
IGZvciB0aGUgZmFrZSByZXF1ZXN0IGZpbmlzaGVzIGxvYWRpbmcsCisgICAgICAgIC8vIG90aGVy
d2lzZSBpdCdsbCBiZSBpbiBsb2FkaW5nIHN0YXRlIGZvcmV2ZXIgYW5kIGxlYWtzLgorICAgICAg
ICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQo
UmVzb3VyY2VFcnJvcigpKTsKKwogICAgICAgICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPndyaXRlcigpLT5zZXRNSU1FVHlwZSgiaW1hZ2Uvc3ZnK3htbCIpOwogICAgICAgICBsb2Fk
ZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpLT5iZWdpbihLVVJMKCkpOyAvLyBj
cmVhdGUgdGhlIGVtcHR5IGRvY3VtZW50CiAgICAgICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+d3JpdGVyKCktPmFkZERhdGEoZGF0YSgpLT5kYXRhKCksIGRhdGEoKS0+c2l6ZSgp
KTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDI4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjMgIFhpYW56aHUgV2FuZyAg
PHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byBlbnN1cmUgU1ZHSW1hZ2Ugd29uJ3QgY2F1
c2UgUmVzb3VyY2VMb2FkZXIgbGVha3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NTAxNworCisgICAgICAgICogc3ZnL21pc2M6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9taXNjL1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9taXNjL3Jlc291cmNlczogQWRkZWQuCisgICAg
ICAgICogc3ZnL21pc2MvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9taXNjL3Jlc291cmNlcy9zbWFsbC5wbmc6IEFkZGVkLgorCiAyMDExLTAyLTIzICBE
b21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUnVzc2VsbC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9taXNjL1NWR0ltYWdl
LWxlYWstUmVzb3VyY2VMb2FkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9taXNjL1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJj
ZUxvYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0
ZXN0IGNoZWNrcyBpZiBTVkdJTWFnZXMgY2F1c2UgTWFpblJlc291cmNlTG9hZGVycyBsZWFrcyB3
aGljaCB3aWxsIHByZXZlbnQgbGF0ZXIgc3ViLXJlc291cmNlcyBmcm9tIGJlaW5nIGxvYWRlZC4K
K1RoaXMgdGVzdCBzaG91bGQgcHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91
dC4KK1NVQ0NFU1MKKyAKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9taXNjL1NWR0ltYWdlLWxlYWst
UmVzb3VyY2VMb2FkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvbWlzYy9T
VkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVyLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPgorPGJvZHk+CitUaGlzIHRlc3QgY2hlY2tzIGlm
IFNWR0lNYWdlcyBjYXVzZSBNYWluUmVzb3VyY2VMb2FkZXJzIGxlYWtzIHdoaWNoIHdpbGwgcHJl
dmVudCBsYXRlcgorc3ViLXJlc291cmNlcyBmcm9tIGJlaW5nIGxvYWRlZC48YnI+CitUaGlzIHRl
c3Qgc2hvdWxkIHByb2R1Y2UgIlNVQ0NFU1MiIGFuZCBzaG91bGQgbm90IHRpbWVvdXQuCisKKzxk
aXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAvLyBSZXNvdXJjZUxv
YWRTY2hlZHVsZXIgbGltaXRzIG1heGltdW0gMjAgbG9hZGluZyBsb2FkZXJzIGF0IHBhcnNpbmcg
c3RhZ2UgZm9yIGVhY2ggaG9zdC4KKyAgdmFyIHRvdGFsRnJhbWVzID0gMjA7CisgIHZhciBudW1G
cmFtZXNMb2FkZWQgPSAwOworCisgIGZvciAodmFyIGkgPSAwOyBpIDwgdG90YWxGcmFtZXM7IGkr
KykgeworICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsK
KyAgICBpZnJhbWUub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICBudW1GcmFtZXNMb2FkZWQr
KzsKKyAgICAgIGlmIChudW1GcmFtZXNMb2FkZWQgPT0gdG90YWxGcmFtZXMpIHsKKyAgICAgICAg
Ly8gQmVmb3JlIGJ1ZyA1NTAxNyBpcyByZXNvbHZlZCwgdGhlIGFib3ZlIFNWR0ltYWdlcyB3aWxs
IGxlYWsgdGhlaXIgTWFpblJlc291cmNlTG9hZGVycywKKyAgICAgICAgLy8gcHJldmVudGluZyB0
aGUgZm9sbG93aW5nIHNjcmlwdCBmcm9tIGJlaW5nIGxvYWRlZCwgY2F1c2luZyB0aGUgdGVzdCB0
byB0aW1lb3V0LgorICAgICAgICB2YXIgc2NyaXB0RnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpZnJhbWUnKTsKKyAgICAgICAgc2NyaXB0RnJhbWUub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9
ICJTVUNDRVNTIjsKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0KKyAgICAgICAgLy8gSSB0cmllZCBkYXRhIFVSTCwgYnV0IGl0IGRpZG4ndCB0
cmlnZ2VyIHRoZSBpc3N1ZS4KKyAgICAgICAgc2NyaXB0RnJhbWUuc3JjID0gInJlc291cmNlcy9s
b2FkLXNjcmlwdC5odG1sIjsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3Jp
cHRGcmFtZSk7CisgICAgICB9CisgICAgfQorCisgICAgLy8gTGV0IHRoZSBpZnJhbWUgbG9hZCBh
biBTVkcgZG9jdW1lbnQgbGlrZSAoP24gaXMgdG8gbWFrZSB0aGUgaW1hZ2UgVVJMcyBkaWZmZXJl
bnQpOgorICAgIC8vIDxzdmcgLi4uPjxpbWFnZSB4bGluazpocmVmPSJyZXNvdXJjZXMvc21hbGwu
cG5nP24iLz48L3N2Zz4KKyAgICBpZnJhbWUuc3JjID0gImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3Zn
IHhtbG5zPSUyMmh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJTIyIHhtbG5zOnhsaW5rPSUyMmh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmslMjI+PGltYWdlIHhsaW5rOmhyZWY9JTIycmVzb3Vy
Y2VzL3NtYWxsLnBuZyUzZiIgKyBpICsgIiUyMi8+PC9zdmc+IjsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgIH0KK30gZWxzZSB7CisgIGRvY3VtZW50LndyaXRlKCI8
YnI+PGI+VGhpcyB0ZXN0IG9ubHkgd29ya3MgYXMgYSBsYXlvdXQgdGVzdDwvYj48YnI+Iik7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9taXNj
L3Jlc291cmNlcy9sb2FkLXNjcmlwdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9taXNjL3Jlc291cmNlcy9sb2FkLXNjcmlwdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJYWFhYWC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9taXNjL3Jl
c291cmNlcy9zbWFsbC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQg
YXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVh
bQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL3Nt
YWxsLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFRQUFBQUVDQVlBQUFDcDha
NStBQUFBRVVsRVFWUUlXMlA4RHdRTVNJQ1JkQUVBZm93UAo5Y2tKRi9jQUFBQUFTVVZPUks1Q1lJ
ST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83597</attachid>
            <date>2011-02-23 19:28:15 -0800</date>
            <delta_ts>2011-02-24 20:36:05 -0800</delta_ts>
            <desc>patch using loader-&gt;init() instead of loader-&gt;load(fakeRequest)</desc>
            <filename>patch55017b</filename>
            <type>text/plain</type>
            <size>6150</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDI4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjMgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGxvYWRlci0+aW5pdCgpIGluc3RlYWQgb2YgbG9h
ZGVyLT5sb2FkKCkgdG8gYXZvaWQgY29tcGxleCBmYWtlCisgICAgICAgIHJlcXVlc3QgbG9hZGlu
ZyBhbmQgY2xlYW51cCBsb2dpYywgYW5kIGFsc28gYXZvaWQgUmVzb3VyY2VMb2FkZXIgbGVha3Mu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDE3
CisKKyAgICAgICAgVGVzdDogc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci5o
dG1sCisKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMS0wMi0yMyAgRnVtaXRvc2hpIFVr
YWkgIDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCShyZXZpc2lv
biA3OTMyNykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3MywxMiArMjczLDkgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5n
ZWQoYm9vbCBhbGxEYXRhUgogICAgICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNy
ZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIGR1bW15RnJhbWVMb2FkZXJDbGllbnQpOwogICAgICAgICBm
cmFtZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShmcmFtZS5nZXQoKSkpOwogICAgICAgICBm
cmFtZS0+aW5pdCgpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgZmFrZVJlcXVlc3QoS1VSTChQ
YXJzZWRVUkxTdHJpbmcsICIiKSk7CiAgICAgICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFt
ZS0+bG9hZGVyKCk7CiAgICAgICAgIGxvYWRlci0+c2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNhbmRi
b3hBbGwpOwotICAgICAgICBsb2FkZXItPmxvYWQoZmFrZVJlcXVlc3QsIGZhbHNlKTsgLy8gTWFr
ZSBzdXJlIHRoZSBEb2N1bWVudExvYWRlciBpcyBjcmVhdGVkCi0gICAgICAgIGxvYWRlci0+cG9s
aWN5Q2hlY2tlcigpLT5jYW5jZWxDaGVjaygpOyAvLyBjYW5jZWwgYW55IHBvbGljeSBjaGVja3MK
LSAgICAgICAgbG9hZGVyLT5jb21taXRQcm92aXNpb25hbExvYWQoKTsKKyAgICAgICAgbG9hZGVy
LT5pbml0KCk7CiAgICAgICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVy
KCktPnNldE1JTUVUeXBlKCJpbWFnZS9zdmcreG1sIik7CiAgICAgICAgIGxvYWRlci0+YWN0aXZl
RG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPmJlZ2luKEtVUkwoKSk7IC8vIGNyZWF0ZSB0aGUg
ZW1wdHkgZG9jdW1lbnQKICAgICAgICAgbG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53
cml0ZXIoKS0+YWRkRGF0YShkYXRhKCktPmRhdGEoKSwgZGF0YSgpLT5zaXplKCkpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNzk0MjgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMi0yMyAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56
aHVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSBTVkdJbWFnZSB3b24ndCBjYXVzZSBSZXNvdXJj
ZUxvYWRlciBsZWFrcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1MDE3CisKKyAgICAgICAgKiBzdmcvbWlzYzogQWRkZWQuCisgICAgICAgICogc3Zn
L21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9taXNjL1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogc3ZnL21pc2MvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
bWlzYy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL21p
c2MvcmVzb3VyY2VzL3NtYWxsLnBuZzogQWRkZWQuCisKIDIwMTEtMDItMjMgIERvbWluaWMgTWF6
em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSdXNzZWxsLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNv
dXJjZUxvYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL21p
c2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9zdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgY2hlY2tz
IGlmIFNWR0lNYWdlcyBjYXVzZSBNYWluUmVzb3VyY2VMb2FkZXJzIGxlYWtzIHdoaWNoIHdpbGwg
cHJldmVudCBsYXRlciBzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLgorVGhpcyB0ZXN0
IHNob3VsZCBwcm9kdWNlICJTVUNDRVNTIiBhbmQgc2hvdWxkIG5vdCB0aW1lb3V0LgorU1VDQ0VT
UworIApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxv
YWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9taXNjL1NWR0ltYWdlLWxl
YWstUmVzb3VyY2VMb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9t
aXNjL1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NiBAQAorPGh0bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBjaGVja3MgaWYgU1ZHSU1hZ2Vz
IGNhdXNlIE1haW5SZXNvdXJjZUxvYWRlcnMgbGVha3Mgd2hpY2ggd2lsbCBwcmV2ZW50IGxhdGVy
CitzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLjxicj4KK1RoaXMgdGVzdCBzaG91bGQg
cHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91dC4KKworPGRpdiBpZD0icmVz
dWx0Ij5GQUlMPC9kaXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgIC8vIFJlc291cmNlTG9hZFNjaGVkdWxl
ciBsaW1pdHMgbWF4aW11bSAyMCBsb2FkaW5nIGxvYWRlcnMgYXQgcGFyc2luZyBzdGFnZSBmb3Ig
ZWFjaCBob3N0LgorICB2YXIgdG90YWxGcmFtZXMgPSAyMDsKKyAgdmFyIG51bUZyYW1lc0xvYWRl
ZCA9IDA7CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3RhbEZyYW1lczsgaSsrKSB7CisgICAg
dmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIGlmcmFt
ZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIG51bUZyYW1lc0xvYWRlZCsrOworICAgICAg
aWYgKG51bUZyYW1lc0xvYWRlZCA9PSB0b3RhbEZyYW1lcykgeworICAgICAgICAvLyBCZWZvcmUg
YnVnIDU1MDE3IGlzIHJlc29sdmVkLCB0aGUgYWJvdmUgU1ZHSW1hZ2VzIHdpbGwgbGVhayB0aGVp
ciBNYWluUmVzb3VyY2VMb2FkZXJzLAorICAgICAgICAvLyBwcmV2ZW50aW5nIHRoZSBmb2xsb3dp
bmcgc2NyaXB0IGZyb20gYmVpbmcgbG9hZGVkLCBjYXVzaW5nIHRoZSB0ZXN0IHRvIHRpbWVvdXQu
CisgICAgICAgIHZhciBzY3JpcHRGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFt
ZScpOworICAgICAgICBzY3JpcHRGcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gIlNVQ0NFU1Mi
OworICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fQorICAgICAgICAvLyBJIHRyaWVkIGRhdGEgVVJMLCBidXQgaXQgZGlkbid0IHRyaWdnZXIgdGhl
IGlzc3VlLgorICAgICAgICBzY3JpcHRGcmFtZS5zcmMgPSAicmVzb3VyY2VzL2xvYWQtc2NyaXB0
Lmh0bWwiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdEZyYW1lKTsK
KyAgICAgIH0KKyAgICB9CisKKyAgICAvLyBMZXQgdGhlIGlmcmFtZSBsb2FkIGFuIFNWRyBkb2N1
bWVudCBsaWtlICg/biBpcyB0byBtYWtlIHRoZSBpbWFnZSBVUkxzIGRpZmZlcmVudCk6CisgICAg
Ly8gPHN2ZyAuLi4+PGltYWdlIHhsaW5rOmhyZWY9InJlc291cmNlcy9zbWFsbC5wbmc/biIvPjwv
c3ZnPgorICAgIGlmcmFtZS5zcmMgPSAiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9JTIy
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjIgeG1sbnM6eGxpbms9JTIyaHR0cDovL3d3dy53
My5vcmcvMTk5OS94bGluayUyMj48aW1hZ2UgeGxpbms6aHJlZj0lMjJyZXNvdXJjZXMvc21hbGwu
cG5nJTNmIiArIGkgKyAiJTIyLz48L3N2Zz4iOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lKTsKKyAgfQorfSBlbHNlIHsKKyAgZG9jdW1lbnQud3JpdGUoIjxicj48Yj5UaGlz
IHRlc3Qgb25seSB3b3JrcyBhcyBhIGxheW91dCB0ZXN0PC9iPjxicj4iKTsKK30KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2Vz
L2xvYWQtc2NyaXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVz
b3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
bWlzYy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
IEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9IlhYWFhYLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL3Nt
YWxsLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvbWlzYy9yZXNvdXJjZXMvc21hbGwucG5nCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQVFBQUFBRUNBWUFBQUNwOFo1K0FBQUFFVWxF
UVZRSVcyUDhEd1FNU0lDUmRBRUFmb3dQCjlja0pGL2NBQUFBQVNVVk9SSzVDWUlJPQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83766</attachid>
            <date>2011-02-24 20:36:05 -0800</date>
            <delta_ts>2011-03-02 18:53:50 -0800</delta_ts>
            <desc>Update patch to fix assertion failures</desc>
            <filename>patch55017c</filename>
            <type>text/plain</type>
            <size>6261</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NjU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjQgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGxvYWRlci0+aW5pdCgpIGluc3RlYWQgb2YgbG9h
ZGVyLT5sb2FkKCkgdG8gYXZvaWQgY29tcGxleCBmYWtlCisgICAgICAgIHJlcXVlc3QgbG9hZGlu
ZyBhbmQgY2xlYW51cCBsb2dpYywgYW5kIGFsc28gYXZvaWQgUmVzb3VyY2VMb2FkZXIgbGVha3Mu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDE3
CisKKyAgICAgICAgVGVzdDogc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci5o
dG1sCisKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMS0wMi0yNCAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAkocmV2aXNpb24g
Nzk2NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzMsMTIgKzI3MywxMCBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hhbmdl
ZChib29sIGFsbERhdGFSCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3Jl
YXRlKG1fcGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVudCk7CiAgICAgICAgIGZy
YW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgpKSk7CiAgICAgICAgIGZy
YW1lLT5pbml0KCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBmYWtlUmVxdWVzdChLVVJMKFBh
cnNlZFVSTFN0cmluZywgIiIpKTsKICAgICAgICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZyYW1l
LT5sb2FkZXIoKTsKICAgICAgICAgbG9hZGVyLT5zZXRGb3JjZWRTYW5kYm94RmxhZ3MoU2FuZGJv
eEFsbCk7Ci0gICAgICAgIGxvYWRlci0+bG9hZChmYWtlUmVxdWVzdCwgZmFsc2UpOyAvLyBNYWtl
IHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNyZWF0ZWQKLSAgICAgICAgbG9hZGVyLT5wb2xp
Y3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7IC8vIGNhbmNlbCBhbnkgcG9saWN5IGNoZWNrcwot
ICAgICAgICBsb2FkZXItPmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOworICAgICAgICBpZiAoIWxv
YWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSkKKyAgICAgICAgICAgIGxvYWRlci0+aW5pdCgp
OyAvLyBNYWtlIHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNyZWF0ZWQKICAgICAgICAgbG9h
ZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0ZXIoKS0+c2V0TUlNRVR5cGUoImltYWdl
L3N2Zyt4bWwiKTsKICAgICAgICAgbG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0
ZXIoKS0+YmVnaW4oS1VSTCgpKTsgLy8gY3JlYXRlIHRoZSBlbXB0eSBkb2N1bWVudAogICAgICAg
ICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpLT5hZGREYXRhKGRhdGEo
KS0+ZGF0YSgpLCBkYXRhKCktPnNpemUoKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3OTY0OCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisy
MDExLTAyLTI0ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8g
ZW5zdXJlIFNWR0ltYWdlIHdvbid0IGNhdXNlIFJlc291cmNlTG9hZGVyIGxlYWtzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAgICAg
ICAqIHN2Zy9taXNjOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJl
c291cmNlTG9hZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL21pc2MvU1ZH
SW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvbWlz
Yy9yZXNvdXJjZXM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9taXNjL3Jlc291cmNlcy9sb2FkLXNj
cmlwdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvbWlzYy9yZXNvdXJjZXMvc21hbGwucG5n
OiBBZGRlZC4KKwogMjAxMS0wMi0yNCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVwZGF0ZSBjaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyBhbmQgYmFz
ZWxpbmVzLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJj
ZUxvYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL21pc2Mv
U1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvbWlzYy9TVkdJbWFnZS1sZWFrLVJlc291cmNlTG9hZGVyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgY2hlY2tzIGlm
IFNWR0lNYWdlcyBjYXVzZSBNYWluUmVzb3VyY2VMb2FkZXJzIGxlYWtzIHdoaWNoIHdpbGwgcHJl
dmVudCBsYXRlciBzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLgorVGhpcyB0ZXN0IHNo
b3VsZCBwcm9kdWNlICJTVUNDRVNTIiBhbmQgc2hvdWxkIG5vdCB0aW1lb3V0LgorU1VDQ0VTUwor
IApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvU1ZHSW1hZ2UtbGVhay1SZXNvdXJjZUxvYWRl
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9taXNjL1NWR0ltYWdlLWxlYWst
UmVzb3VyY2VMb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9taXNj
L1NWR0ltYWdlLWxlYWstUmVzb3VyY2VMb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0NiBAQAorPGh0bWw+Cis8Ym9keT4KK1RoaXMgdGVzdCBjaGVja3MgaWYgU1ZHSU1hZ2VzIGNh
dXNlIE1haW5SZXNvdXJjZUxvYWRlcnMgbGVha3Mgd2hpY2ggd2lsbCBwcmV2ZW50IGxhdGVyCitz
dWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLjxicj4KK1RoaXMgdGVzdCBzaG91bGQgcHJv
ZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91dC4KKworPGRpdiBpZD0icmVzdWx0
Ij5GQUlMPC9kaXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgIC8vIFJlc291cmNlTG9hZFNjaGVkdWxlciBs
aW1pdHMgbWF4aW11bSAyMCBsb2FkaW5nIGxvYWRlcnMgYXQgcGFyc2luZyBzdGFnZSBmb3IgZWFj
aCBob3N0LgorICB2YXIgdG90YWxGcmFtZXMgPSAyMDsKKyAgdmFyIG51bUZyYW1lc0xvYWRlZCA9
IDA7CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3RhbEZyYW1lczsgaSsrKSB7CisgICAgdmFy
IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIGlmcmFtZS5v
bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIG51bUZyYW1lc0xvYWRlZCsrOworICAgICAgaWYg
KG51bUZyYW1lc0xvYWRlZCA9PSB0b3RhbEZyYW1lcykgeworICAgICAgICAvLyBCZWZvcmUgYnVn
IDU1MDE3IGlzIHJlc29sdmVkLCB0aGUgYWJvdmUgU1ZHSW1hZ2VzIHdpbGwgbGVhayB0aGVpciBN
YWluUmVzb3VyY2VMb2FkZXJzLAorICAgICAgICAvLyBwcmV2ZW50aW5nIHRoZSBmb2xsb3dpbmcg
c2NyaXB0IGZyb20gYmVpbmcgbG9hZGVkLCBjYXVzaW5nIHRoZSB0ZXN0IHRvIHRpbWVvdXQuCisg
ICAgICAgIHZhciBzY3JpcHRGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScp
OworICAgICAgICBzY3JpcHRGcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gIlNVQ0NFU1MiOwor
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQor
ICAgICAgICAvLyBJIHRyaWVkIGRhdGEgVVJMLCBidXQgaXQgZGlkbid0IHRyaWdnZXIgdGhlIGlz
c3VlLgorICAgICAgICBzY3JpcHRGcmFtZS5zcmMgPSAicmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0
bWwiOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdEZyYW1lKTsKKyAg
ICAgIH0KKyAgICB9CisKKyAgICAvLyBMZXQgdGhlIGlmcmFtZSBsb2FkIGFuIFNWRyBkb2N1bWVu
dCBsaWtlICg/biBpcyB0byBtYWtlIHRoZSBpbWFnZSBVUkxzIGRpZmZlcmVudCk6CisgICAgLy8g
PHN2ZyAuLi4+PGltYWdlIHhsaW5rOmhyZWY9InJlc291cmNlcy9zbWFsbC5wbmc/biIvPjwvc3Zn
PgorICAgIGlmcmFtZS5zcmMgPSAiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9JTIyaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjIgeG1sbnM6eGxpbms9JTIyaHR0cDovL3d3dy53My5v
cmcvMTk5OS94bGluayUyMj48aW1hZ2UgeGxpbms6aHJlZj0lMjJyZXNvdXJjZXMvc21hbGwucG5n
JTNmIiArIGkgKyAiJTIyLz48L3N2Zz4iOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKKyAgfQorfSBlbHNlIHsKKyAgZG9jdW1lbnQud3JpdGUoIjxicj48Yj5UaGlzIHRl
c3Qgb25seSB3b3JrcyBhcyBhIGxheW91dCB0ZXN0PC9iPjxicj4iKTsKK30KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL2xv
YWQtc2NyaXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3Vy
Y2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvbWlz
Yy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBA
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9IlhYWFhYLmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL21pc2MvcmVzb3VyY2VzL3NtYWxs
LnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0
eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvbWlzYy9yZXNvdXJjZXMvc21hbGwucG5nCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
CgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQVFBQUFBRUNBWUFBQUNwOFo1K0FBQUFFVWxFUVZR
SVcyUDhEd1FNU0lDUmRBRUFmb3dQCjlja0pGL2NBQUFBQVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="75639"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84507</attachid>
            <date>2011-03-02 18:53:50 -0800</date>
            <delta_ts>2011-03-02 19:02:32 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>patch55017n</filename>
            <type>text/plain</type>
            <size>5676</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDEgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGZha2UgcmVxdWVzdCBsb2FkaW5nIG9mIFNW
R0ltYWdlIHRvIGF2b2lkIE1haW5SZXNvdXJjZUxvYWRlcgorICAgICAgICBsZWFrLiBUaGUgZnJh
bWUtPmluaXQoKSBhbHJlYWR5IGVuc3VyZXMgaW5pdGlhbGl6YXRpb24gb2YgdGhlCisgICAgICAg
IGRvY3VtZW50IGxvYWRlci4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9zdmctaW1hZ2Ut
bGVhay1sb2FkZXIuaHRtbAorCisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdlZCk6CisKIDIwMTEtMDItMjYg
IEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5jcHAJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjczLDEyICsyNzMsOCBAQCBib29sIFNWR0lt
YWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVu
dCk7CiAgICAgICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgp
KSk7CiAgICAgICAgIGZyYW1lLT5pbml0KCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBmYWtl
UmVxdWVzdChLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpKTsKICAgICAgICAgRnJhbWVMb2FkZXIq
IGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKLSAgICAgICAgbG9hZGVyLT5zZXRGb3JjZWRTYW5k
Ym94RmxhZ3MoU2FuZGJveEFsbCk7Ci0gICAgICAgIGxvYWRlci0+bG9hZChmYWtlUmVxdWVzdCwg
ZmFsc2UpOyAvLyBNYWtlIHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNyZWF0ZWQKLSAgICAg
ICAgbG9hZGVyLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7IC8vIGNhbmNlbCBhbnkg
cG9saWN5IGNoZWNrcwotICAgICAgICBsb2FkZXItPmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOwor
ICAgICAgICBBU1NFUlQobG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKTsgIC8vIERvY3Vt
ZW50TG9hZGVyIHNob3VsZCBoYXZlIGJlZW4gY3JlYXRlZCBieSBmcmFtZS0+aW5pdCgpLgogICAg
ICAgICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpLT5zZXRNSU1FVHlw
ZSgiaW1hZ2Uvc3ZnK3htbCIpOwogICAgICAgICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPndyaXRlcigpLT5iZWdpbihLVVJMKCkpOyAvLyBjcmVhdGUgdGhlIGVtcHR5IGRvY3VtZW50
CiAgICAgICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPmFkZERh
dGEoZGF0YSgpLT5kYXRhKCksIGRhdGEoKS0+c2l6ZSgpKTsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5
ODE0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTEtMDMtMDEgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
dGVzdCB0byBlbnN1cmUgU1ZHSW1hZ2Ugd29uJ3QgY2F1c2UgUmVzb3VyY2VMb2FkZXIgbGVha3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTAxNwor
CisgICAgICAgICogZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNlcy9sb2FkLXNjcmlwdC5o
dG1sOiBBZGRlZC4KKwogMjAxMS0wMi0yNiAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1s
b2FkZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVz
dCBjaGVja3MgaWYgU1ZHSU1hZ2VzIGNhdXNlIE1haW5SZXNvdXJjZUxvYWRlcnMgbGVha3Mgd2hp
Y2ggd2lsbCBwcmV2ZW50IGxhdGVyIHN1Yi1yZXNvdXJjZXMgZnJvbSBiZWluZyBsb2FkZWQuCitU
aGlzIHRlc3Qgc2hvdWxkIHByb2R1Y2UgIlNVQ0NFU1MiIGFuZCBzaG91bGQgbm90IHRpbWVvdXQu
CitTVUNDRVNTCisgICAgICAgICAgICAgICAgICAgICAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KworZnVuY3Rpb24gbG9hZGVkKCkgeworICAvLyBTdGFydCBhIG5ldyByZXNvdXJjZSBsb2FkIGlu
IHRoZSBpZnJhbWUuCisgIC8vIEJlZm9yZSBidWcgNTUwMTcgaXMgcmVzb2x2ZWQsIHRoZSBuZXcg
cmVzb3VyY2UgbG9hZCB3aWxsIGJlIGJsb2NrZWQKKyAgLy8gYmVjYXVzZSBvZiB0aGUgMjAgbGVh
a2VkIGxvYWRlcnMgY2F1c2VkIGJ5IHRoZSBzdmcgaW1hZ2VzLgorICB2YXIgaWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgIGlmcmFtZS5zcmMgPSAncmVzb3VyY2Vz
L2xvYWQtc2NyaXB0Lmh0bWwnOworICBpZnJhbWUub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVyVGV4dCA9ICdTVUNDRVNTJzsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9OworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGlmcmFtZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJsb2FkZWQo
KSI+CitUaGlzIHRlc3QgY2hlY2tzIGlmIFNWR0lNYWdlcyBjYXVzZSBNYWluUmVzb3VyY2VMb2Fk
ZXJzIGxlYWtzIHdoaWNoIHdpbGwgcHJldmVudCBsYXRlcgorc3ViLXJlc291cmNlcyBmcm9tIGJl
aW5nIGxvYWRlZC48YnI+CitUaGlzIHRlc3Qgc2hvdWxkIHByb2R1Y2UgIlNVQ0NFU1MiIGFuZCBz
aG91bGQgbm90IHRpbWVvdXQuCisKKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2PgorCis8IS0t
CisgUmVzb3VyY2VMb2FkU2NoZWR1bGVyIGxpbWl0cyBtYXhpbXVtIDIwIGxvYWRpbmcgbG9hZGVy
cyBhdCBwYXJzaW5nIHN0YWdlIGZvciBlYWNoIGhvc3QuCisgQmVmb3JlIGJ1ZyA1NTAxNyBpcyBy
ZXNvbHZlZCwgdGhlIGZvbGxvd2luZyBzdmcgaW1hZ2VzIHdpbGwgbGVhayB0aGVpciBNYWluUmVz
b3VyY2VMb2FkZXJzLgorLS0+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MSc+Cis8
aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/Mic+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2Np
cmNsZS5zdmc/Myc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/NCc+Cis8aW1nIHNy
Yz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/NSc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5z
dmc/Nic+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/Nyc+Cis8aW1nIHNyYz0ncmVz
b3VyY2VzL2NpcmNsZS5zdmc/OCc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/OSc+
Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTAnPgorPGltZyBzcmM9J3Jlc291cmNl
cy9jaXJjbGUuc3ZnPzExJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xMic+Cis8
aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTMnPgorPGltZyBzcmM9J3Jlc291cmNlcy9j
aXJjbGUuc3ZnPzE0Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xNSc+Cis8aW1n
IHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTYnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJj
bGUuc3ZnPzE3Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xOCc+Cis8aW1nIHNy
Yz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTknPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUu
c3ZnPzIwJz4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3Jlc291cmNlcy9sb2FkLXNjcmlwdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL3Jlc291cmNlcy9sb2FkLXNjcmlwdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJYWFhYWC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84509</attachid>
            <date>2011-03-02 19:02:32 -0800</date>
            <delta_ts>2011-03-03 01:31:44 -0800</delta_ts>
            <desc>Fix style</desc>
            <filename>patch55017n1</filename>
            <type>text/plain</type>
            <size>5675</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDEgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGZha2UgcmVxdWVzdCBsb2FkaW5nIG9mIFNW
R0ltYWdlIHRvIGF2b2lkIE1haW5SZXNvdXJjZUxvYWRlcgorICAgICAgICBsZWFrLiBUaGUgZnJh
bWUtPmluaXQoKSBhbHJlYWR5IGVuc3VyZXMgaW5pdGlhbGl6YXRpb24gb2YgdGhlCisgICAgICAg
IGRvY3VtZW50IGxvYWRlci4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9zdmctaW1hZ2Ut
bGVhay1sb2FkZXIuaHRtbAorCisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdlZCk6CisKIDIwMTEtMDItMjYg
IEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5jcHAJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjczLDEyICsyNzMsOCBAQCBib29sIFNWR0lt
YWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVu
dCk7CiAgICAgICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgp
KSk7CiAgICAgICAgIGZyYW1lLT5pbml0KCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBmYWtl
UmVxdWVzdChLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpKTsKICAgICAgICAgRnJhbWVMb2FkZXIq
IGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKLSAgICAgICAgbG9hZGVyLT5zZXRGb3JjZWRTYW5k
Ym94RmxhZ3MoU2FuZGJveEFsbCk7Ci0gICAgICAgIGxvYWRlci0+bG9hZChmYWtlUmVxdWVzdCwg
ZmFsc2UpOyAvLyBNYWtlIHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNyZWF0ZWQKLSAgICAg
ICAgbG9hZGVyLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7IC8vIGNhbmNlbCBhbnkg
cG9saWN5IGNoZWNrcwotICAgICAgICBsb2FkZXItPmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOwor
ICAgICAgICBBU1NFUlQobG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKTsgLy8gRG9jdW1l
bnRMb2FkZXIgc2hvdWxkIGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGZyYW1lLT5pbml0KCkuCiAgICAg
ICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPnNldE1JTUVUeXBl
KCJpbWFnZS9zdmcreG1sIik7CiAgICAgICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIo
KS0+d3JpdGVyKCktPmJlZ2luKEtVUkwoKSk7IC8vIGNyZWF0ZSB0aGUgZW1wdHkgZG9jdW1lbnQK
ICAgICAgICAgbG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0ZXIoKS0+YWRkRGF0
YShkYXRhKCktPmRhdGEoKSwgZGF0YSgpLT5zaXplKCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzk4
MTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wMy0wMSAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0
ZXN0IHRvIGVuc3VyZSBTVkdJbWFnZSB3b24ndCBjYXVzZSBSZXNvdXJjZUxvYWRlciBsZWFrcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDE3CisK
KyAgICAgICAgKiBmYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0
bWw6IEFkZGVkLgorCiAyMDExLTAyLTI2ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxv
YWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IGNoZWNrcyBpZiBTVkdJTWFnZXMgY2F1c2UgTWFpblJlc291cmNlTG9hZGVycyBsZWFrcyB3aGlj
aCB3aWxsIHByZXZlbnQgbGF0ZXIgc3ViLXJlc291cmNlcyBmcm9tIGJlaW5nIGxvYWRlZC4KK1Ro
aXMgdGVzdCBzaG91bGQgcHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91dC4K
K1NVQ0NFU1MKKyAgICAgICAgICAgICAgICAgICAgIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXIuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBsb2FkZWQoKSB7CisgIC8vIFN0YXJ0IGEgbmV3IHJlc291cmNlIGxvYWQgaW4g
dGhlIGlmcmFtZS4KKyAgLy8gQmVmb3JlIGJ1ZyA1NTAxNyBpcyByZXNvbHZlZCwgdGhlIG5ldyBy
ZXNvdXJjZSBsb2FkIHdpbGwgYmUgYmxvY2tlZAorICAvLyBiZWNhdXNlIG9mIHRoZSAyMCBsZWFr
ZWQgbG9hZGVycyBjYXVzZWQgYnkgdGhlIHN2ZyBpbWFnZXMuCisgIHZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMv
bG9hZC1zY3JpcHQuaHRtbCc7CisgIGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJUZXh0ID0gJ1NVQ0NFU1MnOwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH07CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgp
Ij4KK1RoaXMgdGVzdCBjaGVja3MgaWYgU1ZHSU1hZ2VzIGNhdXNlIE1haW5SZXNvdXJjZUxvYWRl
cnMgbGVha3Mgd2hpY2ggd2lsbCBwcmV2ZW50IGxhdGVyCitzdWItcmVzb3VyY2VzIGZyb20gYmVp
bmcgbG9hZGVkLjxicj4KK1RoaXMgdGVzdCBzaG91bGQgcHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNo
b3VsZCBub3QgdGltZW91dC4KKworPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9kaXY+CisKKzwhLS0K
KyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIgbGltaXRzIG1heGltdW0gMjAgbG9hZGluZyBsb2FkZXJz
IGF0IHBhcnNpbmcgc3RhZ2UgZm9yIGVhY2ggaG9zdC4KKyBCZWZvcmUgYnVnIDU1MDE3IGlzIHJl
c29sdmVkLCB0aGUgZm9sbG93aW5nIHN2ZyBpbWFnZXMgd2lsbCBsZWFrIHRoZWlyIE1haW5SZXNv
dXJjZUxvYWRlcnMuCistLT4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xJz4KKzxp
bWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8yJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2ly
Y2xlLnN2Zz8zJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz80Jz4KKzxpbWcgc3Jj
PSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz81Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2
Zz82Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz83Jz4KKzxpbWcgc3JjPSdyZXNv
dXJjZXMvY2lyY2xlLnN2Zz84Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz85Jz4K
KzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xMCc+Cis8aW1nIHNyYz0ncmVzb3VyY2Vz
L2NpcmNsZS5zdmc/MTEnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzEyJz4KKzxp
bWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xMyc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2Np
cmNsZS5zdmc/MTQnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzE1Jz4KKzxpbWcg
c3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xNic+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNs
ZS5zdmc/MTcnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzE4Jz4KKzxpbWcgc3Jj
PSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xOSc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5z
dmc/MjAnPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
cmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9IlhYWFhYLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="76496"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84534</attachid>
            <date>2011-03-03 01:31:44 -0800</date>
            <delta_ts>2011-03-03 21:14:22 -0800</delta_ts>
            <desc>Fix sandbox issue</desc>
            <filename>patch55017n2</filename>
            <type>text/plain</type>
            <size>5675</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDEgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGZha2UgcmVxdWVzdCBsb2FkaW5nIG9mIFNW
R0ltYWdlIHRvIGF2b2lkIE1haW5SZXNvdXJjZUxvYWRlcgorICAgICAgICBsZWFrLiBUaGUgZnJh
bWUtPmluaXQoKSBhbHJlYWR5IGVuc3VyZXMgaW5pdGlhbGl6YXRpb24gb2YgdGhlCisgICAgICAg
IGRvY3VtZW50IGxvYWRlci4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9zdmctaW1hZ2Ut
bGVhay1sb2FkZXIuaHRtbAorCisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdlZCk6CisKIDIwMTEtMDItMjYg
IEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5jcHAJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjczLDEyICsyNzMsOSBAQCBib29sIFNWR0lt
YWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVu
dCk7CiAgICAgICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgp
KSk7CiAgICAgICAgIGZyYW1lLT5pbml0KCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBmYWtl
UmVxdWVzdChLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpKTsKICAgICAgICAgRnJhbWVMb2FkZXIq
IGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKICAgICAgICAgbG9hZGVyLT5zZXRGb3JjZWRTYW5k
Ym94RmxhZ3MoU2FuZGJveEFsbCk7Ci0gICAgICAgIGxvYWRlci0+bG9hZChmYWtlUmVxdWVzdCwg
ZmFsc2UpOyAvLyBNYWtlIHN1cmUgdGhlIERvY3VtZW50TG9hZGVyIGlzIGNyZWF0ZWQKLSAgICAg
ICAgbG9hZGVyLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7IC8vIGNhbmNlbCBhbnkg
cG9saWN5IGNoZWNrcwotICAgICAgICBsb2FkZXItPmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOwor
ICAgICAgICBBU1NFUlQobG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKTsgLy8gRG9jdW1l
bnRMb2FkZXIgc2hvdWxkIGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGZyYW1lLT5pbml0KCkuCiAgICAg
ICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPnNldE1JTUVUeXBl
KCJpbWFnZS9zdmcreG1sIik7CiAgICAgICAgIGxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIo
KS0+d3JpdGVyKCktPmJlZ2luKEtVUkwoKSk7IC8vIGNyZWF0ZSB0aGUgZW1wdHkgZG9jdW1lbnQK
ICAgICAgICAgbG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0ZXIoKS0+YWRkRGF0
YShkYXRhKCktPmRhdGEoKSwgZGF0YSgpLT5zaXplKCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzk4
MTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wMy0wMSAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0
ZXN0IHRvIGVuc3VyZSBTVkdJbWFnZSB3b24ndCBjYXVzZSBSZXNvdXJjZUxvYWRlciBsZWFrcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDE3CisK
KyAgICAgICAgKiBmYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0
bWw6IEFkZGVkLgorCiAyMDExLTAyLTI2ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxv
YWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
IGNoZWNrcyBpZiBTVkdJTWFnZXMgY2F1c2UgTWFpblJlc291cmNlTG9hZGVycyBsZWFrcyB3aGlj
aCB3aWxsIHByZXZlbnQgbGF0ZXIgc3ViLXJlc291cmNlcyBmcm9tIGJlaW5nIGxvYWRlZC4KK1Ro
aXMgdGVzdCBzaG91bGQgcHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91dC4K
K1NVQ0NFU1MKKyAgICAgICAgICAgICAgICAgICAgIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXIuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBsb2FkZWQoKSB7CisgIC8vIFN0YXJ0IGEgbmV3IHJlc291cmNlIGxvYWQgaW4g
dGhlIGlmcmFtZS4KKyAgLy8gQmVmb3JlIGJ1ZyA1NTAxNyBpcyByZXNvbHZlZCwgdGhlIG5ldyBy
ZXNvdXJjZSBsb2FkIHdpbGwgYmUgYmxvY2tlZAorICAvLyBiZWNhdXNlIG9mIHRoZSAyMCBsZWFr
ZWQgbG9hZGVycyBjYXVzZWQgYnkgdGhlIHN2ZyBpbWFnZXMuCisgIHZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMv
bG9hZC1zY3JpcHQuaHRtbCc7CisgIGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJUZXh0ID0gJ1NVQ0NFU1MnOwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH07CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgp
Ij4KK1RoaXMgdGVzdCBjaGVja3MgaWYgU1ZHSU1hZ2VzIGNhdXNlIE1haW5SZXNvdXJjZUxvYWRl
cnMgbGVha3Mgd2hpY2ggd2lsbCBwcmV2ZW50IGxhdGVyCitzdWItcmVzb3VyY2VzIGZyb20gYmVp
bmcgbG9hZGVkLjxicj4KK1RoaXMgdGVzdCBzaG91bGQgcHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNo
b3VsZCBub3QgdGltZW91dC4KKworPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9kaXY+CisKKzwhLS0K
KyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIgbGltaXRzIG1heGltdW0gMjAgbG9hZGluZyBsb2FkZXJz
IGF0IHBhcnNpbmcgc3RhZ2UgZm9yIGVhY2ggaG9zdC4KKyBCZWZvcmUgYnVnIDU1MDE3IGlzIHJl
c29sdmVkLCB0aGUgZm9sbG93aW5nIHN2ZyBpbWFnZXMgd2lsbCBsZWFrIHRoZWlyIE1haW5SZXNv
dXJjZUxvYWRlcnMuCistLT4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xJz4KKzxp
bWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8yJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2ly
Y2xlLnN2Zz8zJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz80Jz4KKzxpbWcgc3Jj
PSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz81Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2
Zz82Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz83Jz4KKzxpbWcgc3JjPSdyZXNv
dXJjZXMvY2lyY2xlLnN2Zz84Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz85Jz4K
KzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xMCc+Cis8aW1nIHNyYz0ncmVzb3VyY2Vz
L2NpcmNsZS5zdmc/MTEnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzEyJz4KKzxp
bWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xMyc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2Np
cmNsZS5zdmc/MTQnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzE1Jz4KKzxpbWcg
c3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xNic+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNs
ZS5zdmc/MTcnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzE4Jz4KKzxpbWcgc3Jj
PSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xOSc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5z
dmc/MjAnPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
cmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9IlhYWFhYLmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="76525"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84686</attachid>
            <date>2011-03-03 21:14:22 -0800</date>
            <delta_ts>2011-03-04 15:42:05 -0800</delta_ts>
            <desc>Final patch</desc>
            <filename>patch55017n2</filename>
            <type>text/plain</type>
            <size>5714</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDEgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBSZW1vdmUgZmFrZSByZXF1ZXN0IGxvYWRpbmcgb2YgU1ZHSW1h
Z2UgdG8gYXZvaWQgTWFpblJlc291cmNlTG9hZGVyCisgICAgICAgIGxlYWsuIFRoZSBmcmFtZS0+
aW5pdCgpIGFscmVhZHkgZW5zdXJlcyBpbml0aWFsaXphdGlvbiBvZiB0aGUKKyAgICAgICAgZG9j
dW1lbnQgbG9hZGVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NTAxNworCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFr
LWxvYWRlci5odG1sCisKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMS0wMi0yNiAgSnVz
dGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cAkocmV2aXNpb24gNzk4MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsMTIgKzI3Myw5IEBAIGJvb2wgU1ZHSW1hZ2U6
OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVIKICAgICAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9
IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBkdW1teUZyYW1lTG9hZGVyQ2xpZW50KTsK
ICAgICAgICAgZnJhbWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkpKTsK
ICAgICAgICAgZnJhbWUtPmluaXQoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGZha2VSZXF1
ZXN0KEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAiIikpOwogICAgICAgICBGcmFtZUxvYWRlciogbG9h
ZGVyID0gZnJhbWUtPmxvYWRlcigpOwogICAgICAgICBsb2FkZXItPnNldEZvcmNlZFNhbmRib3hG
bGFncyhTYW5kYm94QWxsKTsKLSAgICAgICAgbG9hZGVyLT5sb2FkKGZha2VSZXF1ZXN0LCBmYWxz
ZSk7IC8vIE1ha2Ugc3VyZSB0aGUgRG9jdW1lbnRMb2FkZXIgaXMgY3JlYXRlZAotICAgICAgICBs
b2FkZXItPnBvbGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2soKTsgLy8gY2FuY2VsIGFueSBwb2xp
Y3kgY2hlY2tzCi0gICAgICAgIGxvYWRlci0+Y29tbWl0UHJvdmlzaW9uYWxMb2FkKCk7CisgICAg
ICAgIEFTU0VSVChsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpOyAvLyBEb2N1bWVudExv
YWRlciBzaG91bGQgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgZnJhbWUtPmluaXQoKS4KICAgICAgICAg
bG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0ZXIoKS0+c2V0TUlNRVR5cGUoImlt
YWdlL3N2Zyt4bWwiKTsKICAgICAgICAgbG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53
cml0ZXIoKS0+YmVnaW4oS1VSTCgpKTsgLy8gY3JlYXRlIHRoZSBlbXB0eSBkb2N1bWVudAogICAg
ICAgICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpLT5hZGREYXRhKGRh
dGEoKS0+ZGF0YSgpLCBkYXRhKCktPnNpemUoKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3OTgxNCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTAzLTAxICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qg
dG8gZW5zdXJlIFNWR0ltYWdlIHdvbid0IGNhdXNlIFJlc291cmNlTG9hZGVyIGxlYWtzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwMTcKKworICAg
ICAgICAqIGZhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbDog
QWRkZWQuCisKIDIwMTEtMDItMjYgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
c3ZnLWltYWdlLWxlYWstbG9hZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVy
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3QgY2hl
Y2tzIGlmIFNWR0lNYWdlcyBjYXVzZSBNYWluUmVzb3VyY2VMb2FkZXJzIGxlYWtzIHdoaWNoIHdp
bGwgcHJldmVudCBsYXRlciBzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLgorVGhpcyB0
ZXN0IHNob3VsZCBwcm9kdWNlICJTVUNDRVNTIiBhbmQgc2hvdWxkIG5vdCB0aW1lb3V0LgorU1VD
Q0VTUworICAgICAgICAgICAgICAgICAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9zdmctaW1hZ2UtbGVhay1sb2FkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgLy8gU3RhcnQgYSBuZXcgcmVzb3VyY2UgbG9hZCBp
biB0aGUgaWZyYW1lLgorICAgIC8vIEJlZm9yZSBidWcgNTUwMTcgaXMgcmVzb2x2ZWQsIHRoZSBu
ZXcgcmVzb3VyY2UgbG9hZCB3aWxsIGJlIGJsb2NrZWQKKyAgICAvLyBiZWNhdXNlIG9mIHRoZSAy
MCBsZWFrZWQgbG9hZGVycyBjYXVzZWQgYnkgdGhlIHN2ZyBpbWFnZXMuCisgICAgdmFyIGlmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIGlmcmFtZS5zcmMgPSAn
cmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwnOworICAgIGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVyVGV4
dCA9ICdTVUNDRVNTJzsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Owor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorCis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KK1RoaXMgdGVzdCBjaGVja3MgaWYgU1ZH
SU1hZ2VzIGNhdXNlIE1haW5SZXNvdXJjZUxvYWRlcnMgbGVha3Mgd2hpY2ggd2lsbCBwcmV2ZW50
IGxhdGVyCitzdWItcmVzb3VyY2VzIGZyb20gYmVpbmcgbG9hZGVkLjxicj4KK1RoaXMgdGVzdCBz
aG91bGQgcHJvZHVjZSAiU1VDQ0VTUyIgYW5kIHNob3VsZCBub3QgdGltZW91dC4KKworPGRpdiBp
ZD0icmVzdWx0Ij5GQUlMPC9kaXY+CisKKzwhLS0KKyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIgbGlt
aXRzIG1heGltdW0gMjAgbG9hZGluZyBsb2FkZXJzIGF0IHBhcnNpbmcgc3RhZ2UgZm9yIGVhY2gg
aG9zdC4KKyBCZWZvcmUgYnVnIDU1MDE3IGlzIHJlc29sdmVkLCB0aGUgZm9sbG93aW5nIHN2ZyBp
bWFnZXMgd2lsbCBsZWFrIHRoZWlyIE1haW5SZXNvdXJjZUxvYWRlcnMuCistLT4KKzxpbWcgc3Jj
PSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2
Zz8yJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8zJz4KKzxpbWcgc3JjPSdyZXNv
dXJjZXMvY2lyY2xlLnN2Zz80Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz81Jz4K
KzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz82Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMv
Y2lyY2xlLnN2Zz83Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz84Jz4KKzxpbWcg
c3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz85Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xl
LnN2Zz8xMCc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTEnPgorPGltZyBzcmM9
J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzEyJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2
Zz8xMyc+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTQnPgorPGltZyBzcmM9J3Jl
c291cmNlcy9jaXJjbGUuc3ZnPzE1Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8x
Nic+Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MTcnPgorPGltZyBzcmM9J3Jlc291
cmNlcy9jaXJjbGUuc3ZnPzE4Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xOSc+
Cis8aW1nIHNyYz0ncmVzb3VyY2VzL2NpcmNsZS5zdmc/MjAnPgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2NyaXB0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2xvYWQtc2Ny
aXB0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJj
ZXMvbG9hZC1zY3JpcHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9ImRvZXMtbm90LWV4aXN0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KKwo=
</data>
<flag name="commit-queue"
          id="76716"
          type_id="3"
          status="-"
          setter="wangxianzhu"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84818</attachid>
            <date>2011-03-04 15:41:37 -0800</date>
            <delta_ts>2011-03-04 23:08:45 -0800</delta_ts>
            <desc>Really final:) Fixed reviewer in LayoutTests/ChangeLog</desc>
            <filename>patch55017n2</filename>
            <type>text/plain</type>
            <size>5710</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5ODE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDEgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBSZW1vdmUgZmFrZSByZXF1ZXN0IGxvYWRpbmcgb2YgU1ZHSW1h
Z2UgdG8gYXZvaWQgTWFpblJlc291cmNlTG9hZGVyCisgICAgICAgIGxlYWsuIFRoZSBmcmFtZS0+
aW5pdCgpIGFscmVhZHkgZW5zdXJlcyBpbml0aWFsaXphdGlvbiBvZiB0aGUKKyAgICAgICAgZG9j
dW1lbnQgbG9hZGVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NTAxNworCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFr
LWxvYWRlci5odG1sCisKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMS0wMi0yNiAgSnVz
dGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cAkocmV2aXNpb24gNzk4MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsMTIgKzI3Myw5IEBAIGJvb2wgU1ZHSW1hZ2U6
OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVIKICAgICAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9
IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBkdW1teUZyYW1lTG9hZGVyQ2xpZW50KTsK
ICAgICAgICAgZnJhbWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkpKTsK
ICAgICAgICAgZnJhbWUtPmluaXQoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGZha2VSZXF1
ZXN0KEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAiIikpOwogICAgICAgICBGcmFtZUxvYWRlciogbG9h
ZGVyID0gZnJhbWUtPmxvYWRlcigpOwogICAgICAgICBsb2FkZXItPnNldEZvcmNlZFNhbmRib3hG
bGFncyhTYW5kYm94QWxsKTsKLSAgICAgICAgbG9hZGVyLT5sb2FkKGZha2VSZXF1ZXN0LCBmYWxz
ZSk7IC8vIE1ha2Ugc3VyZSB0aGUgRG9jdW1lbnRMb2FkZXIgaXMgY3JlYXRlZAotICAgICAgICBs
b2FkZXItPnBvbGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2soKTsgLy8gY2FuY2VsIGFueSBwb2xp
Y3kgY2hlY2tzCi0gICAgICAgIGxvYWRlci0+Y29tbWl0UHJvdmlzaW9uYWxMb2FkKCk7CisgICAg
ICAgIEFTU0VSVChsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpOyAvLyBEb2N1bWVudExv
YWRlciBzaG91bGQgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgZnJhbWUtPmluaXQoKS4KICAgICAgICAg
bG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53cml0ZXIoKS0+c2V0TUlNRVR5cGUoImlt
YWdlL3N2Zyt4bWwiKTsKICAgICAgICAgbG9hZGVyLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT53
cml0ZXIoKS0+YmVnaW4oS1VSTCgpKTsgLy8gY3JlYXRlIHRoZSBlbXB0eSBkb2N1bWVudAogICAg
ICAgICBsb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpLT5hZGREYXRhKGRh
dGEoKS0+ZGF0YSgpLCBkYXRhKCktPnNpemUoKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3OTgxNCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTAzLTAxICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byBl
bnN1cmUgU1ZHSW1hZ2Ugd29uJ3QgY2F1c2UgUmVzb3VyY2VMb2FkZXIgbGVha3MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTAxNworCisgICAgICAg
ICogZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNlcy9sb2FkLXNjcmlwdC5odG1sOiBBZGRl
ZC4KKwogMjAxMS0wMi0yNiAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmct
aW1hZ2UtbGVhay1sb2FkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zdmctaW1hZ2UtbGVhay1sb2FkZXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
aWYgU1ZHSU1hZ2VzIGNhdXNlIE1haW5SZXNvdXJjZUxvYWRlcnMgbGVha3Mgd2hpY2ggd2lsbCBw
cmV2ZW50IGxhdGVyIHN1Yi1yZXNvdXJjZXMgZnJvbSBiZWluZyBsb2FkZWQuCitUaGlzIHRlc3Qg
c2hvdWxkIHByb2R1Y2UgIlNVQ0NFU1MiIGFuZCBzaG91bGQgbm90IHRpbWVvdXQuCitTVUNDRVNT
CisgICAgICAgICAgICAgICAgICAgICAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3N2
Zy1pbWFnZS1sZWFrLWxvYWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3N2Zy1pbWFnZS1sZWFrLWxvYWRlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvc3ZnLWltYWdlLWxlYWstbG9hZGVyLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvYWRlZCgpIHsKKyAgICAvLyBTdGFydCBhIG5ldyByZXNvdXJjZSBsb2FkIGluIHRo
ZSBpZnJhbWUuCisgICAgLy8gQmVmb3JlIGJ1ZyA1NTAxNyBpcyByZXNvbHZlZCwgdGhlIG5ldyBy
ZXNvdXJjZSBsb2FkIHdpbGwgYmUgYmxvY2tlZAorICAgIC8vIGJlY2F1c2Ugb2YgdGhlIDIwIGxl
YWtlZCBsb2FkZXJzIGNhdXNlZCBieSB0aGUgc3ZnIGltYWdlcy4KKyAgICB2YXIgaWZyYW1lID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgaWZyYW1lLnNyYyA9ICdyZXNv
dXJjZXMvbG9hZC1zY3JpcHQuaHRtbCc7CisgICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJUZXh0ID0g
J1NVQ0NFU1MnOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH07CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
CisKKzxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorVGhpcyB0ZXN0IGNoZWNrcyBpZiBTVkdJTWFn
ZXMgY2F1c2UgTWFpblJlc291cmNlTG9hZGVycyBsZWFrcyB3aGljaCB3aWxsIHByZXZlbnQgbGF0
ZXIKK3N1Yi1yZXNvdXJjZXMgZnJvbSBiZWluZyBsb2FkZWQuPGJyPgorVGhpcyB0ZXN0IHNob3Vs
ZCBwcm9kdWNlICJTVUNDRVNTIiBhbmQgc2hvdWxkIG5vdCB0aW1lb3V0LgorCis8ZGl2IGlkPSJy
ZXN1bHQiPkZBSUw8L2Rpdj4KKworPCEtLQorIFJlc291cmNlTG9hZFNjaGVkdWxlciBsaW1pdHMg
bWF4aW11bSAyMCBsb2FkaW5nIGxvYWRlcnMgYXQgcGFyc2luZyBzdGFnZSBmb3IgZWFjaCBob3N0
LgorIEJlZm9yZSBidWcgNTUwMTcgaXMgcmVzb2x2ZWQsIHRoZSBmb2xsb3dpbmcgc3ZnIGltYWdl
cyB3aWxsIGxlYWsgdGhlaXIgTWFpblJlc291cmNlTG9hZGVycy4KKy0tPgorPGltZyBzcmM9J3Jl
c291cmNlcy9jaXJjbGUuc3ZnPzEnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzIn
PgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzMnPgorPGltZyBzcmM9J3Jlc291cmNl
cy9jaXJjbGUuc3ZnPzQnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzUnPgorPGlt
ZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzYnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJj
bGUuc3ZnPzcnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzgnPgorPGltZyBzcmM9
J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzknPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3Zn
PzEwJz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xMSc+Cis8aW1nIHNyYz0ncmVz
b3VyY2VzL2NpcmNsZS5zdmc/MTInPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzEz
Jz4KKzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xNCc+Cis8aW1nIHNyYz0ncmVzb3Vy
Y2VzL2NpcmNsZS5zdmc/MTUnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzE2Jz4K
KzxpbWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8xNyc+Cis8aW1nIHNyYz0ncmVzb3VyY2Vz
L2NpcmNsZS5zdmc/MTgnPgorPGltZyBzcmM9J3Jlc291cmNlcy9jaXJjbGUuc3ZnPzE5Jz4KKzxp
bWcgc3JjPSdyZXNvdXJjZXMvY2lyY2xlLnN2Zz8yMCc+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvbG9hZC1zY3JpcHQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9s
b2FkLXNjcmlwdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iZG9lcy1ub3QtZXhpc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>