<?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>51330</bug_id>
          
          <creation_ts>2010-12-20 06:31:09 -0800</creation_ts>
          <short_desc>[Qt] Improve the readability of FrameLoaderClientQt::createPlugin()</short_desc>
          <delta_ts>2011-01-12 04:23:11 -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>Plug-ins</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>Qt, QtTriaged</keywords>
          <priority>P5</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>52290</dependson>
          <blocked>51464</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ademar</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>noam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324360</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-12-20 06:31:09 -0800</bug_when>
    <thetext>One curly braket of FrameLoaderClientQt::createPlugin() is at a weird place, making the identation incorrect later and the object scope hard to define.

This has been introduced in 6674d2a2919aefd4850c7a1b73f487c1483ec456.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324366</commentid>
    <comment_count>1</comment_count>
      <attachid>76995</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-12-20 06:33:52 -0800</bug_when>
    <thetext>Created attachment 76995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324367</commentid>
    <comment_count>2</comment_count>
      <attachid>76995</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-12-20 06:35:40 -0800</bug_when>
    <thetext>Comment on attachment 76995
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324369</commentid>
    <comment_count>3</comment_count>
      <attachid>76995</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-20 06:37:22 -0800</bug_when>
    <thetext>Comment on attachment 76995
Patch

Rejecting attachment 76995 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-3&apos;, &apos;apply-attachment&apos;, &apos;--non-interactive&apos;, 76995]&quot; exit_code: 2
Last 500 characters of output:
/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 2010-12-20  Yury Semikhatsky  &lt;yurys@chromium.org&gt;

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 132.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 2

Full output: http://queues.webkit.org/results/7283067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324372</commentid>
    <comment_count>4</comment_count>
      <attachid>76995</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-12-20 06:41:53 -0800</bug_when>
    <thetext>Comment on attachment 76995
Patch

Looks like the commit bot has issues with changelogs recently. Trying again, I&apos;ll merge manually if that fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324374</commentid>
    <comment_count>5</comment_count>
      <attachid>76995</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-20 06:43:20 -0800</bug_when>
    <thetext>Comment on attachment 76995
Patch

Rejecting attachment 76995 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-3&apos;, &apos;apply-attachment&apos;, &apos;--non-interactive&apos;, 76995]&quot; exit_code: 2
Last 500 characters of output:
/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 2010-12-20  Yury Semikhatsky  &lt;yurys@chromium.org&gt;

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 132.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 2

Full output: http://queues.webkit.org/results/7209069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324377</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-12-20 06:58:43 -0800</bug_when>
    <thetext>Committed r74344: &lt;http://trac.webkit.org/changeset/74344&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328212</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-12-31 12:32:10 -0800</bug_when>
    <thetext>I think this patch needs to be reverted. It breaks usage of QWebPluginFactory with any mime-type other than application/x-qt-plugin or application/x-qt-styled-widget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328219</commentid>
    <comment_count>8</comment_count>
      <attachid>77732</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-12-31 14:11:52 -0800</bug_when>
    <thetext>Created attachment 77732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328226</commentid>
    <comment_count>9</comment_count>
      <attachid>77732</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-12-31 15:31:02 -0800</bug_when>
    <thetext>Comment on attachment 77732
Patch

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

&gt; WebKit/qt/ChangeLog:10
&gt; +        Reverted part of the originally patch that broke the plugin functionality.
&gt; +        The plugin factory should have a chance to create a plugin for any mime-type, not just for
&gt; +        application/x-qt-plugin

Could you do this as two patches? It is a bit confusing what is reverting and what is new functionality. And the original patch was quite simple.

&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1514
&gt; +            if (parentWidget) // don&apos;t reparent to nothing (i.e. keep whatever parent QWebPage::createPlugin() chose.

If you do this we should fix the comments to start with capital letter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328227</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-12-31 15:36:36 -0800</bug_when>
    <thetext>&gt; Could you do this as two patches? It is a bit confusing what is reverting and what is new functionality. And the original patch was quite simple.

This patch is as small as I can make it. It&apos;s actually super simple, it just moves the brackets to a different place. But since it changes indentations of several lines it looks big.

&gt; 
&gt; &gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1514
&gt; &gt; +            if (parentWidget) // don&apos;t reparent to nothing (i.e. keep whatever parent QWebPage::createPlugin() chose.
&gt; 
&gt; If you do this we should fix the comments to start with capital letter

And maybe remove the double-negative :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328235</commentid>
    <comment_count>11</comment_count>
      <attachid>77732</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-12-31 17:44:12 -0800</bug_when>
    <thetext>Comment on attachment 77732
Patch

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

&gt; WebKit/qt/ChangeLog:8
&gt; +        Reverted part of the originally patch that broke the plugin functionality.

This needs a regression test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328286</commentid>
    <comment_count>12</comment_count>
      <attachid>77748</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-01 12:04:23 -0800</bug_when>
    <thetext>Created attachment 77748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328288</commentid>
    <comment_count>13</comment_count>
      <attachid>77750</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-01 12:06:47 -0800</bug_when>
    <thetext>Created attachment 77750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328289</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-01 12:06:53 -0800</bug_when>
    <thetext>Attachment 77748 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/qt/ChangeLog&apos;, u&apos;WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/qwebpluginfactory.pro&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp&apos;, u&apos;WebKit/qt/tests/tests.pro&apos;]&quot; exit_code: 1
WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:20:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 5 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>328290</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-01 12:09:07 -0800</bug_when>
    <thetext>Attachment 77750 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/qt/ChangeLog&apos;, u&apos;WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/qwebpluginfactory.pro&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp&apos;, u&apos;WebKit/qt/tests/tests.pro&apos;]&quot; exit_code: 1
WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:22:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 5 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>328293</commentid>
    <comment_count>16</comment_count>
      <attachid>77751</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-01 12:16:37 -0800</bug_when>
    <thetext>Created attachment 77751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328294</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-01 12:20:06 -0800</bug_when>
    <thetext>Attachment 77751 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/qt/ChangeLog&apos;, u&apos;WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/qwebpluginfactory.pro&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp&apos;, u&apos;WebKit/qt/tests/tests.pro&apos;]&quot; exit_code: 1
WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:22:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 5 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>328308</commentid>
    <comment_count>18</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-01 14:17:29 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Attachment 77751 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/qt/ChangeLog&apos;, u&apos;WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/qwebpluginfactory.pro&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp&apos;, u&apos;WebKit/qt/tests/tests.pro&apos;]&quot; exit_code: 1
&gt; WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:22:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
&gt; Total errors found: 1 in 5 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

This file should be exempt from the style check. I think a false positive about that was already posted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328560</commentid>
    <comment_count>19</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-03 07:18:28 -0800</bug_when>
    <thetext>I effectively broke that. Thanks Noam for noticing and fixing the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329590</commentid>
    <comment_count>20</comment_count>
      <attachid>77751</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-01-05 09:08:45 -0800</bug_when>
    <thetext>Comment on attachment 77751
Patch

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

&gt; WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

Wrong year. ;)

&gt; WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:144
&gt; +    QVERIFY(plugins.size() == 1);

Please use QCOMPARE() instead where it makes sense.
The output will be a lot more readable when/if something starts failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329810</commentid>
    <comment_count>21</comment_count>
      <attachid>78051</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-05 15:02:01 -0800</bug_when>
    <thetext>Created attachment 78051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329812</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-05 15:05:07 -0800</bug_when>
    <thetext>Attachment 78051 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/qt/ChangeLog&apos;, u&apos;WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/qwebpluginfactory.pro&apos;, u&apos;WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp&apos;, u&apos;WebKit/qt/tests/tests.pro&apos;]&quot; exit_code: 1
WebKit/qt/tests/qwebpluginfactory/tst_qwebpluginfactory.cpp:22:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 5 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>329818</commentid>
    <comment_count>23</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-05 15:15:05 -0800</bug_when>
    <thetext>Attachment 78051 did not build on qt:
Build output: http://queues.webkit.org/results/7284399</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332654</commentid>
    <comment_count>24</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-11 14:20:04 -0800</bug_when>
    <thetext>The fix for bug 51464 has been added to trunk and cherry-picked into QtWebKit-2.1 (and therefore is present in 2.2 as well) and according to a comment there, that fix needs this bug fixed in order to work properly, so I&apos;m adding this one as a release blocker for 2.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332670</commentid>
    <comment_count>25</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-11 14:40:32 -0800</bug_when>
    <thetext>It&apos;s only a blocker if the original patch got into 2.1, since the second patch reverts some of it due to a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332671</commentid>
    <comment_count>26</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2011-01-11 14:42:53 -0800</bug_when>
    <thetext>it is strange a but titled &quot;improve readability&quot; blocking a release ... :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332677</commentid>
    <comment_count>27</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-01-11 14:44:47 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; it is strange a but titled &quot;improve readability&quot; blocking a release ... :(

Sometimes a readability bug causes a regression :) Maybe I should have opened a second bug for the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332685</commentid>
    <comment_count>28</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-11 14:49:02 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; It&apos;s only a blocker if the original patch got into 2.1, since the second patch reverts some of it due to a regression.

Yep, the original patch (6674d2a2919aefd4850c7a1b73f487c1483ec456) is quite old (from August, 2008)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332693</commentid>
    <comment_count>29</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-11 14:52:45 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; it is strange a but titled &quot;improve readability&quot; blocking a release ... :(
&gt; 
&gt; Sometimes a readability bug causes a regression :) Maybe I should have opened a second bug for the regression.

I guess it would be easier to review as well, but since there&apos;s a commit already (see Comment #6 and Comment #7) I&apos;m not sure it makes sense on trunk.

Anyway, would you mind attaching the patch that fixes only the regression so that I can apply it to qtwebkit-2.1, avoiding the risk of this refactoring at this point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333013</commentid>
    <comment_count>30</comment_count>
      <attachid>78051</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-01-12 03:51:05 -0800</bug_when>
    <thetext>Comment on attachment 78051
Patch

This does not even build on Qt, we&apos;ll need a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333015</commentid>
    <comment_count>31</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-12 04:10:16 -0800</bug_when>
    <thetext>This is a patch changing code style, no feature, in trunk, landed the 20 of December. How can that be blocking a release?

My original patch is _NOT_ in the 2.1 branch. The patch of #51464 is depending on this for _trunk_.

I start to understand why this release is taking so long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333019</commentid>
    <comment_count>32</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-01-12 04:16:57 -0800</bug_when>
    <thetext>I&apos;ve scheduled a rollout of this patch (as bug 52290), let&apos;s do new stuff on new bugs. This frankentask needs to die.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333025</commentid>
    <comment_count>33</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-12 04:23:11 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; This is a patch changing code style, no feature, in trunk, landed the 20 of December. How can that be blocking a release?
&gt;
&gt; My original patch is _NOT_ in the 2.1 branch. The patch of #51464 is depending on this for _trunk_.

The bug description says the problem was introduced by 6674d2a2919aefd4850c7a1b73f487c1483ec456, which in my git tree is a commit from 2008.

&gt; 
&gt; I start to understand why this release is taking so long.

C&apos;mon... You know better than me that these technicalities have nothing to do with the release schedule.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76995</attachid>
            <date>2010-12-20 06:33:52 -0800</date>
            <delta_ts>2010-12-31 14:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>51330.patch</filename>
            <type>text/plain</type>
            <size>3252</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDA3MzhmNmMuLmE4ODc5NzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEyLTIwICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbXByb3ZlIHRoZSByZWFk
YWJpbGl0eSBvZiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEzMzAKKworICAgICAgICBS
ZWRlZmluZSB0aGUgc2NvcGVzIHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuIE9iamVjdHMgYXJlIG5v
dyBjcmVhdGVkIGluCisgICAgICAgIHRoZSBzY29wZSB0aGV5IGFyZSB1c2VkIGluLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDEwLTEyLTE3
ICBBcml5YSBIaWRheWF0ICA8YXJpeWFAc2VuY2hhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCmluZGV4IDkyMWU5MmYuLjg0OTk1OGYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE0NjYsMTAgKzE0
NjYsOCBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgUVN0cmluZyB1cmxTdHIodXJsLnN0
cmluZygpKTsKICAgICBRVXJsIHF1cmwgPSB1cmxTdHI7CiAKLSAgICBRT2JqZWN0KiBvYmplY3Qg
PSAwOwotCiAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXBsdWdpbiIgfHwg
bWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtc3R5bGVkLXdpZGdldCIpIHsKLSAgICAgICAg
b2JqZWN0ID0gbV93ZWJGcmFtZS0+cGFnZSgpLT5jcmVhdGVQbHVnaW4oY2xhc3NpZCwgcXVybCwg
cGFyYW1zLCB2YWx1ZXMpOworICAgICAgICBRT2JqZWN0KiBvYmplY3QgPSBtX3dlYkZyYW1lLT5w
YWdlKCktPmNyZWF0ZVBsdWdpbihjbGFzc2lkLCBxdXJsLCBwYXJhbXMsIHZhbHVlcyk7CiAjaWZu
ZGVmIFFUX05PX1NUWUxFX1NUWUxFU0hFRVQKICAgICAgICAgUVdpZGdldCogd2lkZ2V0ID0gcW9i
amVjdF9jYXN0PFFXaWRnZXQqPihvYmplY3QpOwogICAgICAgICBpZiAod2lkZ2V0ICYmIG1pbWVU
eXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXN0eWxlZC13aWRnZXQiKSB7CkBAIC0xNDkwLDcgKzE0
ODgsNiBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgICAgICB3aWRnZXQtPnNldFN0
eWxlU2hlZXQoc3R5bGVTaGVldCk7CiAgICAgICAgIH0KICNlbmRpZiAvLyBRVF9OT19TVFlMRV9T
VFlMRVNIRUVUCi0gICAgfQogCiAgICAgICAgIGlmICghb2JqZWN0KSB7CiAgICAgICAgICAgICBR
V2ViUGx1Z2luRmFjdG9yeSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFj
dG9yeSgpOwpAQCAtMTQ5OSw4ICsxNDk2LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKG9iamVjdCkgewotICAgICAgICAgICAgUVdpZGdldCogd2lk
Z2V0ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihvYmplY3QpOwotICAgICAgICAgICAgaWYgKHdp
ZGdldCkgeworICAgICAgICAgICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IHFvYmplY3RfY2FzdDxR
V2lkZ2V0Kj4ob2JqZWN0KSkgewogICAgICAgICAgICAgICAgIFFXaWRnZXQqIHBhcmVudFdpZGdl
dCA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50
KQogICAgICAgICAgICAgICAgICAgICBwYXJlbnRXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdl
dCo+KG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7CkBAIC0x
NTE0LDggKzE1MTAsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6
Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHc7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFFHcmFwaGljc1dpZGdldCog
Z3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzV2lkZ2V0Kj4ob2JqZWN0KTsK
LSAgICAgICAgICAgIGlmIChncmFwaGljc1dpZGdldCkgeworICAgICAgICAgICAgaWYgKFFHcmFw
aGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzV2lkZ2V0
Kj4ob2JqZWN0KSkgewogICAgICAgICAgICAgICAgIFFHcmFwaGljc09iamVjdCogcGFyZW50V2lk
Z2V0ID0gMDsKICAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGll
bnQpCiAgICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3RfY2FzdDxRR3Jh
cGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFyZW50
KCkpOwpAQCAtMTUzMCw2ICsxNTI1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVy
Q2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogCiAgICAg
ICAgICAgICAvLyBGSVhNRTogbWFrZSB0aGluZ3Mgd29yayBmb3Igd2lkZ2V0bGVzcyBwbHVnaW5z
IGFzIHdlbGwKICAgICAgICAgICAgIGRlbGV0ZSBvYmplY3Q7CisgICAgICAgIH0KICAgICB9CiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgZWxzZSB7IC8vIE5QQVBJIFBsdWdp
bnMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77732</attachid>
            <date>2010-12-31 14:11:52 -0800</date>
            <delta_ts>2011-01-01 12:04:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51330-20101231141151.patch</filename>
            <type>text/plain</type>
            <size>5910</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDlkOTNkYmQ0NTkwZTdlNjM0MmIyOTFiNDQyNDFmMGQwZjlkN2MzYjQuLjVjNmVhYWZkMjEy
MDZiNDY2NzVkY2VkNDVlODFlZGI5YjZiOWFlNjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEy
LTMxICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEltcHJvdmUgdGhl
IHJlYWRhYmlsaXR5IG9mIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMzMAorCisgICAg
ICAgIFJldmVydGVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsbHkgcGF0Y2ggdGhhdCBicm9rZSB0aGUg
cGx1Z2luIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIFRoZSBwbHVnaW4gZmFjdG9yeSBzaG91bGQg
aGF2ZSBhIGNoYW5jZSB0byBjcmVhdGUgYSBwbHVnaW4gZm9yIGFueSBtaW1lLXR5cGUsIG5vdCBq
dXN0IGZvcgorICAgICAgICBhcHBsaWNhdGlvbi94LXF0LXBsdWdpbgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDEwLTEyLTIzICBKYW4gRXJp
ayBIYW5zc2VuICA8amhhbnNzZW5Ac2VuY2hhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
bGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IGZiZjNlODk3YzZhOWU5MDQ1MDg5ZmUxMjJlMjlhYmZj
OWNjOWRiNzEuLjhiODYwNmFiOWM4ZWJjZTdhNThjZGZlMTE1YTIwM2FjNjcxNjc3ODMgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAor
KysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAg
LTE0NzQsOCArMTQ3NCwxMCBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRR
dDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgUVN0cmluZyB1
cmxTdHIodXJsLnN0cmluZygpKTsKICAgICBRVXJsIHF1cmwgPSB1cmxTdHI7CiAKKyAgICBRT2Jq
ZWN0KiBvYmplY3QgPSAwOworCiAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0
LXBsdWdpbiIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtc3R5bGVkLXdpZGdldCIp
IHsKLSAgICAgICAgUU9iamVjdCogb2JqZWN0ID0gbV93ZWJGcmFtZS0+cGFnZSgpLT5jcmVhdGVQ
bHVnaW4oY2xhc3NpZCwgcXVybCwgcGFyYW1zLCB2YWx1ZXMpOworICAgICAgICBvYmplY3QgPSBt
X3dlYkZyYW1lLT5wYWdlKCktPmNyZWF0ZVBsdWdpbihjbGFzc2lkLCBxdXJsLCBwYXJhbXMsIHZh
bHVlcyk7CiAjaWZuZGVmIFFUX05PX1NUWUxFX1NUWUxFU0hFRVQKICAgICAgICAgUVdpZGdldCog
d2lkZ2V0ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihvYmplY3QpOwogICAgICAgICBpZiAod2lk
Z2V0ICYmIG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXN0eWxlZC13aWRnZXQiKSB7CkBA
IC0xNDk1LDQ2ICsxNDk3LDQ3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVu
dFF0OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKIAogICAgICAgICAg
ICAgd2lkZ2V0LT5zZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXQpOwogICAgICAgICB9CisgICAgfQog
I2VuZGlmIC8vIFFUX05PX1NUWUxFX1NUWUxFU0hFRVQKIAotICAgICAgICBpZiAoIW9iamVjdCkg
ewotICAgICAgICAgICAgUVdlYlBsdWdpbkZhY3RvcnkqIGZhY3RvcnkgPSBtX3dlYkZyYW1lLT5w
YWdlKCktPnBsdWdpbkZhY3RvcnkoKTsKLSAgICAgICAgICAgIGlmIChmYWN0b3J5KQotICAgICAg
ICAgICAgICAgIG9iamVjdCA9IGZhY3RvcnktPmNyZWF0ZShtaW1lVHlwZSwgcXVybCwgcGFyYW1z
LCB2YWx1ZXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG9iamVjdCkgewotICAgICAgICAg
ICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IHFvYmplY3RfY2FzdDxRV2lkZ2V0Kj4ob2JqZWN0KSkg
ewotICAgICAgICAgICAgICAgIFFXaWRnZXQqIHBhcmVudFdpZGdldCA9IDA7Ci0gICAgICAgICAg
ICAgICAgaWYgKG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50KQotICAgICAgICAgICAgICAg
ICAgICBwYXJlbnRXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KG1fd2ViRnJhbWUtPnBh
Z2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBh
cmVudFdpZGdldCkgLy8gZG9uJ3QgcmVwYXJlbnQgdG8gbm90aGluZyAoaS5lLiBrZWVwIHdoYXRl
dmVyIHBhcmVudCBRV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKCkgY2hvc2UuCi0gICAgICAgICAgICAg
ICAgICAgIHdpZGdldC0+c2V0UGFyZW50KHBhcmVudFdpZGdldCk7Ci0gICAgICAgICAgICAgICAg
d2lkZ2V0LT5oaWRlKCk7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFF0UGx1Z2luV2lkZ2V0PiB3
ID0gYWRvcHRSZWYobmV3IFF0UGx1Z2luV2lkZ2V0KCkpOwotICAgICAgICAgICAgICAgIHctPnNl
dFBsYXRmb3JtV2lkZ2V0KHdpZGdldCk7Ci0gICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0
J3MgaW52aXNpYmxlIHVudGlsIHByb3Blcmx5IHBsYWNlZCBpbnRvIHRoZSBsYXlvdXQKLSAgICAg
ICAgICAgICAgICB3LT5zZXRGcmFtZVJlY3QoSW50UmVjdCgwLCAwLCAwLCAwKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHc7Ci0gICAgICAgICAgICB9CisgICAgaWYgKCFvYmplY3QpIHsKKyAg
ICAgICAgUVdlYlBsdWdpbkZhY3RvcnkqIGZhY3RvcnkgPSBtX3dlYkZyYW1lLT5wYWdlKCktPnBs
dWdpbkZhY3RvcnkoKTsKKyAgICAgICAgaWYgKGZhY3RvcnkpCisgICAgICAgICAgICBvYmplY3Qg
PSBmYWN0b3J5LT5jcmVhdGUobWltZVR5cGUsIHF1cmwsIHBhcmFtcywgdmFsdWVzKTsKKyAgICB9
CiAKLSAgICAgICAgICAgIGlmIChRR3JhcGhpY3NXaWRnZXQqIGdyYXBoaWNzV2lkZ2V0ID0gcW9i
amVjdF9jYXN0PFFHcmFwaGljc1dpZGdldCo+KG9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICBR
R3JhcGhpY3NPYmplY3QqIHBhcmVudFdpZGdldCA9IDA7Ci0gICAgICAgICAgICAgICAgaWYgKG1f
d2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50KQotICAgICAgICAgICAgICAgICAgICBwYXJlbnRX
aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzT2JqZWN0Kj4obV93ZWJGcmFtZS0+cGFnZSgp
LT5kLT5jbGllbnQtPnBsdWdpblBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICBncmFwaGljc1dp
ZGdldC0+aGlkZSgpOwotICAgICAgICAgICAgICAgIGlmIChwYXJlbnRXaWRnZXQpIC8vIGRvbid0
IHJlcGFyZW50IHRvIG5vdGhpbmcgKGkuZS4ga2VlcCB3aGF0ZXZlciBwYXJlbnQgUVdlYlBhZ2U6
OmNyZWF0ZVBsdWdpbigpIGNob3NlLgotICAgICAgICAgICAgICAgICAgICBncmFwaGljc1dpZGdl
dC0+c2V0UGFyZW50SXRlbShwYXJlbnRXaWRnZXQpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxR
dFBsdWdpbkdyYXBoaWNzV2lkZ2V0PiB3ID0gUXRQbHVnaW5HcmFwaGljc1dpZGdldDo6Y3JlYXRl
KGdyYXBoaWNzV2lkZ2V0KTsKLSAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgaXQncyBpbnZp
c2libGUgdW50aWwgcHJvcGVybHkgcGxhY2VkIGludG8gdGhlIGxheW91dAotICAgICAgICAgICAg
ICAgIHctPnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdzsKLSAgICAgICAgICAgIH0KKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChRV2lkZ2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KG9iamVjdCkpIHsKKyAg
ICAgICAgICAgIFFXaWRnZXQqIHBhcmVudFdpZGdldCA9IDA7CisgICAgICAgICAgICBpZiAobV93
ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQpCisgICAgICAgICAgICAgICAgcGFyZW50V2lkZ2V0
ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+
cGx1Z2luUGFyZW50KCkpOworICAgICAgICAgICAgaWYgKHBhcmVudFdpZGdldCkgLy8gZG9uJ3Qg
cmVwYXJlbnQgdG8gbm90aGluZyAoaS5lLiBrZWVwIHdoYXRldmVyIHBhcmVudCBRV2ViUGFnZTo6
Y3JlYXRlUGx1Z2luKCkgY2hvc2UuCisgICAgICAgICAgICAgICAgd2lkZ2V0LT5zZXRQYXJlbnQo
cGFyZW50V2lkZ2V0KTsKKyAgICAgICAgICAgIHdpZGdldC0+aGlkZSgpOworICAgICAgICAgICAg
UmVmUHRyPFF0UGx1Z2luV2lkZ2V0PiB3ID0gYWRvcHRSZWYobmV3IFF0UGx1Z2luV2lkZ2V0KCkp
OworICAgICAgICAgICAgdy0+c2V0UGxhdGZvcm1XaWRnZXQod2lkZ2V0KTsKKyAgICAgICAgICAg
IC8vIE1ha2Ugc3VyZSBpdCdzIGludmlzaWJsZSB1bnRpbCBwcm9wZXJseSBwbGFjZWQgaW50byB0
aGUgbGF5b3V0CisgICAgICAgICAgICB3LT5zZXRGcmFtZVJlY3QoSW50UmVjdCgwLCAwLCAwLCAw
KSk7CisgICAgICAgICAgICByZXR1cm4gdzsKKyAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBG
SVhNRTogbWFrZSB0aGluZ3Mgd29yayBmb3Igd2lkZ2V0bGVzcyBwbHVnaW5zIGFzIHdlbGwKLSAg
ICAgICAgICAgIGRlbGV0ZSBvYmplY3Q7CisgICAgICAgIGlmIChRR3JhcGhpY3NXaWRnZXQqIGdy
YXBoaWNzV2lkZ2V0ID0gcW9iamVjdF9jYXN0PFFHcmFwaGljc1dpZGdldCo+KG9iamVjdCkpIHsK
KyAgICAgICAgICAgIFFHcmFwaGljc09iamVjdCogcGFyZW50V2lkZ2V0ID0gMDsKKyAgICAgICAg
ICAgIGlmIChtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudCkKKyAgICAgICAgICAgICAgICBw
YXJlbnRXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzT2JqZWN0Kj4obV93ZWJGcmFtZS0+
cGFnZSgpLT5kLT5jbGllbnQtPnBsdWdpblBhcmVudCgpKTsKKyAgICAgICAgICAgIGdyYXBoaWNz
V2lkZ2V0LT5oaWRlKCk7CisgICAgICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCBy
ZXBhcmVudCB0byBub3RoaW5nIChpLmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpj
cmVhdGVQbHVnaW4oKSBjaG9zZS4KKyAgICAgICAgICAgICAgICBncmFwaGljc1dpZGdldC0+c2V0
UGFyZW50SXRlbShwYXJlbnRXaWRnZXQpOworICAgICAgICAgICAgUmVmUHRyPFF0UGx1Z2luR3Jh
cGhpY3NXaWRnZXQ+IHcgPSBRdFBsdWdpbkdyYXBoaWNzV2lkZ2V0OjpjcmVhdGUoZ3JhcGhpY3NX
aWRnZXQpOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0J3MgaW52aXNpYmxlIHVudGlsIHBy
b3Blcmx5IHBsYWNlZCBpbnRvIHRoZSBsYXlvdXQKKyAgICAgICAgICAgIHctPnNldEZyYW1lUmVj
dChJbnRSZWN0KDAsIDAsIDAsIDApKTsKKyAgICAgICAgICAgIHJldHVybiB3OwogICAgICAgICB9
CisKKyAgICAgICAgLy8gRklYTUU6IG1ha2UgdGhpbmdzIHdvcmsgZm9yIHdpZGdldGxlc3MgcGx1
Z2lucyBhcyB3ZWxsCisgICAgICAgIGRlbGV0ZSBvYmplY3Q7CiAgICAgfQorCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgZWxzZSB7IC8vIE5QQVBJIFBsdWdpbnMKICAgICAg
ICAgVmVjdG9yPFN0cmluZz4gcGFyYW1zID0gcGFyYW1OYW1lczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77748</attachid>
            <date>2011-01-01 12:04:23 -0800</date>
            <delta_ts>2011-01-01 12:06:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51330-20110101120422.patch</filename>
            <type>text/plain</type>
            <size>12342</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDlkOTNkYmQ0NTkwZTdlNjM0MmIyOTFiNDQyNDFmMGQwZjlkN2MzYjQuLmYxNTdkYjFjYzBi
MDEyYzQ4MmJhNDY5MTdjNTlkNzdmYzQ5MjI5YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAx
LTAxICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEltcHJvdmUgdGhl
IHJlYWRhYmlsaXR5IG9mIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMzMAorCisgICAg
ICAgIFJldmVydGVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsbHkgcGF0Y2ggdGhhdCBicm9rZSB0aGUg
cGx1Z2luIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIFRoZSBwbHVnaW4gZmFjdG9yeSBzaG91bGQg
aGF2ZSBhIGNoYW5jZSB0byBjcmVhdGUgYSBwbHVnaW4gZm9yIGFueSBtaW1lLXR5cGUsIG5vdCBq
dXN0IGZvcgorICAgICAgICBhcHBsaWNhdGlvbi94LXF0LXBsdWdpbi4KKyAgICAgICAgQWRkZWQg
YSB0ZXN0IGZvciB0aGUgcmVncmVzc2lvbiwgd2hpY2ggdGVzdHMgdGhlIGJhc2ljIGZ1bmN0aW9u
YWxpdHkgb2YgUVdlYlBsdWdpbkZhY3RvcnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogdGVzdHMvcXdlYnBsdWdpbmZhY3Rvcnkv
cXdlYnBsdWdpbmZhY3RvcnkucHJvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
cy90ZXN0cy5wcm86CisKIDIwMTAtMTItMjMgIEphbiBFcmlrIEhhbnNzZW4gIDxqaGFuc3NlbkBz
ZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5k
ZXggZmJmM2U4OTdjNmE5ZTkwNDUwODlmZTEyMmUyOWFiZmM5Y2M5ZGI3MS4uOWRhMTJiNGMxMjg1
N2MxYzk5YjhjNWJkM2RhODNkNDM4YzkxZTRkMSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTQ3NCw4ICsxNDc0LDEwIEBAIFBh
c3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29uc3Qg
SW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICBRU3RyaW5nIHVybFN0cih1cmwuc3RyaW5nKCkpOwog
ICAgIFFVcmwgcXVybCA9IHVybFN0cjsKIAorICAgIFFPYmplY3QqIG9iamVjdCA9IDA7CisKICAg
ICBpZiAobWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiB8fCBtaW1lVHlwZSA9
PSAiYXBwbGljYXRpb24veC1xdC1zdHlsZWQtd2lkZ2V0IikgewotICAgICAgICBRT2JqZWN0KiBv
YmplY3QgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmNyZWF0ZVBsdWdpbihjbGFzc2lkLCBxdXJsLCBw
YXJhbXMsIHZhbHVlcyk7CisgICAgICAgIG9iamVjdCA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+Y3Jl
YXRlUGx1Z2luKGNsYXNzaWQsIHF1cmwsIHBhcmFtcywgdmFsdWVzKTsKICNpZm5kZWYgUVRfTk9f
U1RZTEVfU1RZTEVTSEVFVAogICAgICAgICBRV2lkZ2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8
UVdpZGdldCo+KG9iamVjdCk7CiAgICAgICAgIGlmICh3aWRnZXQgJiYgbWltZVR5cGUgPT0gImFw
cGxpY2F0aW9uL3gtcXQtc3R5bGVkLXdpZGdldCIpIHsKQEAgLTE0OTcsNDQgKzE0OTksNDUgQEAg
UGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICB9CiAjZW5kaWYgLy8gUVRfTk9fU1RZTEVf
U1RZTEVTSEVFVAogCi0gICAgICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBRV2ViUGx1
Z2luRmFjdG9yeSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgp
OwotICAgICAgICAgICAgaWYgKGZhY3RvcnkpCi0gICAgICAgICAgICAgICAgb2JqZWN0ID0gZmFj
dG9yeS0+Y3JlYXRlKG1pbWVUeXBlLCBxdXJsLCBwYXJhbXMsIHZhbHVlcyk7CisgICAgaWYgKCFv
YmplY3QpIHsKKyAgICAgICAgUVdlYlBsdWdpbkZhY3RvcnkqIGZhY3RvcnkgPSBtX3dlYkZyYW1l
LT5wYWdlKCktPnBsdWdpbkZhY3RvcnkoKTsKKyAgICAgICAgaWYgKGZhY3RvcnkpCisgICAgICAg
ICAgICBvYmplY3QgPSBmYWN0b3J5LT5jcmVhdGUobWltZVR5cGUsIHF1cmwsIHBhcmFtcywgdmFs
dWVzKTsKKyAgICB9CisKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChRV2lkZ2V0KiB3
aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KG9iamVjdCkpIHsKKyAgICAgICAgICAgIFFX
aWRnZXQqIHBhcmVudFdpZGdldCA9IDA7CisgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+cGFn
ZSgpLT5kLT5jbGllbnQpCisgICAgICAgICAgICAgICAgcGFyZW50V2lkZ2V0ID0gcW9iamVjdF9j
YXN0PFFXaWRnZXQqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFyZW50
KCkpOworICAgICAgICAgICAgaWYgKHBhcmVudFdpZGdldCkgLy8gZG9uJ3QgcmVwYXJlbnQgdG8g
bm90aGluZyAoaS5lLiBrZWVwIHdoYXRldmVyIHBhcmVudCBRV2ViUGFnZTo6Y3JlYXRlUGx1Z2lu
KCkgY2hvc2UuCisgICAgICAgICAgICAgICAgd2lkZ2V0LT5zZXRQYXJlbnQocGFyZW50V2lkZ2V0
KTsKKyAgICAgICAgICAgIHdpZGdldC0+aGlkZSgpOworICAgICAgICAgICAgUmVmUHRyPFF0UGx1
Z2luV2lkZ2V0PiB3ID0gYWRvcHRSZWYobmV3IFF0UGx1Z2luV2lkZ2V0KCkpOworICAgICAgICAg
ICAgdy0+c2V0UGxhdGZvcm1XaWRnZXQod2lkZ2V0KTsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSBpdCdzIGludmlzaWJsZSB1bnRpbCBwcm9wZXJseSBwbGFjZWQgaW50byB0aGUgbGF5b3V0Cisg
ICAgICAgICAgICB3LT5zZXRGcmFtZVJlY3QoSW50UmVjdCgwLCAwLCAwLCAwKSk7CisgICAgICAg
ICAgICByZXR1cm4gdzsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChvYmplY3QpIHsKLSAgICAg
ICAgICAgIGlmIChRV2lkZ2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KG9iamVj
dCkpIHsKLSAgICAgICAgICAgICAgICBRV2lkZ2V0KiBwYXJlbnRXaWRnZXQgPSAwOwotICAgICAg
ICAgICAgICAgIGlmIChtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudCkKLSAgICAgICAgICAg
ICAgICAgICAgcGFyZW50V2lkZ2V0ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihtX3dlYkZyYW1l
LT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFyZW50KCkpOwotICAgICAgICAgICAgICAgIGlm
IChwYXJlbnRXaWRnZXQpIC8vIGRvbid0IHJlcGFyZW50IHRvIG5vdGhpbmcgKGkuZS4ga2VlcCB3
aGF0ZXZlciBwYXJlbnQgUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbigpIGNob3NlLgotICAgICAgICAg
ICAgICAgICAgICB3aWRnZXQtPnNldFBhcmVudChwYXJlbnRXaWRnZXQpOwotICAgICAgICAgICAg
ICAgIHdpZGdldC0+aGlkZSgpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxRdFBsdWdpbldpZGdl
dD4gdyA9IGFkb3B0UmVmKG5ldyBRdFBsdWdpbldpZGdldCgpKTsKLSAgICAgICAgICAgICAgICB3
LT5zZXRQbGF0Zm9ybVdpZGdldCh3aWRnZXQpOwotICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSBpdCdzIGludmlzaWJsZSB1bnRpbCBwcm9wZXJseSBwbGFjZWQgaW50byB0aGUgbGF5b3V0Ci0g
ICAgICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KEludFJlY3QoMCwgMCwgMCwgMCkpOwotICAg
ICAgICAgICAgICAgIHJldHVybiB3OwotICAgICAgICAgICAgfQorICAgICAgICBpZiAoUUdyYXBo
aWNzV2lkZ2V0KiBncmFwaGljc1dpZGdldCA9IHFvYmplY3RfY2FzdDxRR3JhcGhpY3NXaWRnZXQq
PihvYmplY3QpKSB7CisgICAgICAgICAgICBRR3JhcGhpY3NPYmplY3QqIHBhcmVudFdpZGdldCA9
IDA7CisgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQpCisgICAg
ICAgICAgICAgICAgcGFyZW50V2lkZ2V0ID0gcW9iamVjdF9jYXN0PFFHcmFwaGljc09iamVjdCo+
KG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7CisgICAgICAg
ICAgICBncmFwaGljc1dpZGdldC0+aGlkZSgpOworICAgICAgICAgICAgaWYgKHBhcmVudFdpZGdl
dCkgLy8gZG9uJ3QgcmVwYXJlbnQgdG8gbm90aGluZyAoaS5lLiBrZWVwIHdoYXRldmVyIHBhcmVu
dCBRV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKCkgY2hvc2UuCisgICAgICAgICAgICAgICAgZ3JhcGhp
Y3NXaWRnZXQtPnNldFBhcmVudEl0ZW0ocGFyZW50V2lkZ2V0KTsKKyAgICAgICAgICAgIFJlZlB0
cjxRdFBsdWdpbkdyYXBoaWNzV2lkZ2V0PiB3ID0gUXRQbHVnaW5HcmFwaGljc1dpZGdldDo6Y3Jl
YXRlKGdyYXBoaWNzV2lkZ2V0KTsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBpdCdzIGludmlz
aWJsZSB1bnRpbCBwcm9wZXJseSBwbGFjZWQgaW50byB0aGUgbGF5b3V0CisgICAgICAgICAgICB3
LT5zZXRGcmFtZVJlY3QoSW50UmVjdCgwLCAwLCAwLCAwKSk7CisgICAgICAgICAgICByZXR1cm4g
dzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBtYWtlIHRoaW5ncyB3b3JrIGZvciB3
aWRnZXRsZXNzIHBsdWdpbnMgYXMgd2VsbAorICAgICAgICBkZWxldGUgb2JqZWN0OworICAgIH0g
ICAgfQogCi0gICAgICAgICAgICBpZiAoUUdyYXBoaWNzV2lkZ2V0KiBncmFwaGljc1dpZGdldCA9
IHFvYmplY3RfY2FzdDxRR3JhcGhpY3NXaWRnZXQqPihvYmplY3QpKSB7Ci0gICAgICAgICAgICAg
ICAgUUdyYXBoaWNzT2JqZWN0KiBwYXJlbnRXaWRnZXQgPSAwOwotICAgICAgICAgICAgICAgIGlm
IChtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudCkKLSAgICAgICAgICAgICAgICAgICAgcGFy
ZW50V2lkZ2V0ID0gcW9iamVjdF9jYXN0PFFHcmFwaGljc09iamVjdCo+KG1fd2ViRnJhbWUtPnBh
Z2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7Ci0gICAgICAgICAgICAgICAgZ3JhcGhp
Y3NXaWRnZXQtPmhpZGUoKTsKLSAgICAgICAgICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBk
b24ndCByZXBhcmVudCB0byBub3RoaW5nIChpLmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQ
YWdlOjpjcmVhdGVQbHVnaW4oKSBjaG9zZS4KLSAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3NX
aWRnZXQtPnNldFBhcmVudEl0ZW0ocGFyZW50V2lkZ2V0KTsKLSAgICAgICAgICAgICAgICBSZWZQ
dHI8UXRQbHVnaW5HcmFwaGljc1dpZGdldD4gdyA9IFF0UGx1Z2luR3JhcGhpY3NXaWRnZXQ6OmNy
ZWF0ZShncmFwaGljc1dpZGdldCk7Ci0gICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0J3Mg
aW52aXNpYmxlIHVudGlsIHByb3Blcmx5IHBsYWNlZCBpbnRvIHRoZSBsYXlvdXQKLSAgICAgICAg
ICAgICAgICB3LT5zZXRGcmFtZVJlY3QoSW50UmVjdCgwLCAwLCAwLCAwKSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHc7Ci0gICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIEZJWE1FOiBt
YWtlIHRoaW5ncyB3b3JrIGZvciB3aWRnZXRsZXNzIHBsdWdpbnMgYXMgd2VsbAotICAgICAgICAg
ICAgZGVsZXRlIG9iamVjdDsKLSAgICAgICAgfQotICAgIH0KICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKICAgICBlbHNlIHsgLy8gTlBBUEkgUGx1Z2lucwogICAgICAgICBWZWN0b3I8
U3RyaW5nPiBwYXJhbXMgPSBwYXJhbU5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJwbHVnaW5mYWN0b3J5L3F3ZWJwbHVnaW5mYWN0b3J5LnBybyBiL1dlYktpdC9xdC90ZXN0
cy9xd2VicGx1Z2luZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkx
NWQ2MDQwMzI0ZWY5MjE0NGUwZmM1YTlhMjBiYTUyZjRhMDY3NgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8K
QEAgLTAsMCArMSwzIEBACitpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQVVRfRElSID0gLi4vLi4v
Li4vLi4KK2luY2x1ZGUoLi4vdGVzdHMucHJpKQorZXhpc3RzKCQke1RBUkdFVH0ucXJjKTpSRVNP
VVJDRVMgKz0gJCR7VEFSR0VUfS5xcmMKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2Vi
cGx1Z2luZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwIGIvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJwbHVnaW5mYWN0b3J5L3RzdF9xd2VicGx1Z2luZmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmJlNTM1MmY1ZWVlYTNjOThkYTNjYjM4ZTE2YzJjMjRlZTkxNTliNgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3Rv
cnkuY3BwCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwOSBKYWt1
YiBXaWVjem9yZWsgPGZhdzIxN0BnbWFpbC5jb20+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgPFF0VGVzdC9RdFRl
c3Q+CisKKyNpbmNsdWRlIDxxZ3JhcGhpY3N3aWRnZXQuaD4KKyNpbmNsdWRlIDxxdmFyaWFudC5o
PgorI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgorI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CisjaW5jbHVk
ZSA8cXdlYnBsdWdpbmZhY3RvcnkuaD4KKyNpbmNsdWRlIDxxd2Vidmlldy5oPgorCitjbGFzcyBU
ZXN0UGx1Z2luUVdpZGdldCA6IHB1YmxpYyBRV2lkZ2V0IHsKK3B1YmxpYzoKKyAgICBUZXN0UGx1
Z2luUVdpZGdldChjb25zdCBRU3RyaW5nJiBtdHlwZQorICAgICAgICAgICAgICAgLCBjb25zdCBR
VXJsJiBuZXdVcmwKKyAgICAgICAgICAgICAgICwgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ05hbWVz
CisgICAgICAgICAgICAgICAsIGNvbnN0IFFTdHJpbmdMaXN0JiBhcmdWYWxzCisgICAgICAgICAg
ICAgICAsIFFXaWRnZXQqIHBhcmVudCA9IDApCisgICAgICAgIDogVGVzdFBsdWdpblFXaWRnZXQo
cGFyZW50KQorICAgICAgICAsIG1pbWVUeXBlKG10eXBlKQorICAgICAgICAsIHVybChuZXdVcmwp
CisgICAgICAgICwgYXJndW1lbnROYW1lcyhhcmdOYW1lcykKKyAgICAgICAgLCBhcmd1bWVudFZh
bHVlcyhhcmdWYWxzKQorICAgIHsKKyAgICB9CisKKyAgICBRU3RyaW5nIG1pbWVUeXBlOworICAg
IFFVcmwgdXJsOworICAgIFFTdHJpbmdMaXN0IGFyZ3VtZW50TmFtZXM7CisgICAgUVN0cmluZ0xp
c3QgYXJndW1lbnRWYWx1ZXM7Cit9OworCitjbGFzcyBUZXN0UGx1Z2luUUdyYXBoaWNzV2lkZ2V0
IDogcHVibGljIFFHcmFwaGljc1dpZGdldCB7CitwdWJsaWM6CisgICAgVGVzdFBsdWdpblFHcmFw
aGljc1dpZGdldChjb25zdCBRU3RyaW5nJiBtdHlwZQorICAgICAgICAgICAgICAgLCBjb25zdCBR
VXJsJiBuZXdVcmwKKyAgICAgICAgICAgICAgICwgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ05hbWVz
CisgICAgICAgICAgICAgICAsIGNvbnN0IFFTdHJpbmdMaXN0JiBhcmdWYWxzCisgICAgICAgICAg
ICAgICAsIFFHcmFwaGljc09iamVjdCogcGFyZW50ID0gMCkKKyAgICAgICAgOiBUZXN0UGx1Z2lu
UUdyYXBoaWNzV2lkZ2V0KHBhcmVudCkKKyAgICAgICAgLCBtaW1lVHlwZShtdHlwZSkKKyAgICAg
ICAgLCB1cmwobmV3VXJsKQorICAgICAgICAsIGFyZ3VtZW50TmFtZXMoYXJnTmFtZXMpCisgICAg
ICAgICwgYXJndW1lbnRWYWx1ZXMoYXJnVmFscykKKyAgICB7CisgICAgfQorCisgICAgUVN0cmlu
ZyBtaW1lVHlwZTsKKyAgICBRVXJsIHVybDsKKyAgICBRU3RyaW5nTGlzdCBhcmd1bWVudE5hbWVz
OworICAgIFFTdHJpbmdMaXN0IGFyZ3VtZW50VmFsdWVzOworfTsKKworY2xhc3MgVGVzdFBsdWdp
bkZhY3RvcnkgOiBwdWJsaWMgUVdlYlBsdWdpbkZhY3RvcnkgeworcHVibGljOgorICAgIFRlc3RQ
bHVnaW5GYWN0b3J5KFFPYmplY3QqIHBhcmVudCA9IDApCisgICAgICAgIDogUVdlYlBsdWdpbkZh
Y3RvcnkocGFyZW50KQorICAgIHsKKyAgICAgICAgUGx1Z2luIHBsdWdpbjsKKyAgICAgICAgTWlt
ZVR5cGUgbWltZVR5cGU7CisgICAgICAgIG1pbWVUeXBlLmRlc2NyaXB0aW9uID0gIkN1c3RvbSI7
CisgICAgICAgIG1pbWVUeXBlLmZpbGVFeHRlbnNpb25zLmFwcGVuZCgiY3VzdG9tIik7CisgICAg
ICAgIG1pbWVUeXBlLm5hbWUgPSAiYXBwbGljYXRpb24veC1jdXN0b20iOworICAgICAgICBwbHVn
aW4ubWltZVR5cGVzLmFwcGVuZChtaW1lVHlwZSk7CisgICAgICAgIHBsdWdpbi5uYW1lID0gIkN1
c3RvbSBQbHVnaW4iOworICAgICAgICBwbHVnaW4uZGVzY3JpcHRpb24gPSAiVGVzdGluZyBRdFdl
YmtpdCBwbHVnaW4gZnVuY3Rpb25hbGl0eSI7CisgICAgICAgIG1fc3VwcG9ydGVkUGx1Z2lucy5h
cHBlbmQocGx1Z2luKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFFMaXN0PFBsdWdpbj4gcGx1Z2lu
cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9zdXBwb3J0ZWRQbHVnaW5zOworICAg
IH0KKworICAgIHZpcnR1YWwgUU9iamVjdCAqY3JlYXRlKGNvbnN0IFFTdHJpbmcmIG1pbWVUeXBl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFVcmwmIHVybCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nTGlzdCYgYXJndW1lbnROYW1lcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nTGlzdCYgYXJndW1lbnRWYWx1
ZXMpIGNvbnN0CisgICAgeworICAgICAgICBRT2JqZWN0KiBwbHVnaW4gPSAwOworICAgICAgICBp
ZiAobWltZVR5cGUgPSAiYXBwbGljYXRpb24veC1xdC13aWRnZXQiKQorICAgICAgICAgICAgcGx1
Z2luID0gbmV3IFRlc3RQbHVnaW5RV2lkZ2V0KG1pbWVUeXBlLCB1cmwsIGFyZ3VtZW50TmFtZXMs
IGFyZ3VtZW50VmFsdWVzKTsKKyAgICAgICAgZWxzZSBpZiAobWltZVR5cGUgPSAiYXBwbGljYXRp
b24veC1xdC1ncmFwaGljc3dpZGdldCIpCisgICAgICAgICAgICBwbHVnaW4gPSBuZXcgVGVzdFBs
dWdpblFHcmFwaGljc1dpZGdldChtaW1lVHlwZSwgdXJsLCBhcmd1bWVudE5hbWVzLCBhcmd1bWVu
dFZhbHVlcyk7CisgICAgICAgIG1fcGx1Z2lucy5hcHBlbmQocGx1Z2luKTsKKyAgICAgICAgcmV0
dXJuIHBsdWdpbjsKKyAgICB9CisKKyAgICBRTGlzdDxUZXN0UGx1Z2luKj4gZ2V0UGx1Z2lucygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9wbHVnaW5zOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBRTGlzdDxQbHVnaW4+IG1fc3VwcG9ydGVkUGx1Z2luczsKKyAgICBtdXRhYmxlIFFM
aXN0PFRlc3RQbHVnaW4qPiBtX3BsdWdpbnM7Cit9OworCitjbGFzcyB0c3RfUVdlYlBsdWdpbkZh
Y3RvcnkgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKworcHVibGljOgorCitwcml2
YXRlIHNsb3RzOgorICAgIHZvaWQgcGx1Z2luV2l0aEFyZ3VtZW50cygpOworfTsKKwordm9pZCB0
c3RfUVdlYlBsdWdpbkZhY3Rvcnk6OnBsdWdpbldpdGhBcmd1bWVudHMoKQoreworICAgIFRlc3RQ
bHVnaW5GYWN0b3J5IGZhY3Rvcnk7CisgICAgUVdlYlZpZXcgdmlldzsKKyAgICBRV2ViUGFnZSog
cGFnZSA9IHZpZXcucGFnZSgpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+
c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUpOworICAgIHBh
Z2UtPnNldFBsdWdpbkZhY3RvcnkoJmZhY3RvcnkpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5z
ZXRIdG1sKCI8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+IgorICAgICAgICAgICAgICAgICAgICAi
PG9iamVjdCB0eXBlPVwiYXBwbGljYXRpb24veC1xdC13aWRnZXRcIiBpZD1cImZvb2JhclwiIGRh
dGE9XCJkYXRhVXJsXCI+IgorICAgICAgICAgICAgICAgICAgICAgICAgIjxwYXJhbSBuYW1lPVwi
a2V5XCIgdmFsdWU9XCJ2YWx1ZVwiPjwvcGFyYW0+IgorICAgICAgICAgICAgICAgICAgICAiPC9v
YmplY3Q+MTIzPC9ib2R5PjwvaHRtbD4iKTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT50b1Bs
YWluVGV4dCgpOworICAgIFFMaXN0PFRlc3RQbHVnaW4qPiBwbHVnaW5zID0gZmFjdG9yeS5nZXRQ
bHVnaW5zKCk7CisgICAgUVZFUklGWShwbHVnaW5zLnNpemUoKSA9PSAxKTsKKyAgICBUZXN0UGx1
Z2luKiBmaXJzdCA9IHBsdWdpbnMuZmlyc3QoKTsKKyAgICBRVkVSSUZZKGZpcnN0LT5taW1lVHlw
ZSA9PSAiYXBwbGljYXRpb24veC1xdC13aWRnZXQiKTsKKyAgICBRVkVSSUZZKGZpcnN0LT51cmwg
PT0gUVVybCgiZGF0YVVybCIpKTsKKyAgICBpbnQgaW5kZXggPSBmaXJzdC0+YXJndW1lbnROYW1l
cy5pbmRleE9mKCJrZXkiKTsKKyAgICBRVkVSSUZZKGluZGV4ID49IDApOworICAgIFFWRVJJRlko
Zmlyc3QtPmFyZ3VtZW50VmFsdWVzW2luZGV4XSA9PSAidmFsdWUiKTsKK30KKworCitRVEVTVF9N
QUlOKHRzdF9RV2ViUGx1Z2luRmFjdG9yeSkKKworI2luY2x1ZGUgInRzdF9xd2VicGx1Z2luZmFj
dG9yeS5tb2MiCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJvIGIvV2ViS2l0
L3F0L3Rlc3RzL3Rlc3RzLnBybwppbmRleCAyMmZlY2U1NDE4M2I4YjY2MjY3MGE2YzYyNjgzYTdm
MDViYmI5NTM5Li42YjJjYTczOTczODY2ZTQ0NjQxYjA4OTM0MWU3MjM4MjM3Y2I1NWY5IDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJvCisrKyBiL1dlYktpdC9xdC90ZXN0cy90
ZXN0cy5wcm8KQEAgLTEsNCArMSw0IEBACiAKIFRFTVBMQVRFID0gc3ViZGlycwotU1VCRElSUyA9
IHF3ZWJmcmFtZSBxd2VicGFnZSBxd2ViZWxlbWVudCBxZ3JhcGhpY3N3ZWJ2aWV3IHF3ZWJoaXN0
b3J5aW50ZXJmYWNlIHF3ZWJ2aWV3IHF3ZWJoaXN0b3J5IHF3ZWJpbnNwZWN0b3IgaHlicmlkUGl4
bWFwCitTVUJESVJTID0gcXdlYmZyYW1lIHF3ZWJwYWdlIHF3ZWJlbGVtZW50IHFncmFwaGljc3dl
YnZpZXcgcXdlYmhpc3RvcnlpbnRlcmZhY2UgcXdlYnZpZXcgcXdlYmhpc3RvcnkgcXdlYmluc3Bl
Y3RvciBxd2VicGx1Z2luZmFjdG9yeSBoeWJyaWRQaXhtYXAKIFNVQkRJUlMgKz0gYmVuY2htYXJr
cy9wYWludGluZyBiZW5jaG1hcmtzL2xvYWRpbmcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77750</attachid>
            <date>2011-01-01 12:06:47 -0800</date>
            <delta_ts>2011-01-01 12:16:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51330-20110101120646.patch</filename>
            <type>text/plain</type>
            <size>12398</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDlkOTNkYmQ0NTkwZTdlNjM0MmIyOTFiNDQyNDFmMGQwZjlkN2MzYjQuLmYxNTdkYjFjYzBi
MDEyYzQ4MmJhNDY5MTdjNTlkNzdmYzQ5MjI5YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAx
LTAxICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEltcHJvdmUgdGhl
IHJlYWRhYmlsaXR5IG9mIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMzMAorCisgICAg
ICAgIFJldmVydGVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsbHkgcGF0Y2ggdGhhdCBicm9rZSB0aGUg
cGx1Z2luIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIFRoZSBwbHVnaW4gZmFjdG9yeSBzaG91bGQg
aGF2ZSBhIGNoYW5jZSB0byBjcmVhdGUgYSBwbHVnaW4gZm9yIGFueSBtaW1lLXR5cGUsIG5vdCBq
dXN0IGZvcgorICAgICAgICBhcHBsaWNhdGlvbi94LXF0LXBsdWdpbi4KKyAgICAgICAgQWRkZWQg
YSB0ZXN0IGZvciB0aGUgcmVncmVzc2lvbiwgd2hpY2ggdGVzdHMgdGhlIGJhc2ljIGZ1bmN0aW9u
YWxpdHkgb2YgUVdlYlBsdWdpbkZhY3RvcnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogdGVzdHMvcXdlYnBsdWdpbmZhY3Rvcnkv
cXdlYnBsdWdpbmZhY3RvcnkucHJvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
cy90ZXN0cy5wcm86CisKIDIwMTAtMTItMjMgIEphbiBFcmlrIEhhbnNzZW4gIDxqaGFuc3NlbkBz
ZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5k
ZXggZmJmM2U4OTdjNmE5ZTkwNDUwODlmZTEyMmUyOWFiZmM5Y2M5ZGI3MS4uOGI4NjA2YWI5Yzhl
YmNlN2E1OGNkZmUxMTVhMjAzYWM2NzE2Nzc4MyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTQ3NCw4ICsxNDc0LDEwIEBAIFBh
c3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29uc3Qg
SW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICBRU3RyaW5nIHVybFN0cih1cmwuc3RyaW5nKCkpOwog
ICAgIFFVcmwgcXVybCA9IHVybFN0cjsKIAorICAgIFFPYmplY3QqIG9iamVjdCA9IDA7CisKICAg
ICBpZiAobWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiB8fCBtaW1lVHlwZSA9
PSAiYXBwbGljYXRpb24veC1xdC1zdHlsZWQtd2lkZ2V0IikgewotICAgICAgICBRT2JqZWN0KiBv
YmplY3QgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmNyZWF0ZVBsdWdpbihjbGFzc2lkLCBxdXJsLCBw
YXJhbXMsIHZhbHVlcyk7CisgICAgICAgIG9iamVjdCA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+Y3Jl
YXRlUGx1Z2luKGNsYXNzaWQsIHF1cmwsIHBhcmFtcywgdmFsdWVzKTsKICNpZm5kZWYgUVRfTk9f
U1RZTEVfU1RZTEVTSEVFVAogICAgICAgICBRV2lkZ2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8
UVdpZGdldCo+KG9iamVjdCk7CiAgICAgICAgIGlmICh3aWRnZXQgJiYgbWltZVR5cGUgPT0gImFw
cGxpY2F0aW9uL3gtcXQtc3R5bGVkLXdpZGdldCIpIHsKQEAgLTE0OTUsNDYgKzE0OTcsNDcgQEAg
UGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiBwbHVnaW5TaXplLAogCiAgICAgICAgICAgICB3aWRnZXQtPnNldFN0eWxlU2hl
ZXQoc3R5bGVTaGVldCk7CiAgICAgICAgIH0KKyAgICB9CiAjZW5kaWYgLy8gUVRfTk9fU1RZTEVf
U1RZTEVTSEVFVAogCi0gICAgICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBRV2ViUGx1
Z2luRmFjdG9yeSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgp
OwotICAgICAgICAgICAgaWYgKGZhY3RvcnkpCi0gICAgICAgICAgICAgICAgb2JqZWN0ID0gZmFj
dG9yeS0+Y3JlYXRlKG1pbWVUeXBlLCBxdXJsLCBwYXJhbXMsIHZhbHVlcyk7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAob2JqZWN0KSB7Ci0gICAgICAgICAgICBpZiAoUVdpZGdldCogd2lkZ2V0
ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihvYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgUVdp
ZGdldCogcGFyZW50V2lkZ2V0ID0gMDsKLSAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+
cGFnZSgpLT5kLT5jbGllbnQpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFv
YmplY3RfY2FzdDxRV2lkZ2V0Kj4obV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQtPnBsdWdp
blBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCBy
ZXBhcmVudCB0byBub3RoaW5nIChpLmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpj
cmVhdGVQbHVnaW4oKSBjaG9zZS4KLSAgICAgICAgICAgICAgICAgICAgd2lkZ2V0LT5zZXRQYXJl
bnQocGFyZW50V2lkZ2V0KTsKLSAgICAgICAgICAgICAgICB3aWRnZXQtPmhpZGUoKTsKLSAgICAg
ICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5XaWRnZXQ+IHcgPSBhZG9wdFJlZihuZXcgUXRQbHVn
aW5XaWRnZXQoKSk7Ci0gICAgICAgICAgICAgICAgdy0+c2V0UGxhdGZvcm1XaWRnZXQod2lkZ2V0
KTsKLSAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgaXQncyBpbnZpc2libGUgdW50aWwgcHJv
cGVybHkgcGxhY2VkIGludG8gdGhlIGxheW91dAotICAgICAgICAgICAgICAgIHctPnNldEZyYW1l
UmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdzsKLSAg
ICAgICAgICAgIH0KKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBRV2ViUGx1Z2luRmFjdG9y
eSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgpOworICAgICAg
ICBpZiAoZmFjdG9yeSkKKyAgICAgICAgICAgIG9iamVjdCA9IGZhY3RvcnktPmNyZWF0ZShtaW1l
VHlwZSwgcXVybCwgcGFyYW1zLCB2YWx1ZXMpOworICAgIH0KIAotICAgICAgICAgICAgaWYgKFFH
cmFwaGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzV2lk
Z2V0Kj4ob2JqZWN0KSkgewotICAgICAgICAgICAgICAgIFFHcmFwaGljc09iamVjdCogcGFyZW50
V2lkZ2V0ID0gMDsKLSAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5j
bGllbnQpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3RfY2FzdDxR
R3JhcGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFy
ZW50KCkpOwotICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5oaWRlKCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBhcmVudFdpZGdldCkgLy8gZG9uJ3QgcmVwYXJlbnQgdG8gbm90aGluZyAo
aS5lLiBrZWVwIHdoYXRldmVyIHBhcmVudCBRV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKCkgY2hvc2Uu
Ci0gICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5zZXRQYXJlbnRJdGVtKHBhcmVu
dFdpZGdldCk7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFF0UGx1Z2luR3JhcGhpY3NXaWRnZXQ+
IHcgPSBRdFBsdWdpbkdyYXBoaWNzV2lkZ2V0OjpjcmVhdGUoZ3JhcGhpY3NXaWRnZXQpOwotICAg
ICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBpdCdzIGludmlzaWJsZSB1bnRpbCBwcm9wZXJseSBw
bGFjZWQgaW50byB0aGUgbGF5b3V0Ci0gICAgICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KElu
dFJlY3QoMCwgMCwgMCwgMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiB3OwotICAgICAgICAg
ICAgfQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IHFv
YmplY3RfY2FzdDxRV2lkZ2V0Kj4ob2JqZWN0KSkgeworICAgICAgICAgICAgUVdpZGdldCogcGFy
ZW50V2lkZ2V0ID0gMDsKKyAgICAgICAgICAgIGlmIChtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNs
aWVudCkKKyAgICAgICAgICAgICAgICBwYXJlbnRXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdl
dCo+KG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7CisgICAg
ICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCByZXBhcmVudCB0byBub3RoaW5nIChp
LmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKSBjaG9zZS4K
KyAgICAgICAgICAgICAgICB3aWRnZXQtPnNldFBhcmVudChwYXJlbnRXaWRnZXQpOworICAgICAg
ICAgICAgd2lkZ2V0LT5oaWRlKCk7CisgICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5XaWRnZXQ+
IHcgPSBhZG9wdFJlZihuZXcgUXRQbHVnaW5XaWRnZXQoKSk7CisgICAgICAgICAgICB3LT5zZXRQ
bGF0Zm9ybVdpZGdldCh3aWRnZXQpOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0J3MgaW52
aXNpYmxlIHVudGlsIHByb3Blcmx5IHBsYWNlZCBpbnRvIHRoZSBsYXlvdXQKKyAgICAgICAgICAg
IHctPnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKKyAgICAgICAgICAgIHJldHVy
biB3OworICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIEZJWE1FOiBtYWtlIHRoaW5ncyB3b3Jr
IGZvciB3aWRnZXRsZXNzIHBsdWdpbnMgYXMgd2VsbAotICAgICAgICAgICAgZGVsZXRlIG9iamVj
dDsKKyAgICAgICAgaWYgKFFHcmFwaGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0
X2Nhc3Q8UUdyYXBoaWNzV2lkZ2V0Kj4ob2JqZWN0KSkgeworICAgICAgICAgICAgUUdyYXBoaWNz
T2JqZWN0KiBwYXJlbnRXaWRnZXQgPSAwOworICAgICAgICAgICAgaWYgKG1fd2ViRnJhbWUtPnBh
Z2UoKS0+ZC0+Y2xpZW50KQorICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3Rf
Y2FzdDxRR3JhcGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1
Z2luUGFyZW50KCkpOworICAgICAgICAgICAgZ3JhcGhpY3NXaWRnZXQtPmhpZGUoKTsKKyAgICAg
ICAgICAgIGlmIChwYXJlbnRXaWRnZXQpIC8vIGRvbid0IHJlcGFyZW50IHRvIG5vdGhpbmcgKGku
ZS4ga2VlcCB3aGF0ZXZlciBwYXJlbnQgUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbigpIGNob3NlLgor
ICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5zZXRQYXJlbnRJdGVtKHBhcmVudFdpZGdl
dCk7CisgICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5HcmFwaGljc1dpZGdldD4gdyA9IFF0UGx1
Z2luR3JhcGhpY3NXaWRnZXQ6OmNyZWF0ZShncmFwaGljc1dpZGdldCk7CisgICAgICAgICAgICAv
LyBNYWtlIHN1cmUgaXQncyBpbnZpc2libGUgdW50aWwgcHJvcGVybHkgcGxhY2VkIGludG8gdGhl
IGxheW91dAorICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KEludFJlY3QoMCwgMCwgMCwgMCkp
OworICAgICAgICAgICAgcmV0dXJuIHc7CiAgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTog
bWFrZSB0aGluZ3Mgd29yayBmb3Igd2lkZ2V0bGVzcyBwbHVnaW5zIGFzIHdlbGwKKyAgICAgICAg
ZGVsZXRlIG9iamVjdDsKICAgICB9CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICBlbHNlIHsgLy8gTlBBUEkgUGx1Z2lucwogICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXJh
bXMgPSBwYXJhbU5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwbHVnaW5m
YWN0b3J5L3F3ZWJwbHVnaW5mYWN0b3J5LnBybyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkxNWQ2MDQwMzI0ZWY5
MjE0NGUwZmM1YTlhMjBiYTUyZjRhMDY3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC90
ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KQEAgLTAsMCArMSwz
IEBACitpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQVVRfRElSID0gLi4vLi4vLi4vLi4KK2luY2x1
ZGUoLi4vdGVzdHMucHJpKQorZXhpc3RzKCQke1RBUkdFVH0ucXJjKTpSRVNPVVJDRVMgKz0gJCR7
VEFSR0VUfS5xcmMKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2luZmFjdG9y
eS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwbHVnaW5m
YWN0b3J5L3RzdF9xd2VicGx1Z2luZmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRkNGQ1NzI4NTVk
NDRlOWEzNzhlNTc1YTQ2ZTZmY2VlZDQ1MTA4NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9x
dC90ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwCkBAIC0w
LDAgKzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworCisjaW5jbHVkZSA8UXRUZXN0L1F0VGVz
dD4KKworI2luY2x1ZGUgPHFncmFwaGljc3dpZGdldC5oPgorI2luY2x1ZGUgPHF2YXJpYW50Lmg+
CisjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CisjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKyNpbmNsdWRl
IDxxd2VicGx1Z2luZmFjdG9yeS5oPgorI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+CisKK2NsYXNzIFRl
c3RQbHVnaW5RV2lkZ2V0IDogcHVibGljIFFXaWRnZXQgeworcHVibGljOgorICAgIFRlc3RQbHVn
aW5RV2lkZ2V0KGNvbnN0IFFTdHJpbmcmIG10eXBlCisgICAgICAgICAgICAgICAsIGNvbnN0IFFV
cmwmIG5ld1VybAorICAgICAgICAgICAgICAgLCBjb25zdCBRU3RyaW5nTGlzdCYgYXJnTmFtZXMK
KyAgICAgICAgICAgICAgICwgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ1ZhbHMKKyAgICAgICAgICAg
ICAgICwgUVdpZGdldCogcGFyZW50ID0gMCkKKyAgICAgICAgOiBUZXN0UGx1Z2luUVdpZGdldChw
YXJlbnQpCisgICAgICAgICwgbWltZVR5cGUobXR5cGUpCisgICAgICAgICwgdXJsKG5ld1VybCkK
KyAgICAgICAgLCBhcmd1bWVudE5hbWVzKGFyZ05hbWVzKQorICAgICAgICAsIGFyZ3VtZW50VmFs
dWVzKGFyZ1ZhbHMpCisgICAgeworICAgIH0KKworICAgIFFTdHJpbmcgbWltZVR5cGU7CisgICAg
UVVybCB1cmw7CisgICAgUVN0cmluZ0xpc3QgYXJndW1lbnROYW1lczsKKyAgICBRU3RyaW5nTGlz
dCBhcmd1bWVudFZhbHVlczsKK307CisKK2NsYXNzIFRlc3RQbHVnaW5RR3JhcGhpY3NXaWRnZXQg
OiBwdWJsaWMgUUdyYXBoaWNzV2lkZ2V0IHsKK3B1YmxpYzoKKyAgICBUZXN0UGx1Z2luUUdyYXBo
aWNzV2lkZ2V0KGNvbnN0IFFTdHJpbmcmIG10eXBlCisgICAgICAgICAgICAgICAsIGNvbnN0IFFV
cmwmIG5ld1VybAorICAgICAgICAgICAgICAgLCBjb25zdCBRU3RyaW5nTGlzdCYgYXJnTmFtZXMK
KyAgICAgICAgICAgICAgICwgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ1ZhbHMKKyAgICAgICAgICAg
ICAgICwgUUdyYXBoaWNzT2JqZWN0KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFRlc3RQbHVnaW5R
R3JhcGhpY3NXaWRnZXQocGFyZW50KQorICAgICAgICAsIG1pbWVUeXBlKG10eXBlKQorICAgICAg
ICAsIHVybChuZXdVcmwpCisgICAgICAgICwgYXJndW1lbnROYW1lcyhhcmdOYW1lcykKKyAgICAg
ICAgLCBhcmd1bWVudFZhbHVlcyhhcmdWYWxzKQorICAgIHsKKyAgICB9CisKKyAgICBRU3RyaW5n
IG1pbWVUeXBlOworICAgIFFVcmwgdXJsOworICAgIFFTdHJpbmdMaXN0IGFyZ3VtZW50TmFtZXM7
CisgICAgUVN0cmluZ0xpc3QgYXJndW1lbnRWYWx1ZXM7Cit9OworCitjbGFzcyBUZXN0UGx1Z2lu
RmFjdG9yeSA6IHB1YmxpYyBRV2ViUGx1Z2luRmFjdG9yeSB7CitwdWJsaWM6CisgICAgVGVzdFBs
dWdpbkZhY3RvcnkoUU9iamVjdCogcGFyZW50ID0gMCkKKyAgICAgICAgOiBRV2ViUGx1Z2luRmFj
dG9yeShwYXJlbnQpCisgICAgeworICAgICAgICBQbHVnaW4gcGx1Z2luOworICAgICAgICBNaW1l
VHlwZSBtaW1lVHlwZTsKKyAgICAgICAgbWltZVR5cGUuZGVzY3JpcHRpb24gPSAiQ3VzdG9tIjsK
KyAgICAgICAgbWltZVR5cGUuZmlsZUV4dGVuc2lvbnMuYXBwZW5kKCJjdXN0b20iKTsKKyAgICAg
ICAgbWltZVR5cGUubmFtZSA9ICJhcHBsaWNhdGlvbi94LWN1c3RvbSI7CisgICAgICAgIHBsdWdp
bi5taW1lVHlwZXMuYXBwZW5kKG1pbWVUeXBlKTsKKyAgICAgICAgcGx1Z2luLm5hbWUgPSAiQ3Vz
dG9tIFBsdWdpbiI7CisgICAgICAgIHBsdWdpbi5kZXNjcmlwdGlvbiA9ICJUZXN0aW5nIFF0V2Vi
a2l0IHBsdWdpbiBmdW5jdGlvbmFsaXR5IjsKKyAgICAgICAgbV9zdXBwb3J0ZWRQbHVnaW5zLmFw
cGVuZChwbHVnaW4pOworICAgIH0KKworICAgIHZpcnR1YWwgUUxpc3Q8UGx1Z2luPiBwbHVnaW5z
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3N1cHBvcnRlZFBsdWdpbnM7CisgICAg
fQorCisgICAgdmlydHVhbCBRT2JqZWN0ICpjcmVhdGUoY29uc3QgUVN0cmluZyYgbWltZVR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVVybCYgdXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0JiBhcmd1bWVudE5hbWVzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmdMaXN0JiBhcmd1bWVudFZhbHVl
cykgY29uc3QKKyAgICB7CisgICAgICAgIFFPYmplY3QqIHBsdWdpbiA9IDA7CisgICAgICAgIGlm
IChtaW1lVHlwZSA9ICJhcHBsaWNhdGlvbi94LXF0LXdpZGdldCIpCisgICAgICAgICAgICBwbHVn
aW4gPSBuZXcgVGVzdFBsdWdpblFXaWRnZXQobWltZVR5cGUsIHVybCwgYXJndW1lbnROYW1lcywg
YXJndW1lbnRWYWx1ZXMpOworICAgICAgICBlbHNlIGlmIChtaW1lVHlwZSA9ICJhcHBsaWNhdGlv
bi94LXF0LWdyYXBoaWNzd2lkZ2V0IikKKyAgICAgICAgICAgIHBsdWdpbiA9IG5ldyBUZXN0UGx1
Z2luUUdyYXBoaWNzV2lkZ2V0KG1pbWVUeXBlLCB1cmwsIGFyZ3VtZW50TmFtZXMsIGFyZ3VtZW50
VmFsdWVzKTsKKyAgICAgICAgbV9wbHVnaW5zLmFwcGVuZChwbHVnaW4pOworICAgICAgICByZXR1
cm4gcGx1Z2luOworICAgIH0KKworICAgIFFMaXN0PFRlc3RQbHVnaW4qPiBnZXRQbHVnaW5zKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3BsdWdpbnM7CisgICAgfQorCitwcml2YXRl
OgorICAgIFFMaXN0PFBsdWdpbj4gbV9zdXBwb3J0ZWRQbHVnaW5zOworICAgIG11dGFibGUgUUxp
c3Q8VGVzdFBsdWdpbio+IG1fcGx1Z2luczsKK307CisKK2NsYXNzIHRzdF9RV2ViUGx1Z2luRmFj
dG9yeSA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorCitwdWJsaWM6CisKK3ByaXZh
dGUgc2xvdHM6CisgICAgdm9pZCBwbHVnaW5XaXRoQXJndW1lbnRzKCk7Cit9OworCit2b2lkIHRz
dF9RV2ViUGx1Z2luRmFjdG9yeTo6cGx1Z2luV2l0aEFyZ3VtZW50cygpCit7CisgICAgVGVzdFBs
dWdpbkZhY3RvcnkgZmFjdG9yeTsKKyAgICBRV2ViVmlldyB2aWV3OworICAgIFFXZWJQYWdlKiBw
YWdlID0gdmlldy5wYWdlKCk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5z
ZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCwgdHJ1ZSk7CisgICAgcGFn
ZS0+c2V0UGx1Z2luRmFjdG9yeSgmZmFjdG9yeSk7CisgICAgcGFnZS0+bWFpbkZyYW1lKCktPnNl
dEh0bWwoIjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT4iCisgICAgICAgICAgICAgICAgICAgICI8
b2JqZWN0IHR5cGU9XCJhcHBsaWNhdGlvbi94LXF0LXdpZGdldFwiIGlkPVwiZm9vYmFyXCIgZGF0
YT1cImRhdGFVcmxcIj4iCisgICAgICAgICAgICAgICAgICAgICAgICAiPHBhcmFtIG5hbWU9XCJr
ZXlcIiB2YWx1ZT1cInZhbHVlXCI+PC9wYXJhbT4iCisgICAgICAgICAgICAgICAgICAgICI8L29i
amVjdD4xMjM8L2JvZHk+PC9odG1sPiIpOworCisgICAgcGFnZS0+bWFpbkZyYW1lKCktPnRvUGxh
aW5UZXh0KCk7CisgICAgUUxpc3Q8VGVzdFBsdWdpbio+IHBsdWdpbnMgPSBmYWN0b3J5LmdldFBs
dWdpbnMoKTsKKyAgICBRVkVSSUZZKHBsdWdpbnMuc2l6ZSgpID09IDEpOworICAgIFRlc3RQbHVn
aW4qIGZpcnN0ID0gcGx1Z2lucy5maXJzdCgpOworICAgIFFWRVJJRlkoZmlyc3QtPm1pbWVUeXBl
ID09ICJhcHBsaWNhdGlvbi94LXF0LXdpZGdldCIpOworICAgIFFWRVJJRlkoZmlyc3QtPnVybCA9
PSBRVXJsKCJkYXRhVXJsIikpOworICAgIGludCBpbmRleCA9IGZpcnN0LT5hcmd1bWVudE5hbWVz
LmluZGV4T2YoImtleSIpOworICAgIFFWRVJJRlkoaW5kZXggPj0gMCk7CisgICAgUVZFUklGWShm
aXJzdC0+YXJndW1lbnRWYWx1ZXNbaW5kZXhdID09ICJ2YWx1ZSIpOworfQorCisKK1FURVNUX01B
SU4odHN0X1FXZWJQbHVnaW5GYWN0b3J5KQorCisjaW5jbHVkZSAidHN0X3F3ZWJwbHVnaW5mYWN0
b3J5Lm1vYyIKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy90ZXN0cy5wcm8gYi9XZWJLaXQv
cXQvdGVzdHMvdGVzdHMucHJvCmluZGV4IDIyZmVjZTU0MTgzYjhiNjYyNjcwYTZjNjI2ODNhN2Yw
NWJiYjk1MzkuLjZiMmNhNzM5NzM4NjZlNDQ2NDFiMDg5MzQxZTcyMzgyMzdjYjU1ZjkgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy90ZXN0cy5wcm8KKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3Rl
c3RzLnBybwpAQCAtMSw0ICsxLDQgQEAKIAogVEVNUExBVEUgPSBzdWJkaXJzCi1TVUJESVJTID0g
cXdlYmZyYW1lIHF3ZWJwYWdlIHF3ZWJlbGVtZW50IHFncmFwaGljc3dlYnZpZXcgcXdlYmhpc3Rv
cnlpbnRlcmZhY2UgcXdlYnZpZXcgcXdlYmhpc3RvcnkgcXdlYmluc3BlY3RvciBoeWJyaWRQaXht
YXAKK1NVQkRJUlMgPSBxd2ViZnJhbWUgcXdlYnBhZ2UgcXdlYmVsZW1lbnQgcWdyYXBoaWNzd2Vi
dmlldyBxd2ViaGlzdG9yeWludGVyZmFjZSBxd2VidmlldyBxd2ViaGlzdG9yeSBxd2ViaW5zcGVj
dG9yIHF3ZWJwbHVnaW5mYWN0b3J5IGh5YnJpZFBpeG1hcAogU1VCRElSUyArPSBiZW5jaG1hcmtz
L3BhaW50aW5nIGJlbmNobWFya3MvbG9hZGluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77751</attachid>
            <date>2011-01-01 12:16:37 -0800</date>
            <delta_ts>2011-01-05 15:02:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51330-20110101121636.patch</filename>
            <type>text/plain</type>
            <size>13611</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDlkOTNkYmQ0NTkwZTdlNjM0MmIyOTFiNDQyNDFmMGQwZjlkN2MzYjQuLmYxNTdkYjFjYzBi
MDEyYzQ4MmJhNDY5MTdjNTlkNzdmYzQ5MjI5YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAx
LTAxICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEltcHJvdmUgdGhl
IHJlYWRhYmlsaXR5IG9mIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMzMAorCisgICAg
ICAgIFJldmVydGVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsbHkgcGF0Y2ggdGhhdCBicm9rZSB0aGUg
cGx1Z2luIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIFRoZSBwbHVnaW4gZmFjdG9yeSBzaG91bGQg
aGF2ZSBhIGNoYW5jZSB0byBjcmVhdGUgYSBwbHVnaW4gZm9yIGFueSBtaW1lLXR5cGUsIG5vdCBq
dXN0IGZvcgorICAgICAgICBhcHBsaWNhdGlvbi94LXF0LXBsdWdpbi4KKyAgICAgICAgQWRkZWQg
YSB0ZXN0IGZvciB0aGUgcmVncmVzc2lvbiwgd2hpY2ggdGVzdHMgdGhlIGJhc2ljIGZ1bmN0aW9u
YWxpdHkgb2YgUVdlYlBsdWdpbkZhY3RvcnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogdGVzdHMvcXdlYnBsdWdpbmZhY3Rvcnkv
cXdlYnBsdWdpbmZhY3RvcnkucHJvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
cy90ZXN0cy5wcm86CisKIDIwMTAtMTItMjMgIEphbiBFcmlrIEhhbnNzZW4gIDxqaGFuc3NlbkBz
ZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5k
ZXggZmJmM2U4OTdjNmE5ZTkwNDUwODlmZTEyMmUyOWFiZmM5Y2M5ZGI3MS4uOGI4NjA2YWI5Yzhl
YmNlN2E1OGNkZmUxMTVhMjAzYWM2NzE2Nzc4MyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTQ3NCw4ICsxNDc0LDEwIEBAIFBh
c3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29uc3Qg
SW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICBRU3RyaW5nIHVybFN0cih1cmwuc3RyaW5nKCkpOwog
ICAgIFFVcmwgcXVybCA9IHVybFN0cjsKIAorICAgIFFPYmplY3QqIG9iamVjdCA9IDA7CisKICAg
ICBpZiAobWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiB8fCBtaW1lVHlwZSA9
PSAiYXBwbGljYXRpb24veC1xdC1zdHlsZWQtd2lkZ2V0IikgewotICAgICAgICBRT2JqZWN0KiBv
YmplY3QgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmNyZWF0ZVBsdWdpbihjbGFzc2lkLCBxdXJsLCBw
YXJhbXMsIHZhbHVlcyk7CisgICAgICAgIG9iamVjdCA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+Y3Jl
YXRlUGx1Z2luKGNsYXNzaWQsIHF1cmwsIHBhcmFtcywgdmFsdWVzKTsKICNpZm5kZWYgUVRfTk9f
U1RZTEVfU1RZTEVTSEVFVAogICAgICAgICBRV2lkZ2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8
UVdpZGdldCo+KG9iamVjdCk7CiAgICAgICAgIGlmICh3aWRnZXQgJiYgbWltZVR5cGUgPT0gImFw
cGxpY2F0aW9uL3gtcXQtc3R5bGVkLXdpZGdldCIpIHsKQEAgLTE0OTUsNDYgKzE0OTcsNDcgQEAg
UGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiBwbHVnaW5TaXplLAogCiAgICAgICAgICAgICB3aWRnZXQtPnNldFN0eWxlU2hl
ZXQoc3R5bGVTaGVldCk7CiAgICAgICAgIH0KKyAgICB9CiAjZW5kaWYgLy8gUVRfTk9fU1RZTEVf
U1RZTEVTSEVFVAogCi0gICAgICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBRV2ViUGx1
Z2luRmFjdG9yeSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgp
OwotICAgICAgICAgICAgaWYgKGZhY3RvcnkpCi0gICAgICAgICAgICAgICAgb2JqZWN0ID0gZmFj
dG9yeS0+Y3JlYXRlKG1pbWVUeXBlLCBxdXJsLCBwYXJhbXMsIHZhbHVlcyk7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAob2JqZWN0KSB7Ci0gICAgICAgICAgICBpZiAoUVdpZGdldCogd2lkZ2V0
ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihvYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgUVdp
ZGdldCogcGFyZW50V2lkZ2V0ID0gMDsKLSAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+
cGFnZSgpLT5kLT5jbGllbnQpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFv
YmplY3RfY2FzdDxRV2lkZ2V0Kj4obV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQtPnBsdWdp
blBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCBy
ZXBhcmVudCB0byBub3RoaW5nIChpLmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpj
cmVhdGVQbHVnaW4oKSBjaG9zZS4KLSAgICAgICAgICAgICAgICAgICAgd2lkZ2V0LT5zZXRQYXJl
bnQocGFyZW50V2lkZ2V0KTsKLSAgICAgICAgICAgICAgICB3aWRnZXQtPmhpZGUoKTsKLSAgICAg
ICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5XaWRnZXQ+IHcgPSBhZG9wdFJlZihuZXcgUXRQbHVn
aW5XaWRnZXQoKSk7Ci0gICAgICAgICAgICAgICAgdy0+c2V0UGxhdGZvcm1XaWRnZXQod2lkZ2V0
KTsKLSAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgaXQncyBpbnZpc2libGUgdW50aWwgcHJv
cGVybHkgcGxhY2VkIGludG8gdGhlIGxheW91dAotICAgICAgICAgICAgICAgIHctPnNldEZyYW1l
UmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdzsKLSAg
ICAgICAgICAgIH0KKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBRV2ViUGx1Z2luRmFjdG9y
eSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgpOworICAgICAg
ICBpZiAoZmFjdG9yeSkKKyAgICAgICAgICAgIG9iamVjdCA9IGZhY3RvcnktPmNyZWF0ZShtaW1l
VHlwZSwgcXVybCwgcGFyYW1zLCB2YWx1ZXMpOworICAgIH0KIAotICAgICAgICAgICAgaWYgKFFH
cmFwaGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzV2lk
Z2V0Kj4ob2JqZWN0KSkgewotICAgICAgICAgICAgICAgIFFHcmFwaGljc09iamVjdCogcGFyZW50
V2lkZ2V0ID0gMDsKLSAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5j
bGllbnQpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3RfY2FzdDxR
R3JhcGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFy
ZW50KCkpOwotICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5oaWRlKCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBhcmVudFdpZGdldCkgLy8gZG9uJ3QgcmVwYXJlbnQgdG8gbm90aGluZyAo
aS5lLiBrZWVwIHdoYXRldmVyIHBhcmVudCBRV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKCkgY2hvc2Uu
Ci0gICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5zZXRQYXJlbnRJdGVtKHBhcmVu
dFdpZGdldCk7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFF0UGx1Z2luR3JhcGhpY3NXaWRnZXQ+
IHcgPSBRdFBsdWdpbkdyYXBoaWNzV2lkZ2V0OjpjcmVhdGUoZ3JhcGhpY3NXaWRnZXQpOwotICAg
ICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBpdCdzIGludmlzaWJsZSB1bnRpbCBwcm9wZXJseSBw
bGFjZWQgaW50byB0aGUgbGF5b3V0Ci0gICAgICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KElu
dFJlY3QoMCwgMCwgMCwgMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiB3OwotICAgICAgICAg
ICAgfQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IHFv
YmplY3RfY2FzdDxRV2lkZ2V0Kj4ob2JqZWN0KSkgeworICAgICAgICAgICAgUVdpZGdldCogcGFy
ZW50V2lkZ2V0ID0gMDsKKyAgICAgICAgICAgIGlmIChtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNs
aWVudCkKKyAgICAgICAgICAgICAgICBwYXJlbnRXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdl
dCo+KG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7CisgICAg
ICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCByZXBhcmVudCB0byBub3RoaW5nIChp
LmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKSBjaG9zZS4K
KyAgICAgICAgICAgICAgICB3aWRnZXQtPnNldFBhcmVudChwYXJlbnRXaWRnZXQpOworICAgICAg
ICAgICAgd2lkZ2V0LT5oaWRlKCk7CisgICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5XaWRnZXQ+
IHcgPSBhZG9wdFJlZihuZXcgUXRQbHVnaW5XaWRnZXQoKSk7CisgICAgICAgICAgICB3LT5zZXRQ
bGF0Zm9ybVdpZGdldCh3aWRnZXQpOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0J3MgaW52
aXNpYmxlIHVudGlsIHByb3Blcmx5IHBsYWNlZCBpbnRvIHRoZSBsYXlvdXQKKyAgICAgICAgICAg
IHctPnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKKyAgICAgICAgICAgIHJldHVy
biB3OworICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIEZJWE1FOiBtYWtlIHRoaW5ncyB3b3Jr
IGZvciB3aWRnZXRsZXNzIHBsdWdpbnMgYXMgd2VsbAotICAgICAgICAgICAgZGVsZXRlIG9iamVj
dDsKKyAgICAgICAgaWYgKFFHcmFwaGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0
X2Nhc3Q8UUdyYXBoaWNzV2lkZ2V0Kj4ob2JqZWN0KSkgeworICAgICAgICAgICAgUUdyYXBoaWNz
T2JqZWN0KiBwYXJlbnRXaWRnZXQgPSAwOworICAgICAgICAgICAgaWYgKG1fd2ViRnJhbWUtPnBh
Z2UoKS0+ZC0+Y2xpZW50KQorICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3Rf
Y2FzdDxRR3JhcGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1
Z2luUGFyZW50KCkpOworICAgICAgICAgICAgZ3JhcGhpY3NXaWRnZXQtPmhpZGUoKTsKKyAgICAg
ICAgICAgIGlmIChwYXJlbnRXaWRnZXQpIC8vIGRvbid0IHJlcGFyZW50IHRvIG5vdGhpbmcgKGku
ZS4ga2VlcCB3aGF0ZXZlciBwYXJlbnQgUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbigpIGNob3NlLgor
ICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5zZXRQYXJlbnRJdGVtKHBhcmVudFdpZGdl
dCk7CisgICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5HcmFwaGljc1dpZGdldD4gdyA9IFF0UGx1
Z2luR3JhcGhpY3NXaWRnZXQ6OmNyZWF0ZShncmFwaGljc1dpZGdldCk7CisgICAgICAgICAgICAv
LyBNYWtlIHN1cmUgaXQncyBpbnZpc2libGUgdW50aWwgcHJvcGVybHkgcGxhY2VkIGludG8gdGhl
IGxheW91dAorICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KEludFJlY3QoMCwgMCwgMCwgMCkp
OworICAgICAgICAgICAgcmV0dXJuIHc7CiAgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTog
bWFrZSB0aGluZ3Mgd29yayBmb3Igd2lkZ2V0bGVzcyBwbHVnaW5zIGFzIHdlbGwKKyAgICAgICAg
ZGVsZXRlIG9iamVjdDsKICAgICB9CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICBlbHNlIHsgLy8gTlBBUEkgUGx1Z2lucwogICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXJh
bXMgPSBwYXJhbU5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwbHVnaW5m
YWN0b3J5L3F3ZWJwbHVnaW5mYWN0b3J5LnBybyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkxNWQ2MDQwMzI0ZWY5
MjE0NGUwZmM1YTlhMjBiYTUyZjRhMDY3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC90
ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KQEAgLTAsMCArMSwz
IEBACitpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQVVRfRElSID0gLi4vLi4vLi4vLi4KK2luY2x1
ZGUoLi4vdGVzdHMucHJpKQorZXhpc3RzKCQke1RBUkdFVH0ucXJjKTpSRVNPVVJDRVMgKz0gJCR7
VEFSR0VUfS5xcmMKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2luZmFjdG9y
eS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwbHVnaW5m
YWN0b3J5L3RzdF9xd2VicGx1Z2luZmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg2NzM2OWMxNjli
M2MwZjBkMTAyOTEzODA5ODZjNjBlYjI4MzhlOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9x
dC90ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwCkBAIC0w
LDAgKzEsMTgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworCisjaW5jbHVkZSA8UXRUZXN0L1F0VGVz
dD4KKworI2luY2x1ZGUgPHFncmFwaGljc3dpZGdldC5oPgorI2luY2x1ZGUgPHF2YXJpYW50Lmg+
CisjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CisjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKyNpbmNsdWRl
IDxxd2VicGx1Z2luZmFjdG9yeS5oPgorI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+CisKK2NsYXNzIFRl
c3RQbHVnaW5RV2lkZ2V0IDogcHVibGljIFFXaWRnZXQgeworICAgIFFfT0JKRUNUCitwdWJsaWM6
CisgICAgVGVzdFBsdWdpblFXaWRnZXQoY29uc3QgUVN0cmluZyYgbXR5cGUKKyAgICAgICAgICAg
ICAgICwgY29uc3QgUVVybCYgbmV3VXJsCisgICAgICAgICAgICAgICAsIGNvbnN0IFFTdHJpbmdM
aXN0JiBhcmdOYW1lcworICAgICAgICAgICAgICAgLCBjb25zdCBRU3RyaW5nTGlzdCYgYXJnVmFs
cworICAgICAgICAgICAgICAgLCBRV2lkZ2V0KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFFXaWRn
ZXQocGFyZW50KQorICAgICAgICAsIG1pbWVUeXBlKG10eXBlKQorICAgICAgICAsIHVybChuZXdV
cmwpCisgICAgICAgICwgYXJndW1lbnROYW1lcyhhcmdOYW1lcykKKyAgICAgICAgLCBhcmd1bWVu
dFZhbHVlcyhhcmdWYWxzKQorICAgIHsKKyAgICB9CisKKyAgICBRU3RyaW5nIG1pbWVUeXBlOwor
ICAgIFFVcmwgdXJsOworICAgIFFTdHJpbmdMaXN0IGFyZ3VtZW50TmFtZXM7CisgICAgUVN0cmlu
Z0xpc3QgYXJndW1lbnRWYWx1ZXM7Cit9OworCitjbGFzcyBUZXN0UGx1Z2luUUdyYXBoaWNzV2lk
Z2V0IDogcHVibGljIFFHcmFwaGljc1dpZGdldCB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAg
ICBUZXN0UGx1Z2luUUdyYXBoaWNzV2lkZ2V0KGNvbnN0IFFTdHJpbmcmIG10eXBlCisgICAgICAg
ICAgICAgICAsIGNvbnN0IFFVcmwmIG5ld1VybAorICAgICAgICAgICAgICAgLCBjb25zdCBRU3Ry
aW5nTGlzdCYgYXJnTmFtZXMKKyAgICAgICAgICAgICAgICwgY29uc3QgUVN0cmluZ0xpc3QmIGFy
Z1ZhbHMKKyAgICAgICAgICAgICAgICwgUUdyYXBoaWNzT2JqZWN0KiBwYXJlbnQgPSAwKQorICAg
ICAgICA6IFFHcmFwaGljc1dpZGdldChwYXJlbnQpCisgICAgICAgICwgbWltZVR5cGUobXR5cGUp
CisgICAgICAgICwgdXJsKG5ld1VybCkKKyAgICAgICAgLCBhcmd1bWVudE5hbWVzKGFyZ05hbWVz
KQorICAgICAgICAsIGFyZ3VtZW50VmFsdWVzKGFyZ1ZhbHMpCisgICAgeworICAgIH0KKworICAg
IFFTdHJpbmcgbWltZVR5cGU7CisgICAgUVVybCB1cmw7CisgICAgUVN0cmluZ0xpc3QgYXJndW1l
bnROYW1lczsKKyAgICBRU3RyaW5nTGlzdCBhcmd1bWVudFZhbHVlczsKK307CisKK2NsYXNzIFRl
c3RQbHVnaW5GYWN0b3J5IDogcHVibGljIFFXZWJQbHVnaW5GYWN0b3J5IHsKK3B1YmxpYzoKKyAg
ICBUZXN0UGx1Z2luRmFjdG9yeShRT2JqZWN0KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFFXZWJQ
bHVnaW5GYWN0b3J5KHBhcmVudCkKKyAgICB7CisgICAgICAgIFBsdWdpbiBwbHVnaW47CisgICAg
ICAgIE1pbWVUeXBlIG1pbWVUeXBlOworICAgICAgICBtaW1lVHlwZS5kZXNjcmlwdGlvbiA9ICJD
dXN0b20iOworICAgICAgICBtaW1lVHlwZS5maWxlRXh0ZW5zaW9ucy5hcHBlbmQoImN1c3RvbSIp
OworICAgICAgICBtaW1lVHlwZS5uYW1lID0gImFwcGxpY2F0aW9uL3gtY3VzdG9tIjsKKyAgICAg
ICAgcGx1Z2luLm1pbWVUeXBlcy5hcHBlbmQobWltZVR5cGUpOworICAgICAgICBwbHVnaW4ubmFt
ZSA9ICJDdXN0b20gUGx1Z2luIjsKKyAgICAgICAgcGx1Z2luLmRlc2NyaXB0aW9uID0gIlRlc3Rp
bmcgUXRXZWJraXQgcGx1Z2luIGZ1bmN0aW9uYWxpdHkiOworICAgICAgICBtX3N1cHBvcnRlZFBs
dWdpbnMuYXBwZW5kKHBsdWdpbik7CisgICAgfQorCisgICAgdmlydHVhbCBRTGlzdDxQbHVnaW4+
IHBsdWdpbnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc3VwcG9ydGVkUGx1Z2lu
czsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFFPYmplY3QgKmNyZWF0ZShjb25zdCBRU3RyaW5nJiBt
aW1lVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRVXJsJiB1cmwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ3VtZW50TmFt
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ3Vt
ZW50VmFsdWVzKSBjb25zdAorICAgIHsKKyAgICAgICAgUU9iamVjdCogcGx1Z2luID0gMDsKKyAg
ICAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXdpZGdldCIpCisgICAgICAg
ICAgICBwbHVnaW4gPSBuZXcgVGVzdFBsdWdpblFXaWRnZXQobWltZVR5cGUsIHVybCwgYXJndW1l
bnROYW1lcywgYXJndW1lbnRWYWx1ZXMpOworICAgICAgICBlbHNlIGlmIChtaW1lVHlwZSA9PSAi
YXBwbGljYXRpb24veC1xdC1ncmFwaGljcy13aWRnZXQiKQorICAgICAgICAgICAgcGx1Z2luID0g
bmV3IFRlc3RQbHVnaW5RR3JhcGhpY3NXaWRnZXQobWltZVR5cGUsIHVybCwgYXJndW1lbnROYW1l
cywgYXJndW1lbnRWYWx1ZXMpOworICAgICAgICBtX3BsdWdpbnMuYXBwZW5kKHBsdWdpbik7Cisg
ICAgICAgIHJldHVybiBwbHVnaW47CisgICAgfQorCisgICAgY29uc3QgUU9iamVjdExpc3QmIGdl
dFBsdWdpbnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcGx1Z2luczsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgUUxpc3Q8UGx1Z2luPiBtX3N1cHBvcnRlZFBsdWdpbnM7CisgICAg
bXV0YWJsZSBRT2JqZWN0TGlzdCBtX3BsdWdpbnM7Cit9OworCitjbGFzcyB0c3RfUVdlYlBsdWdp
bkZhY3RvcnkgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKworcHVibGljOgorCitw
cml2YXRlIHNsb3RzOgorICAgIHZvaWQgcGx1Z2luV2l0aEFyZ3VtZW50cygpOworICAgIHZvaWQg
cGx1Z2luV2l0aEFyZ3VtZW50c1FHcmFwaGljc1dpZGdldCgpOworfTsKKwordm9pZCB0c3RfUVdl
YlBsdWdpbkZhY3Rvcnk6OnBsdWdpbldpdGhBcmd1bWVudHMoKQoreworICAgIFRlc3RQbHVnaW5G
YWN0b3J5IGZhY3Rvcnk7CisgICAgUVdlYlZpZXcgdmlldzsKKyAgICBRV2ViUGFnZSogcGFnZSA9
IHZpZXcucGFnZSgpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0
cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUpOworICAgIHBhZ2UtPnNl
dFBsdWdpbkZhY3RvcnkoJmZhY3RvcnkpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5zZXRIdG1s
KCI8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+IgorICAgICAgICAgICAgICAgICAgICAiPG9iamVj
dCB0eXBlPVwiYXBwbGljYXRpb24veC1xdC13aWRnZXRcIiBpZD1cImZvb2JhclwiIGRhdGE9XCJk
YXRhVXJsXCI+IgorICAgICAgICAgICAgICAgICAgICAgICAgIjxwYXJhbSBuYW1lPVwia2V5XCIg
dmFsdWU9XCJ2YWx1ZVwiPjwvcGFyYW0+IgorICAgICAgICAgICAgICAgICAgICAiPC9vYmplY3Q+
MTIzPC9ib2R5PjwvaHRtbD4iKTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT50b1BsYWluVGV4
dCgpOworICAgIGNvbnN0IFFPYmplY3RMaXN0JiBwbHVnaW5zID0gZmFjdG9yeS5nZXRQbHVnaW5z
KCk7CisgICAgUVZFUklGWShwbHVnaW5zLnNpemUoKSA9PSAxKTsKKyAgICBjb25zdCBUZXN0UGx1
Z2luUVdpZGdldCogZmlyc3QgPSBxb2JqZWN0X2Nhc3Q8Y29uc3QgVGVzdFBsdWdpblFXaWRnZXQq
PihwbHVnaW5zLmZpcnN0KCkpOworICAgIFFWRVJJRlkoZmlyc3QpOworICAgIFFWRVJJRlkoZmly
c3QtPm1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXdpZGdldCIpOworICAgIFFWRVJJRlko
Zmlyc3QtPnVybCA9PSBRVXJsKCJkYXRhVXJsIikpOworICAgIGludCBpbmRleCA9IGZpcnN0LT5h
cmd1bWVudE5hbWVzLmluZGV4T2YoImtleSIpOworICAgIFFWRVJJRlkoaW5kZXggPj0gMCk7Cisg
ICAgUVZFUklGWShmaXJzdC0+YXJndW1lbnRWYWx1ZXNbaW5kZXhdID09ICJ2YWx1ZSIpOworfQor
CisKK3ZvaWQgdHN0X1FXZWJQbHVnaW5GYWN0b3J5OjpwbHVnaW5XaXRoQXJndW1lbnRzUUdyYXBo
aWNzV2lkZ2V0KCkKK3sKKyAgICBUZXN0UGx1Z2luRmFjdG9yeSBmYWN0b3J5OworICAgIFFXZWJW
aWV3IHZpZXc7CisgICAgUVdlYlBhZ2UqIHBhZ2UgPSB2aWV3LnBhZ2UoKTsKKyAgICBRV2ViU2V0
dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdp
bnNFbmFibGVkLCB0cnVlKTsKKyAgICBwYWdlLT5zZXRQbHVnaW5GYWN0b3J5KCZmYWN0b3J5KTsK
KyAgICBwYWdlLT5tYWluRnJhbWUoKS0+c2V0SHRtbCgiPGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5
PiIKKyAgICAgICAgICAgICAgICAgICAgIjxvYmplY3QgdHlwZT1cImFwcGxpY2F0aW9uL3gtcXQt
Z3JhcGhpY3Mtd2lkZ2V0XCIgaWQ9XCJmb29iYXJcIiBkYXRhPVwiZGF0YVVybFwiPiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICI8cGFyYW0gbmFtZT1cImtleVwiIHZhbHVlPVwidmFsdWVcIj48
L3BhcmFtPiIKKyAgICAgICAgICAgICAgICAgICAgIjwvb2JqZWN0PjEyMzwvYm9keT48L2h0bWw+
Iik7CisKKyAgICBwYWdlLT5tYWluRnJhbWUoKS0+dG9QbGFpblRleHQoKTsKKyAgICBjb25zdCBR
T2JqZWN0TGlzdCYgcGx1Z2lucyA9IGZhY3RvcnkuZ2V0UGx1Z2lucygpOworICAgIFFWRVJJRlko
cGx1Z2lucy5zaXplKCkgPT0gMSk7CisgICAgY29uc3QgVGVzdFBsdWdpblFHcmFwaGljc1dpZGdl
dCogZmlyc3QgPSBxb2JqZWN0X2Nhc3Q8VGVzdFBsdWdpblFHcmFwaGljc1dpZGdldCo+KHBsdWdp
bnMuZmlyc3QoKSk7CisgICAgUVZFUklGWShmaXJzdCk7CisgICAgUVZFUklGWShmaXJzdC0+bWlt
ZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtZ3JhcGhpY3Mtd2lkZ2V0Iik7CisgICAgUVZFUklG
WShmaXJzdC0+dXJsID09IFFVcmwoImRhdGFVcmwiKSk7CisgICAgaW50IGluZGV4ID0gZmlyc3Qt
PmFyZ3VtZW50TmFtZXMuaW5kZXhPZigia2V5Iik7CisgICAgUVZFUklGWShpbmRleCA+PSAwKTsK
KyAgICBRVkVSSUZZKGZpcnN0LT5hcmd1bWVudFZhbHVlc1tpbmRleF0gPT0gInZhbHVlIik7Cit9
CisKKworCitRVEVTVF9NQUlOKHRzdF9RV2ViUGx1Z2luRmFjdG9yeSkKKworI2luY2x1ZGUgInRz
dF9xd2VicGx1Z2luZmFjdG9yeS5tb2MiCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvdGVz
dHMucHJvIGIvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnBybwppbmRleCAyMmZlY2U1NDE4M2I4YjY2
MjY3MGE2YzYyNjgzYTdmMDViYmI5NTM5Li42YjJjYTczOTczODY2ZTQ0NjQxYjA4OTM0MWU3MjM4
MjM3Y2I1NWY5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJvCisrKyBiL1dl
YktpdC9xdC90ZXN0cy90ZXN0cy5wcm8KQEAgLTEsNCArMSw0IEBACiAKIFRFTVBMQVRFID0gc3Vi
ZGlycwotU1VCRElSUyA9IHF3ZWJmcmFtZSBxd2VicGFnZSBxd2ViZWxlbWVudCBxZ3JhcGhpY3N3
ZWJ2aWV3IHF3ZWJoaXN0b3J5aW50ZXJmYWNlIHF3ZWJ2aWV3IHF3ZWJoaXN0b3J5IHF3ZWJpbnNw
ZWN0b3IgaHlicmlkUGl4bWFwCitTVUJESVJTID0gcXdlYmZyYW1lIHF3ZWJwYWdlIHF3ZWJlbGVt
ZW50IHFncmFwaGljc3dlYnZpZXcgcXdlYmhpc3RvcnlpbnRlcmZhY2UgcXdlYnZpZXcgcXdlYmhp
c3RvcnkgcXdlYmluc3BlY3RvciBxd2VicGx1Z2luZmFjdG9yeSBoeWJyaWRQaXhtYXAKIFNVQkRJ
UlMgKz0gYmVuY2htYXJrcy9wYWludGluZyBiZW5jaG1hcmtzL2xvYWRpbmcK
</data>
<flag name="review"
          id="68931"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78051</attachid>
            <date>2011-01-05 15:02:01 -0800</date>
            <delta_ts>2011-01-12 03:51:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-51330.diff</filename>
            <type>text/plain</type>
            <size>13609</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDlkOTNkYmQ0NTkwZTdlNjM0MmIyOTFiNDQyNDFmMGQwZjlkN2MzYjQuLmYxNTdkYjFjYzBi
MDEyYzQ4MmJhNDY5MTdjNTlkNzdmYzQ5MjI5YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTAx
LTAxICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEltcHJvdmUgdGhl
IHJlYWRhYmlsaXR5IG9mIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMzMAorCisgICAg
ICAgIFJldmVydGVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsbHkgcGF0Y2ggdGhhdCBicm9rZSB0aGUg
cGx1Z2luIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIFRoZSBwbHVnaW4gZmFjdG9yeSBzaG91bGQg
aGF2ZSBhIGNoYW5jZSB0byBjcmVhdGUgYSBwbHVnaW4gZm9yIGFueSBtaW1lLXR5cGUsIG5vdCBq
dXN0IGZvcgorICAgICAgICBhcHBsaWNhdGlvbi94LXF0LXBsdWdpbi4KKyAgICAgICAgQWRkZWQg
YSB0ZXN0IGZvciB0aGUgcmVncmVzc2lvbiwgd2hpY2ggdGVzdHMgdGhlIGJhc2ljIGZ1bmN0aW9u
YWxpdHkgb2YgUVdlYlBsdWdpbkZhY3RvcnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogdGVzdHMvcXdlYnBsdWdpbmZhY3Rvcnkv
cXdlYnBsdWdpbmZhY3RvcnkucHJvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
cy90ZXN0cy5wcm86CisKIDIwMTAtMTItMjMgIEphbiBFcmlrIEhhbnNzZW4gIDxqaGFuc3NlbkBz
ZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5k
ZXggZmJmM2U4OTdjNmE5ZTkwNDUwODlmZTEyMmUyOWFiZmM5Y2M5ZGI3MS4uOGI4NjA2YWI5Yzhl
YmNlN2E1OGNkZmUxMTVhMjAzYWM2NzE2Nzc4MyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTQ3NCw4ICsxNDc0LDEwIEBAIFBh
c3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29uc3Qg
SW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICBRU3RyaW5nIHVybFN0cih1cmwuc3RyaW5nKCkpOwog
ICAgIFFVcmwgcXVybCA9IHVybFN0cjsKIAorICAgIFFPYmplY3QqIG9iamVjdCA9IDA7CisKICAg
ICBpZiAobWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiB8fCBtaW1lVHlwZSA9
PSAiYXBwbGljYXRpb24veC1xdC1zdHlsZWQtd2lkZ2V0IikgewotICAgICAgICBRT2JqZWN0KiBv
YmplY3QgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmNyZWF0ZVBsdWdpbihjbGFzc2lkLCBxdXJsLCBw
YXJhbXMsIHZhbHVlcyk7CisgICAgICAgIG9iamVjdCA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+Y3Jl
YXRlUGx1Z2luKGNsYXNzaWQsIHF1cmwsIHBhcmFtcywgdmFsdWVzKTsKICNpZm5kZWYgUVRfTk9f
U1RZTEVfU1RZTEVTSEVFVAogICAgICAgICBRV2lkZ2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8
UVdpZGdldCo+KG9iamVjdCk7CiAgICAgICAgIGlmICh3aWRnZXQgJiYgbWltZVR5cGUgPT0gImFw
cGxpY2F0aW9uL3gtcXQtc3R5bGVkLXdpZGdldCIpIHsKQEAgLTE0OTUsNDYgKzE0OTcsNDcgQEAg
UGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiBwbHVnaW5TaXplLAogCiAgICAgICAgICAgICB3aWRnZXQtPnNldFN0eWxlU2hl
ZXQoc3R5bGVTaGVldCk7CiAgICAgICAgIH0KKyAgICB9CiAjZW5kaWYgLy8gUVRfTk9fU1RZTEVf
U1RZTEVTSEVFVAogCi0gICAgICAgIGlmICghb2JqZWN0KSB7Ci0gICAgICAgICAgICBRV2ViUGx1
Z2luRmFjdG9yeSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgp
OwotICAgICAgICAgICAgaWYgKGZhY3RvcnkpCi0gICAgICAgICAgICAgICAgb2JqZWN0ID0gZmFj
dG9yeS0+Y3JlYXRlKG1pbWVUeXBlLCBxdXJsLCBwYXJhbXMsIHZhbHVlcyk7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAob2JqZWN0KSB7Ci0gICAgICAgICAgICBpZiAoUVdpZGdldCogd2lkZ2V0
ID0gcW9iamVjdF9jYXN0PFFXaWRnZXQqPihvYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgUVdp
ZGdldCogcGFyZW50V2lkZ2V0ID0gMDsKLSAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+
cGFnZSgpLT5kLT5jbGllbnQpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFv
YmplY3RfY2FzdDxRV2lkZ2V0Kj4obV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQtPnBsdWdp
blBhcmVudCgpKTsKLSAgICAgICAgICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCBy
ZXBhcmVudCB0byBub3RoaW5nIChpLmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpj
cmVhdGVQbHVnaW4oKSBjaG9zZS4KLSAgICAgICAgICAgICAgICAgICAgd2lkZ2V0LT5zZXRQYXJl
bnQocGFyZW50V2lkZ2V0KTsKLSAgICAgICAgICAgICAgICB3aWRnZXQtPmhpZGUoKTsKLSAgICAg
ICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5XaWRnZXQ+IHcgPSBhZG9wdFJlZihuZXcgUXRQbHVn
aW5XaWRnZXQoKSk7Ci0gICAgICAgICAgICAgICAgdy0+c2V0UGxhdGZvcm1XaWRnZXQod2lkZ2V0
KTsKLSAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgaXQncyBpbnZpc2libGUgdW50aWwgcHJv
cGVybHkgcGxhY2VkIGludG8gdGhlIGxheW91dAotICAgICAgICAgICAgICAgIHctPnNldEZyYW1l
UmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdzsKLSAg
ICAgICAgICAgIH0KKyAgICBpZiAoIW9iamVjdCkgeworICAgICAgICBRV2ViUGx1Z2luRmFjdG9y
eSogZmFjdG9yeSA9IG1fd2ViRnJhbWUtPnBhZ2UoKS0+cGx1Z2luRmFjdG9yeSgpOworICAgICAg
ICBpZiAoZmFjdG9yeSkKKyAgICAgICAgICAgIG9iamVjdCA9IGZhY3RvcnktPmNyZWF0ZShtaW1l
VHlwZSwgcXVybCwgcGFyYW1zLCB2YWx1ZXMpOworICAgIH0KIAotICAgICAgICAgICAgaWYgKFFH
cmFwaGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzV2lk
Z2V0Kj4ob2JqZWN0KSkgewotICAgICAgICAgICAgICAgIFFHcmFwaGljc09iamVjdCogcGFyZW50
V2lkZ2V0ID0gMDsKLSAgICAgICAgICAgICAgICBpZiAobV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5j
bGllbnQpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3RfY2FzdDxR
R3JhcGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFy
ZW50KCkpOwotICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5oaWRlKCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBhcmVudFdpZGdldCkgLy8gZG9uJ3QgcmVwYXJlbnQgdG8gbm90aGluZyAo
aS5lLiBrZWVwIHdoYXRldmVyIHBhcmVudCBRV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKCkgY2hvc2Uu
Ci0gICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5zZXRQYXJlbnRJdGVtKHBhcmVu
dFdpZGdldCk7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFF0UGx1Z2luR3JhcGhpY3NXaWRnZXQ+
IHcgPSBRdFBsdWdpbkdyYXBoaWNzV2lkZ2V0OjpjcmVhdGUoZ3JhcGhpY3NXaWRnZXQpOwotICAg
ICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBpdCdzIGludmlzaWJsZSB1bnRpbCBwcm9wZXJseSBw
bGFjZWQgaW50byB0aGUgbGF5b3V0Ci0gICAgICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KElu
dFJlY3QoMCwgMCwgMCwgMCkpOwotICAgICAgICAgICAgICAgIHJldHVybiB3OwotICAgICAgICAg
ICAgfQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IHFv
YmplY3RfY2FzdDxRV2lkZ2V0Kj4ob2JqZWN0KSkgeworICAgICAgICAgICAgUVdpZGdldCogcGFy
ZW50V2lkZ2V0ID0gMDsKKyAgICAgICAgICAgIGlmIChtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNs
aWVudCkKKyAgICAgICAgICAgICAgICBwYXJlbnRXaWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdl
dCo+KG1fd2ViRnJhbWUtPnBhZ2UoKS0+ZC0+Y2xpZW50LT5wbHVnaW5QYXJlbnQoKSk7CisgICAg
ICAgICAgICBpZiAocGFyZW50V2lkZ2V0KSAvLyBkb24ndCByZXBhcmVudCB0byBub3RoaW5nIChp
LmUuIGtlZXAgd2hhdGV2ZXIgcGFyZW50IFFXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKSBjaG9zZS4K
KyAgICAgICAgICAgICAgICB3aWRnZXQtPnNldFBhcmVudChwYXJlbnRXaWRnZXQpOworICAgICAg
ICAgICAgd2lkZ2V0LT5oaWRlKCk7CisgICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5XaWRnZXQ+
IHcgPSBhZG9wdFJlZihuZXcgUXRQbHVnaW5XaWRnZXQoKSk7CisgICAgICAgICAgICB3LT5zZXRQ
bGF0Zm9ybVdpZGdldCh3aWRnZXQpOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0J3MgaW52
aXNpYmxlIHVudGlsIHByb3Blcmx5IHBsYWNlZCBpbnRvIHRoZSBsYXlvdXQKKyAgICAgICAgICAg
IHctPnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIDAsIDApKTsKKyAgICAgICAgICAgIHJldHVy
biB3OworICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIEZJWE1FOiBtYWtlIHRoaW5ncyB3b3Jr
IGZvciB3aWRnZXRsZXNzIHBsdWdpbnMgYXMgd2VsbAotICAgICAgICAgICAgZGVsZXRlIG9iamVj
dDsKKyAgICAgICAgaWYgKFFHcmFwaGljc1dpZGdldCogZ3JhcGhpY3NXaWRnZXQgPSBxb2JqZWN0
X2Nhc3Q8UUdyYXBoaWNzV2lkZ2V0Kj4ob2JqZWN0KSkgeworICAgICAgICAgICAgUUdyYXBoaWNz
T2JqZWN0KiBwYXJlbnRXaWRnZXQgPSAwOworICAgICAgICAgICAgaWYgKG1fd2ViRnJhbWUtPnBh
Z2UoKS0+ZC0+Y2xpZW50KQorICAgICAgICAgICAgICAgIHBhcmVudFdpZGdldCA9IHFvYmplY3Rf
Y2FzdDxRR3JhcGhpY3NPYmplY3QqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1
Z2luUGFyZW50KCkpOworICAgICAgICAgICAgZ3JhcGhpY3NXaWRnZXQtPmhpZGUoKTsKKyAgICAg
ICAgICAgIGlmIChwYXJlbnRXaWRnZXQpIC8vIGRvbid0IHJlcGFyZW50IHRvIG5vdGhpbmcgKGku
ZS4ga2VlcCB3aGF0ZXZlciBwYXJlbnQgUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbigpIGNob3NlLgor
ICAgICAgICAgICAgICAgIGdyYXBoaWNzV2lkZ2V0LT5zZXRQYXJlbnRJdGVtKHBhcmVudFdpZGdl
dCk7CisgICAgICAgICAgICBSZWZQdHI8UXRQbHVnaW5HcmFwaGljc1dpZGdldD4gdyA9IFF0UGx1
Z2luR3JhcGhpY3NXaWRnZXQ6OmNyZWF0ZShncmFwaGljc1dpZGdldCk7CisgICAgICAgICAgICAv
LyBNYWtlIHN1cmUgaXQncyBpbnZpc2libGUgdW50aWwgcHJvcGVybHkgcGxhY2VkIGludG8gdGhl
IGxheW91dAorICAgICAgICAgICAgdy0+c2V0RnJhbWVSZWN0KEludFJlY3QoMCwgMCwgMCwgMCkp
OworICAgICAgICAgICAgcmV0dXJuIHc7CiAgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTog
bWFrZSB0aGluZ3Mgd29yayBmb3Igd2lkZ2V0bGVzcyBwbHVnaW5zIGFzIHdlbGwKKyAgICAgICAg
ZGVsZXRlIG9iamVjdDsKICAgICB9CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICBlbHNlIHsgLy8gTlBBUEkgUGx1Z2lucwogICAgICAgICBWZWN0b3I8U3RyaW5nPiBwYXJh
bXMgPSBwYXJhbU5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwbHVnaW5m
YWN0b3J5L3F3ZWJwbHVnaW5mYWN0b3J5LnBybyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2lu
ZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkxNWQ2MDQwMzI0ZWY5
MjE0NGUwZmM1YTlhMjBiYTUyZjRhMDY3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC90
ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS9xd2VicGx1Z2luZmFjdG9yeS5wcm8KQEAgLTAsMCArMSwz
IEBACitpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQVVRfRElSID0gLi4vLi4vLi4vLi4KK2luY2x1
ZGUoLi4vdGVzdHMucHJpKQorZXhpc3RzKCQke1RBUkdFVH0ucXJjKTpSRVNPVVJDRVMgKz0gJCR7
VEFSR0VUfS5xcmMKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGx1Z2luZmFjdG9y
eS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwbHVnaW5m
YWN0b3J5L3RzdF9xd2VicGx1Z2luZmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg2NzM2OWMxNjli
M2MwZjBkMTAyOTEzODA5ODZjNjBlYjI4MzhlOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9x
dC90ZXN0cy9xd2VicGx1Z2luZmFjdG9yeS90c3RfcXdlYnBsdWdpbmZhY3RvcnkuY3BwCkBAIC0w
LDAgKzEsMTgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworCisjaW5jbHVkZSA8UXRUZXN0L1F0VGVz
dD4KKworI2luY2x1ZGUgPHFncmFwaGljc3dpZGdldC5oPgorI2luY2x1ZGUgPHF2YXJpYW50Lmg+
CisjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CisjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKyNpbmNsdWRl
IDxxd2VicGx1Z2luZmFjdG9yeS5oPgorI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+CisKK2NsYXNzIFRl
c3RQbHVnaW5RV2lkZ2V0IDogcHVibGljIFFXaWRnZXQgeworICAgIFFfT0JKRUNUCitwdWJsaWM6
CisgICAgVGVzdFBsdWdpblFXaWRnZXQoY29uc3QgUVN0cmluZyYgbXR5cGUKKyAgICAgICAgICAg
ICAgICwgY29uc3QgUVVybCYgbmV3VXJsCisgICAgICAgICAgICAgICAsIGNvbnN0IFFTdHJpbmdM
aXN0JiBhcmdOYW1lcworICAgICAgICAgICAgICAgLCBjb25zdCBRU3RyaW5nTGlzdCYgYXJnVmFs
cworICAgICAgICAgICAgICAgLCBRV2lkZ2V0KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFFXaWRn
ZXQocGFyZW50KQorICAgICAgICAsIG1pbWVUeXBlKG10eXBlKQorICAgICAgICAsIHVybChuZXdV
cmwpCisgICAgICAgICwgYXJndW1lbnROYW1lcyhhcmdOYW1lcykKKyAgICAgICAgLCBhcmd1bWVu
dFZhbHVlcyhhcmdWYWxzKQorICAgIHsKKyAgICB9CisKKyAgICBRU3RyaW5nIG1pbWVUeXBlOwor
ICAgIFFVcmwgdXJsOworICAgIFFTdHJpbmdMaXN0IGFyZ3VtZW50TmFtZXM7CisgICAgUVN0cmlu
Z0xpc3QgYXJndW1lbnRWYWx1ZXM7Cit9OworCitjbGFzcyBUZXN0UGx1Z2luUUdyYXBoaWNzV2lk
Z2V0IDogcHVibGljIFFHcmFwaGljc1dpZGdldCB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAg
ICBUZXN0UGx1Z2luUUdyYXBoaWNzV2lkZ2V0KGNvbnN0IFFTdHJpbmcmIG10eXBlCisgICAgICAg
ICAgICAgICAsIGNvbnN0IFFVcmwmIG5ld1VybAorICAgICAgICAgICAgICAgLCBjb25zdCBRU3Ry
aW5nTGlzdCYgYXJnTmFtZXMKKyAgICAgICAgICAgICAgICwgY29uc3QgUVN0cmluZ0xpc3QmIGFy
Z1ZhbHMKKyAgICAgICAgICAgICAgICwgUUdyYXBoaWNzT2JqZWN0KiBwYXJlbnQgPSAwKQorICAg
ICAgICA6IFFHcmFwaGljc1dpZGdldChwYXJlbnQpCisgICAgICAgICwgbWltZVR5cGUobXR5cGUp
CisgICAgICAgICwgdXJsKG5ld1VybCkKKyAgICAgICAgLCBhcmd1bWVudE5hbWVzKGFyZ05hbWVz
KQorICAgICAgICAsIGFyZ3VtZW50VmFsdWVzKGFyZ1ZhbHMpCisgICAgeworICAgIH0KKworICAg
IFFTdHJpbmcgbWltZVR5cGU7CisgICAgUVVybCB1cmw7CisgICAgUVN0cmluZ0xpc3QgYXJndW1l
bnROYW1lczsKKyAgICBRU3RyaW5nTGlzdCBhcmd1bWVudFZhbHVlczsKK307CisKK2NsYXNzIFRl
c3RQbHVnaW5GYWN0b3J5IDogcHVibGljIFFXZWJQbHVnaW5GYWN0b3J5IHsKK3B1YmxpYzoKKyAg
ICBUZXN0UGx1Z2luRmFjdG9yeShRT2JqZWN0KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFFXZWJQ
bHVnaW5GYWN0b3J5KHBhcmVudCkKKyAgICB7CisgICAgICAgIFBsdWdpbiBwbHVnaW47CisgICAg
ICAgIE1pbWVUeXBlIG1pbWVUeXBlOworICAgICAgICBtaW1lVHlwZS5kZXNjcmlwdGlvbiA9ICJD
dXN0b20iOworICAgICAgICBtaW1lVHlwZS5maWxlRXh0ZW5zaW9ucy5hcHBlbmQoImN1c3RvbSIp
OworICAgICAgICBtaW1lVHlwZS5uYW1lID0gImFwcGxpY2F0aW9uL3gtY3VzdG9tIjsKKyAgICAg
ICAgcGx1Z2luLm1pbWVUeXBlcy5hcHBlbmQobWltZVR5cGUpOworICAgICAgICBwbHVnaW4ubmFt
ZSA9ICJDdXN0b20gUGx1Z2luIjsKKyAgICAgICAgcGx1Z2luLmRlc2NyaXB0aW9uID0gIlRlc3Rp
bmcgUXRXZWJraXQgcGx1Z2luIGZ1bmN0aW9uYWxpdHkiOworICAgICAgICBtX3N1cHBvcnRlZFBs
dWdpbnMuYXBwZW5kKHBsdWdpbik7CisgICAgfQorCisgICAgdmlydHVhbCBRTGlzdDxQbHVnaW4+
IHBsdWdpbnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc3VwcG9ydGVkUGx1Z2lu
czsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFFPYmplY3QgKmNyZWF0ZShjb25zdCBRU3RyaW5nJiBt
aW1lVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRVXJsJiB1cmwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ3VtZW50TmFt
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QmIGFyZ3Vt
ZW50VmFsdWVzKSBjb25zdAorICAgIHsKKyAgICAgICAgUU9iamVjdCogcGx1Z2luID0gMDsKKyAg
ICAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXdpZGdldCIpCisgICAgICAg
ICAgICBwbHVnaW4gPSBuZXcgVGVzdFBsdWdpblFXaWRnZXQobWltZVR5cGUsIHVybCwgYXJndW1l
bnROYW1lcywgYXJndW1lbnRWYWx1ZXMpOworICAgICAgICBlbHNlIGlmIChtaW1lVHlwZSA9PSAi
YXBwbGljYXRpb24veC1xdC1ncmFwaGljcy13aWRnZXQiKQorICAgICAgICAgICAgcGx1Z2luID0g
bmV3IFRlc3RQbHVnaW5RR3JhcGhpY3NXaWRnZXQobWltZVR5cGUsIHVybCwgYXJndW1lbnROYW1l
cywgYXJndW1lbnRWYWx1ZXMpOworICAgICAgICBtX3BsdWdpbnMuYXBwZW5kKHBsdWdpbik7Cisg
ICAgICAgIHJldHVybiBwbHVnaW47CisgICAgfQorCisgICAgY29uc3QgUU9iamVjdExpc3QmIGdl
dFBsdWdpbnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcGx1Z2luczsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgUUxpc3Q8UGx1Z2luPiBtX3N1cHBvcnRlZFBsdWdpbnM7CisgICAg
bXV0YWJsZSBRT2JqZWN0TGlzdCBtX3BsdWdpbnM7Cit9OworCitjbGFzcyB0c3RfUVdlYlBsdWdp
bkZhY3RvcnkgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKworcHVibGljOgorCitw
cml2YXRlIHNsb3RzOgorICAgIHZvaWQgcGx1Z2luV2l0aEFyZ3VtZW50cygpOworICAgIHZvaWQg
cGx1Z2luV2l0aEFyZ3VtZW50c1FHcmFwaGljc1dpZGdldCgpOworfTsKKwordm9pZCB0c3RfUVdl
YlBsdWdpbkZhY3Rvcnk6OnBsdWdpbldpdGhBcmd1bWVudHMoKQoreworICAgIFRlc3RQbHVnaW5G
YWN0b3J5IGZhY3Rvcnk7CisgICAgUVdlYlZpZXcgdmlldzsKKyAgICBRV2ViUGFnZSogcGFnZSA9
IHZpZXcucGFnZSgpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0
cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUpOworICAgIHBhZ2UtPnNl
dFBsdWdpbkZhY3RvcnkoJmZhY3RvcnkpOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5zZXRIdG1s
KCI8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+IgorICAgICAgICAgICAgICAgICAgICAiPG9iamVj
dCB0eXBlPVwiYXBwbGljYXRpb24veC1xdC13aWRnZXRcIiBpZD1cImZvb2JhclwiIGRhdGE9XCJk
YXRhVXJsXCI+IgorICAgICAgICAgICAgICAgICAgICAgICAgIjxwYXJhbSBuYW1lPVwia2V5XCIg
dmFsdWU9XCJ2YWx1ZVwiPjwvcGFyYW0+IgorICAgICAgICAgICAgICAgICAgICAiPC9vYmplY3Q+
MTIzPC9ib2R5PjwvaHRtbD4iKTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT50b1BsYWluVGV4
dCgpOworICAgIGNvbnN0IFFPYmplY3RMaXN0JiBwbHVnaW5zID0gZmFjdG9yeS5nZXRQbHVnaW5z
KCk7CisgICAgUUNPTVBBUkUocGx1Z2lucy5zaXplKCksIDEpOworICAgIGNvbnN0IFRlc3RQbHVn
aW5RV2lkZ2V0KiBmaXJzdCA9IHFvYmplY3RfY2FzdDxjb25zdCBUZXN0UGx1Z2luUVdpZGdldCo+
KHBsdWdpbnMuZmlyc3QoKSk7CisgICAgUVZFUklGWShmaXJzdCk7CisgICAgUVZFUklGWShmaXJz
dC0+bWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtcXQtd2lkZ2V0Iik7CisgICAgUVZFUklGWShm
aXJzdC0+dXJsID09IFFVcmwoImRhdGFVcmwiKSk7CisgICAgaW50IGluZGV4ID0gZmlyc3QtPmFy
Z3VtZW50TmFtZXMuaW5kZXhPZigia2V5Iik7CisgICAgUVZFUklGWShpbmRleCA+PSAwKTsKKyAg
ICBRVkVSSUZZKGZpcnN0LT5hcmd1bWVudFZhbHVlc1tpbmRleF0gPT0gInZhbHVlIik7Cit9CisK
Kwordm9pZCB0c3RfUVdlYlBsdWdpbkZhY3Rvcnk6OnBsdWdpbldpdGhBcmd1bWVudHNRR3JhcGhp
Y3NXaWRnZXQoKQoreworICAgIFRlc3RQbHVnaW5GYWN0b3J5IGZhY3Rvcnk7CisgICAgUVdlYlZp
ZXcgdmlldzsKKyAgICBRV2ViUGFnZSogcGFnZSA9IHZpZXcucGFnZSgpOworICAgIFFXZWJTZXR0
aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2lu
c0VuYWJsZWQsIHRydWUpOworICAgIHBhZ2UtPnNldFBsdWdpbkZhY3RvcnkoJmZhY3RvcnkpOwor
ICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5zZXRIdG1sKCI8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+
IgorICAgICAgICAgICAgICAgICAgICAiPG9iamVjdCB0eXBlPVwiYXBwbGljYXRpb24veC1xdC1n
cmFwaGljcy13aWRnZXRcIiBpZD1cImZvb2JhclwiIGRhdGE9XCJkYXRhVXJsXCI+IgorICAgICAg
ICAgICAgICAgICAgICAgICAgIjxwYXJhbSBuYW1lPVwia2V5XCIgdmFsdWU9XCJ2YWx1ZVwiPjwv
cGFyYW0+IgorICAgICAgICAgICAgICAgICAgICAiPC9vYmplY3Q+MTIzPC9ib2R5PjwvaHRtbD4i
KTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT50b1BsYWluVGV4dCgpOworICAgIGNvbnN0IFFP
YmplY3RMaXN0JiBwbHVnaW5zID0gZmFjdG9yeS5nZXRQbHVnaW5zKCk7CisgICAgUVZFUklGWShw
bHVnaW5zLnNpemUoKSA9PSAxKTsKKyAgICBjb25zdCBUZXN0UGx1Z2luUUdyYXBoaWNzV2lkZ2V0
KiBmaXJzdCA9IHFvYmplY3RfY2FzdDxUZXN0UGx1Z2luUUdyYXBoaWNzV2lkZ2V0Kj4ocGx1Z2lu
cy5maXJzdCgpKTsKKyAgICBRVkVSSUZZKGZpcnN0KTsKKyAgICBRVkVSSUZZKGZpcnN0LT5taW1l
VHlwZSA9PSAiYXBwbGljYXRpb24veC1xdC1ncmFwaGljcy13aWRnZXQiKTsKKyAgICBRVkVSSUZZ
KGZpcnN0LT51cmwgPT0gUVVybCgiZGF0YVVybCIpKTsKKyAgICBpbnQgaW5kZXggPSBmaXJzdC0+
YXJndW1lbnROYW1lcy5pbmRleE9mKCJrZXkiKTsKKyAgICBRVkVSSUZZKGluZGV4ID49IDApOwor
ICAgIFFDT01QQVJFKGZpcnN0LT5hcmd1bWVudFZhbHVlc1tpbmRleF0sICJ2YWx1ZSIpOworfQor
CisKKworUVRFU1RfTUFJTih0c3RfUVdlYlBsdWdpbkZhY3RvcnkpCisKKyNpbmNsdWRlICJ0c3Rf
cXdlYnBsdWdpbmZhY3RvcnkubW9jIgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3Rlc3Rz
LnBybyBiL1dlYktpdC9xdC90ZXN0cy90ZXN0cy5wcm8KaW5kZXggMjJmZWNlNTQxODNiOGI2NjI2
NzBhNmM2MjY4M2E3ZjA1YmJiOTUzOS4uNmIyY2E3Mzk3Mzg2NmU0NDY0MWIwODkzNDFlNzIzODIz
N2NiNTVmOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnBybworKysgYi9XZWJL
aXQvcXQvdGVzdHMvdGVzdHMucHJvCkBAIC0xLDQgKzEsNCBAQAogCiBURU1QTEFURSA9IHN1YmRp
cnMKLVNVQkRJUlMgPSBxd2ViZnJhbWUgcXdlYnBhZ2UgcXdlYmVsZW1lbnQgcWdyYXBoaWNzd2Vi
dmlldyBxd2ViaGlzdG9yeWludGVyZmFjZSBxd2VidmlldyBxd2ViaGlzdG9yeSBxd2ViaW5zcGVj
dG9yIGh5YnJpZFBpeG1hcAorU1VCRElSUyA9IHF3ZWJmcmFtZSBxd2VicGFnZSBxd2ViZWxlbWVu
dCBxZ3JhcGhpY3N3ZWJ2aWV3IHF3ZWJoaXN0b3J5aW50ZXJmYWNlIHF3ZWJ2aWV3IHF3ZWJoaXN0
b3J5IHF3ZWJpbnNwZWN0b3IgcXdlYnBsdWdpbmZhY3RvcnkgaHlicmlkUGl4bWFwCiBTVUJESVJT
ICs9IGJlbmNobWFya3MvcGFpbnRpbmcgYmVuY2htYXJrcy9sb2FkaW5nCg==
</data>
<flag name="review"
          id="69301"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>