<?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>56027</bug_id>
          
          <creation_ts>2011-03-09 10:30:56 -0800</creation_ts>
          <short_desc>Assert that editing does not ignore position&apos;s anchorNode if position is an offset in anchor</short_desc>
          <delta_ts>2011-03-17 13:49:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56025</dependson>
          <blocked>52098</blocked>
    
    <blocked>56161</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>leviw</cc>
    
    <cc>mrobinson</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>364580</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 10:30:56 -0800</bug_when>
    <thetext>Since it doesn&apos;t make sense to have a offset position inside br, hr, and so forth, we should assert that editingIgnoresContent returns false on the anchor node when we&apos;re instantiating position with the type PositionIsOffsetInAnchor or moving position to a node-offset pair.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364584</commentid>
    <comment_count>1</comment_count>
      <attachid>85192</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 10:33:09 -0800</bug_when>
    <thetext>Created attachment 85192
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364603</commentid>
    <comment_count>2</comment_count>
      <attachid>85192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-09 10:45:50 -0800</bug_when>
    <thetext>Comment on attachment 85192
work in progress

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

&gt; Source/WebCore/dom/Position.cpp:97
&gt; +    ASSERT(!m_anchorNode || !editingIgnoresContent(m_anchorNode.get()));

When is this ever called with a null anchorNode?

&gt; Source/WebCore/dom/Position.cpp:103
&gt; +    ASSERT(!editingIgnoresContent(m_anchorNode.get()));

Why validate m_anchorNode here as well?  Do you mean &quot;node&quot; isntead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364605</commentid>
    <comment_count>3</comment_count>
      <attachid>85192</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 10:50:25 -0800</bug_when>
    <thetext>Comment on attachment 85192
work in progress

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

&gt;&gt; Source/WebCore/dom/Position.cpp:97
&gt;&gt; +    ASSERT(!m_anchorNode || !editingIgnoresContent(m_anchorNode.get()));
&gt; 
&gt; When is this ever called with a null anchorNode?

Numerous places.  I&apos;m not sure if I can get rid of m_anchorNode in the final patch because it requires fixing lots of code.

&gt;&gt; Source/WebCore/dom/Position.cpp:103
&gt;&gt; +    ASSERT(!editingIgnoresContent(m_anchorNode.get()));
&gt; 
&gt; Why validate m_anchorNode here as well?  Do you mean &quot;node&quot; isntead?

Oops, that&apos;s what I meant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365749</commentid>
    <comment_count>4</comment_count>
      <attachid>85422</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-10 19:16:48 -0800</bug_when>
    <thetext>Created attachment 85422
patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365755</commentid>
    <comment_count>5</comment_count>
      <attachid>85422</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-10 19:29:27 -0800</bug_when>
    <thetext>Comment on attachment 85422
patch for review

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

Behavior changes need tests.

&gt; Source/WebCore/dom/PositionIterator.cpp:43
&gt; +        if (editingIgnoresContent(m_nodeAfterPositionInAnchor-&gt;parentNode()))
&gt; +            return positionBeforeNode(m_anchorNode);

How does this change behavior?  How do we test this?

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:1699
&gt; +        positionForStyleComparison = firstPositionInOrBeforeNode(startNode.get());

Same question.

&gt; Source/WebCore/editing/htmlediting.cpp:-79
&gt; -           !node-&gt;hasTagName(buttonTag) &amp;&amp;

Same question. :)  Buttons are editing boundaries, aren&apos;t they?  And aren&apos;t their editable kids shadow DOMs?

&gt; Source/WebCore/editing/visible_units.cpp:381
&gt; +    VisiblePosition visPos = startNode-&gt;isTextNode() ? VisiblePosition(Position(startNode, static_cast&lt;InlineTextBox *&gt;(startBox)-&gt;start(), Position::PositionIsOffsetInAnchor), DOWNSTREAM)

Same qeustion. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365762</commentid>
    <comment_count>6</comment_count>
      <attachid>85422</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-10 19:36:21 -0800</bug_when>
    <thetext>Comment on attachment 85422
patch for review

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

&gt;&gt; Source/WebCore/dom/PositionIterator.cpp:43
&gt;&gt; +            return positionBeforeNode(m_anchorNode);
&gt; 
&gt; How does this change behavior?  How do we test this?

It doesn&apos;t.  It only helps us moving towards getting rid of weird positions like [textarea, 0]

&gt;&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:1699
&gt;&gt; +        positionForStyleComparison = firstPositionInOrBeforeNode(startNode.get());
&gt; 
&gt; Same question.

Ditto.

&gt;&gt; Source/WebCore/editing/htmlediting.cpp:-79
&gt;&gt; -           !node-&gt;hasTagName(buttonTag) &amp;&amp;
&gt; 
&gt; Same question. :)  Buttons are editing boundaries, aren&apos;t they?  And aren&apos;t their editable kids shadow DOMs?

Right.  I forgot to do &quot;svn add&quot;.  I&apos;m uploading a new patch with a test.

&gt;&gt; Source/WebCore/editing/visible_units.cpp:381
&gt;&gt; +    VisiblePosition visPos = startNode-&gt;isTextNode() ? VisiblePosition(Position(startNode, static_cast&lt;InlineTextBox *&gt;(startBox)-&gt;start(), Position::PositionIsOffsetInAnchor), DOWNSTREAM)
&gt; 
&gt; Same qeustion. :)

Same.  We don&apos;t really change the apparent behavior.  It&apos;s just that we used to have [br, 0] and now we do before br.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365767</commentid>
    <comment_count>7</comment_count>
      <attachid>85427</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-10 19:38:10 -0800</bug_when>
    <thetext>Created attachment 85427
Added the forgotten button test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365770</commentid>
    <comment_count>8</comment_count>
      <attachid>85428</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-10 19:42:04 -0800</bug_when>
    <thetext>Created attachment 85428
Added some comments about testability of changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365780</commentid>
    <comment_count>9</comment_count>
      <attachid>85428</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-10 19:57:40 -0800</bug_when>
    <thetext>Comment on attachment 85428
Added some comments about testability of changes

Does FF match this &lt;button&gt; behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365782</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-10 20:02:36 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 85428 [details])
&gt; Does FF match this &lt;button&gt; behavior?

FF and IE won&apos;t let you edit it.  But the problem is that we already let user put caret inside the button and edit text.  It&apos;s just that it doesn&apos;t work properly because of the bug I&apos;m fixing here.  Not to let user edit button&apos;s content, we must reimplement button element using shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366140</commentid>
    <comment_count>11</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-03-11 11:17:33 -0800</bug_when>
    <thetext>The current state in which you can get a caret inside a button but not, for example, hold shift to extend selection is quite broken. This patch makes this editing behave more consistently, so I believe it&apos;s worth doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366144</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 11:18:56 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; The current state in which you can get a caret inside a button but not, for example, hold shift to extend selection is quite broken. This patch makes this editing behave more consistently, so I believe it&apos;s worth doing.

Right, that was my justification as well.  But given that no other browser lets you put caret inside the button, the correct fix seems to be to reimplement button to use the shadow DOM (the bug 54173).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366149</commentid>
    <comment_count>13</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-03-11 11:21:35 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Right, that was my justification as well.  But given that no other browser lets you put caret inside the button, the correct fix seems to be to reimplement button to use the shadow DOM (the bug 54173).

Oh awesome -- that&apos;s even better :) I was surprised to see it wasn&apos;t already using shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366165</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 11:37:23 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Right, that was my justification as well.  But given that no other browser lets you put caret inside the button, the correct fix seems to be to reimplement button to use the shadow DOM (the bug 54173).
&gt; 
&gt; Oh awesome -- that&apos;s even better :) I was surprised to see it wasn&apos;t already using shadow DOM.

Ok, so we have to decide wether we fix the bug 56211 first or this one first.  Given that fixing the bug 56211 requires adding new binding model into WebCore and we need to fix PositionIterator not to enter DOM inside button element before being able to fix this bug, I&apos;m inclined to land this patch for now.  This patch at least makes our editing behavior consistent inside/outside button element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366629</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-12 19:15:54 -0800</bug_when>
    <thetext>While shadow DOM would be handy for editing, I don’t think it’s right for &lt;button&gt;. We won’t be using shadow DOM for cases where normal DOM manipulation is expected and allowed to see DOM elements.

The fix for editing and &lt;button&gt; is presumably some special treatment in editing code, not shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367078</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 11:17:16 -0700</bug_when>
    <thetext>Any chance I can get a review on this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368855</commentid>
    <comment_count>17</comment_count>
      <attachid>85428</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-03-16 23:09:27 -0700</bug_when>
    <thetext>Comment on attachment 85428
Added some comments about testability of changes

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368857</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-16 23:10:03 -0700</bug_when>
    <thetext>Justin pointed out that there are code changes in my patch that prevents new assertions to hit.  And those are clearly testable by some tests although I claim that &quot;This change only affects positions WebCore uses internally and therefore cannot be tested directly&quot;.  I should have clarified that those changes are tested by the existing layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369197</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-17 12:03:07 -0700</bug_when>
    <thetext>Committed r81374: &lt;http://trac.webkit.org/changeset/81374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369227</commentid>
    <comment_count>20</comment_count>
      <attachid>86083</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-17 12:55:18 -0700</bug_when>
    <thetext>Created attachment 86083
debug build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369228</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-17 12:57:12 -0700</bug_when>
    <thetext>Apparently, code changed since I uploaded my patch and caused assertions to hit in some places.  This patch removes code that instantiates bad positions and suppresses those assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369255</commentid>
    <comment_count>22</comment_count>
      <attachid>86083</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-03-17 13:32:22 -0700</bug_when>
    <thetext>Comment on attachment 86083
debug build fix

The change looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369257</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-17 13:35:14 -0700</bug_when>
    <thetext>Thanks for the informal review, Enrica.  Could someone r+/r- it?

(In reply to comment #22)
&gt; (From update of attachment 86083 [details])
&gt; The change looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369264</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-17 13:40:51 -0700</bug_when>
    <thetext>Thanks for the review, Adele!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369265</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-17 13:41:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81374 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369271</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-17 13:49:28 -0700</bug_when>
    <thetext>Committed r81384: &lt;http://trac.webkit.org/changeset/81384&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85192</attachid>
            <date>2011-03-09 10:33:09 -0800</date>
            <delta_ts>2011-03-10 19:16:45 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-56027-20110309103308.patch</filename>
            <type>text/plain</type>
            <size>3367</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjUwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMtMDkgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgZWRpdGluZyBkb2VzIG5vdCBpZ25vcmUgcG9z
aXRpb24mYXBvcztzIGFuY2hvck5vZGUgaWYgcG9zaXRpb24gaXMgYW4gb2Zmc2V0IGluIGFuY2hv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYwMjcK
KworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGRvbS9Qb3NpdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6UG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246Om1vdmVUb1Bvc2l0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5k
OjphZGRJbmxpbmVTdHlsZUlmTmVlZGVkKToKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRQb3NpdGlvbkZvckxpbmUpOgorCiAyMDEx
LTAzLTA5ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHJl
dmlzaW9uIDgwNjQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTQsMTEgKzk0LDEzIEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRy
PE5vZGU+IGFuY2gKICAgICAsIG1fYW5jaG9yVHlwZShhbmNob3JUeXBlKQogICAgICwgbV9pc0xl
Z2FjeUVkaXRpbmdQb3NpdGlvbihmYWxzZSkKIHsKKyAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8
fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkpOwogICAgIEFTU0VS
VChhbmNob3JUeXBlID09IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CiB9CiAKIHZvaWQgUG9z
aXRpb246Om1vdmVUb1Bvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgaW50IG9mZnNldCkK
IHsKKyAgICBBU1NFUlQoIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkp
KTsKICAgICBBU1NFUlQoYW5jaG9yVHlwZSgpID09IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciB8
fCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKTsKICAgICBtX2FuY2hvck5vZGUgPSBub2RlOwog
ICAgIG1fb2Zmc2V0ID0gb2Zmc2V0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9uIDgwNjQxKQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OTYsNyAr
MTY5Niw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFkZElubGluZVN0eWxlSWYKICAgICAg
ICAgaW5zZXJ0Tm9kZUF0KGR1bW15RWxlbWVudCwgcG9zaXRpb25CZWZvcmVOb2RlKHN0YXJ0Tm9k
ZS5nZXQoKSkpOwogICAgICAgICBwb3NpdGlvbkZvclN0eWxlQ29tcGFyaXNvbiA9IHBvc2l0aW9u
QmVmb3JlTm9kZShkdW1teUVsZW1lbnQuZ2V0KCkpOwogICAgIH0gZWxzZQotICAgICAgICBwb3Np
dGlvbkZvclN0eWxlQ29tcGFyaXNvbiA9IGZpcnN0UG9zaXRpb25Jbk5vZGUoc3RhcnROb2RlLmdl
dCgpKTsKKyAgICAgICAgcG9zaXRpb25Gb3JTdHlsZUNvbXBhcmlzb24gPSBmaXJzdFBvc2l0aW9u
SW5PckJlZm9yZU5vZGUoc3RhcnROb2RlLmdldCgpKTsKIAogICAgIFN0eWxlQ2hhbmdlIHN0eWxl
Q2hhbmdlKHN0eWxlLCBwb3NpdGlvbkZvclN0eWxlQ29tcGFyaXNvbik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkocmV2aXNpb24gODA2NDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNzcsOCArMzc3LDggQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBzdGFydFBvc2l0aW9uRm9y
TAogICAgICAgICBzdGFydEJveCA9IHN0YXJ0Qm94LT5uZXh0TGVhZkNoaWxkKCk7CiAgICAgfQog
ICAgIAotICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3MgPSBzdGFydEJveC0+aXNJbmxpbmVUZXh0
Qm94KCkgPyBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24oc3RhcnROb2RlLCBzdGF0aWNfY2FzdDxJ
bmxpbmVUZXh0Qm94ICo+KHN0YXJ0Qm94KS0+c3RhcnQoKSwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbkJl
Zm9yZU5vZGUoc3RhcnROb2RlKSwgRE9XTlNUUkVBTSk7CisgICAgVmlzaWJsZVBvc2l0aW9uIHZp
c1BvcyA9IHN0YXJ0Tm9kZS0+aXNUZXh0Tm9kZSgpID8gVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KHN0YXJ0Tm9kZSwgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCAqPihzdGFydEJveCktPnN0YXJ0
KCksIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoc3RhcnROb2RlKSwgRE9XTlNUUkVBTSk7CiAg
ICAgcmV0dXJuIHBvc2l0aW9uQXZvaWRpbmdGaXJzdFBvc2l0aW9uSW5UYWJsZSh2aXNQb3MpOwog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85422</attachid>
            <date>2011-03-10 19:16:48 -0800</date>
            <delta_ts>2011-03-10 19:38:07 -0800</delta_ts>
            <desc>patch for review</desc>
            <filename>bug-56027-20110310191647.patch</filename>
            <type>text/plain</type>
            <size>6184</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwODAzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDMtMTAgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgZWRpdGluZyBkb2VzIG5vdCBpZ25vcmUgcG9z
aXRpb24ncyBhbmNob3JOb2RlIGlmIHBvc2l0aW9uIGlzIGFuIG9mZnNldCBpbiBhbmNob3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDI3CisKKyAg
ICAgICAgQWRkZWQgdGhlIGFzc2VydGlvbiBpbiBQb3NpdGlvbjo6UG9zaXRpb24gYW5kIFBvc2l0
aW9uOjptb3ZlVG9Qb3NpdGlvbi4gVGhpcyBhc3NlcnRpb24gY2F0Y2hlcworICAgICAgICBwbGFj
ZXMgd2hlcmUgd2UgaW5zdGFudGlhdGUgcG9zaXRpb25zIGluc2lkZSBhIG5vZGUgb24gd2hpY2gg
ZWRpdGluZ0lnbm9yZXNDb250ZW50IHJldHVybnMgdHJ1ZS4KKworICAgICAgICAqIGRvbS9Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6UG9zaXRpb24pOiBBZGRlZCBh
biBhc3NlcnRpb24uCisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6bW92ZVRvUG9zaXRpb24p
OiBEaXR0by4KKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpvcGVyYXRvciBQb3NpdGlvbik6IEF2b2lkIGNyZWF0
aW5nIGEgcG9zaXRpb24gaW1tZWRpYXRlbHkgYmVsb3cKKyAgICAgICAgYSBub2RlIHdob3NlIGNv
bnRlbnQgaXMgaWdub3JlZCBieSBlZGl0aW5nLiBXaGlsZSB0aGlzIGRvZXMgbm90IGF2b2lkIGNy
ZWF0aW9uIG9mIHBvc2l0aW9ucworICAgICAgICBpbnNpZGUgaWdub3JlZCBjb250ZW50cyBjb21w
bGV0ZWx5LCBpdCB3b3JrcyBpbiBtb3N0IGNhc2VzLiBGaWxlZCB0aGUgYnVnIDU2MDI3IHRvIHJl
c29sdmUKKyAgICAgICAgdGhlIHVuZGVybHlpbmcgcHJvYmxlbS4KKyAgICAgICAgKiBlZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21t
YW5kOjphZGRJbmxpbmVTdHlsZUlmTmVlZGVkKTogQ2FsbCBmaXJzdFBvc2l0aW9uSW5PckJlZm9y
ZU5vZGUKKyAgICAgICAgaW5zdGVhZCBvZiBmaXJzdFBvc2l0aW9uSW5Ob2RlIGJlY2F1c2Ugc3Rh
cnROb2RlIG1heSBhcyB3ZWxsIGJlIGEgYnIgZWxlbWVudC4KKyAgICAgICAgKiBlZGl0aW5nL2h0
bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbkhhdmVDaGlsZHJlbkZvckVkaXRp
bmcpOiBidXR0b24gaXMgZWRpdGFibGUgc28gY29udGVudCBpcyBub3QgaWdub3JlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlv
dXNCb3VuZGFyeSk6IEFkZGVkIGEgRklYTUUuCisgICAgICAgIChXZWJDb3JlOjpzdGFydFBvc2l0
aW9uRm9yTGluZSk6IEJlY2F1c2UgYnIgY2FuIGFsc28gaGF2ZSBhbiBpbmxpbmUgdGV4dCBib3gs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgc3RhcnRCb3ggaXMgYW4gaW5saW5lIHRleHQgYm94IGlz
bid0IGFuIGFkZXF1YXRlIHRvIGluc3RhbnRpYXRlIGEgcG9zaXRpb24gaW5zaWRlIHN0YXJ0Tm9k
ZS4KKyAgICAgICAgQ2FsbCBzdGFydE5vZGUtPmlzVGV4dE5vZGUoKSBpbnN0ZWFkLgorCiAyMDEx
LTAzLTEwICBBbGljZSBCb3hoYWxsICA8YWJveGhhbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cAkocmV2aXNpb24gODA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05NCwxMSArOTQsMTMgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NS
ZWZQdHI8Tm9kZT4gYW5jaAogICAgICwgbV9hbmNob3JUeXBlKGFuY2hvclR5cGUpCiAgICAgLCBt
X2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogeworICAgIEFTU0VSVCghbV9hbmNob3JO
b2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSk7CiAgICAg
QVNTRVJUKGFuY2hvclR5cGUgPT0gUG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKIH0KIAogdm9p
ZCBQb3NpdGlvbjo6bW92ZVRvUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBpbnQgb2Zm
c2V0KQogeworICAgIEFTU0VSVCghZWRpdGluZ0lnbm9yZXNDb250ZW50KG5vZGUuZ2V0KCkpKTsK
ICAgICBBU1NFUlQoYW5jaG9yVHlwZSgpID09IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciB8fCBt
X2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKTsKICAgICBtX2FuY2hvck5vZGUgPSBub2RlOwogICAg
IG1fb2Zmc2V0ID0gb2Zmc2V0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJh
dG9yLmNwcAkocmV2aXNpb24gODA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25J
dGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDkgQEAgUG9zaXRpb25JdGVy
YXRvcjo6b3BlcmF0b3IgUG9zaXRpb24oKSBjbwogewogICAgIGlmIChtX25vZGVBZnRlclBvc2l0
aW9uSW5BbmNob3IpIHsKICAgICAgICAgQVNTRVJUKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hv
ci0+cGFyZW50Tm9kZSgpID09IG1fYW5jaG9yTm9kZSk7CisgICAgICAgIC8vIEZJWE1FOiBUaGlz
IGNoZWNrIGlzIGluYWRhcXVldGUgYmVjYXVzZSBhbnkgYW5jZXN0b3IgY291bGQgYmUgaWdub3Jl
ZCBieSBlZGl0aW5nCisgICAgICAgIGlmIChlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9ub2RlQWZ0
ZXJQb3NpdGlvbkluQW5jaG9yLT5wYXJlbnROb2RlKCkpKQorICAgICAgICAgICAgcmV0dXJuIHBv
c2l0aW9uQmVmb3JlTm9kZShtX2FuY2hvck5vZGUpOwogICAgICAgICByZXR1cm4gcG9zaXRpb25J
blBhcmVudEJlZm9yZU5vZGUobV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yKTsKICAgICB9CiAg
ICAgaWYgKG1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9uIDgwNzk0KQorKysg
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OTYsNyArMTY5Niw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFkZElubGlu
ZVN0eWxlSWYKICAgICAgICAgaW5zZXJ0Tm9kZUF0KGR1bW15RWxlbWVudCwgcG9zaXRpb25CZWZv
cmVOb2RlKHN0YXJ0Tm9kZS5nZXQoKSkpOwogICAgICAgICBwb3NpdGlvbkZvclN0eWxlQ29tcGFy
aXNvbiA9IHBvc2l0aW9uQmVmb3JlTm9kZShkdW1teUVsZW1lbnQuZ2V0KCkpOwogICAgIH0gZWxz
ZQotICAgICAgICBwb3NpdGlvbkZvclN0eWxlQ29tcGFyaXNvbiA9IGZpcnN0UG9zaXRpb25Jbk5v
ZGUoc3RhcnROb2RlLmdldCgpKTsKKyAgICAgICAgcG9zaXRpb25Gb3JTdHlsZUNvbXBhcmlzb24g
PSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoc3RhcnROb2RlLmdldCgpKTsKIAogICAgIFN0
eWxlQ2hhbmdlIHN0eWxlQ2hhbmdlKHN0eWxlLCBwb3NpdGlvbkZvclN0eWxlQ29tcGFyaXNvbik7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiA4
MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Niw3ICs3Niw2IEBAIGJvb2wgY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhj
b25zdCBOb2QKICAgICByZXR1cm4gIW5vZGUtPmhhc1RhZ05hbWUoaHJUYWcpICYmCiAgICAgICAg
ICAgICFub2RlLT5oYXNUYWdOYW1lKGJyVGFnKSAmJgogICAgICAgICAgICAhbm9kZS0+aGFzVGFn
TmFtZShpbWdUYWcpICYmCi0gICAgICAgICAgICFub2RlLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykg
JiYKICAgICAgICAgICAgIW5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpICYmCiAgICAgICAgICAg
ICFub2RlLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKSAmJgogICAgICAgICAgICAhbm9kZS0+aGFz
VGFnTmFtZShvYmplY3RUYWcpICYmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJs
ZV91bml0cy5jcHAJKHJldmlzaW9uIDgwNzk0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92
aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiw3IEBAIHN0YXRp
YyBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeSgKICAgICAvLyBVc2UgdGhlIGNoYXJh
Y3RlciBpdGVyYXRvciB0byB0cmFuc2xhdGUgdGhlIG5leHQgdmFsdWUgaW50byBhIERPTSBwb3Np
dGlvbi4KICAgICBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvciBjaGFySXQoc2VhcmNoUmFuZ2Uu
Z2V0KCkpOwogICAgIGNoYXJJdC5hZHZhbmNlKHN0cmluZy5zaXplKCkgLSBzdWZmaXhMZW5ndGgg
LSBuZXh0KTsKKyAgICAvLyBGSVhNRTogY2hhckl0IGNhbiBnZXQgb3V0IG9mIHNoYWRvdyBob3N0
LgogICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oY2hhckl0LnJhbmdlKCktPmVuZFBvc2l0aW9u
KCksIERPV05TVFJFQU0pOwogfQogCkBAIC0zNzcsOCArMzc4LDggQEAgc3RhdGljIFZpc2libGVQ
b3NpdGlvbiBzdGFydFBvc2l0aW9uRm9yTAogICAgICAgICBzdGFydEJveCA9IHN0YXJ0Qm94LT5u
ZXh0TGVhZkNoaWxkKCk7CiAgICAgfQogICAgIAotICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3Mg
PSBzdGFydEJveC0+aXNJbmxpbmVUZXh0Qm94KCkgPyBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24o
c3RhcnROb2RlLCBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0Qm94ICo+KHN0YXJ0Qm94KS0+c3RhcnQo
KSwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoc3RhcnROb2RlKSwgRE9XTlNUUkVBTSk7
CisgICAgVmlzaWJsZVBvc2l0aW9uIHZpc1BvcyA9IHN0YXJ0Tm9kZS0+aXNUZXh0Tm9kZSgpID8g
VmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHN0YXJ0Tm9kZSwgc3RhdGljX2Nhc3Q8SW5saW5lVGV4
dEJveCAqPihzdGFydEJveCktPnN0YXJ0KCksIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5B
bmNob3IpLCBET1dOU1RSRUFNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoc3Rh
cnROb2RlKSwgRE9XTlNUUkVBTSk7CiAgICAgcmV0dXJuIHBvc2l0aW9uQXZvaWRpbmdGaXJzdFBv
c2l0aW9uSW5UYWJsZSh2aXNQb3MpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85427</attachid>
            <date>2011-03-10 19:38:10 -0800</date>
            <delta_ts>2011-03-10 19:42:02 -0800</delta_ts>
            <desc>Added the forgotten button test</desc>
            <filename>bug-56027-20110310193809.patch</filename>
            <type>text/plain</type>
            <size>8620</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwODA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDMtMTAgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgZWRpdGluZyBkb2VzIG5vdCBpZ25vcmUgcG9z
aXRpb24ncyBhbmNob3JOb2RlIGlmIHBvc2l0aW9uIGlzIGFuIG9mZnNldCBpbiBhbmNob3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDI3CisKKyAg
ICAgICAgQWRkZWQgdGhlIGFzc2VydGlvbiBpbiBQb3NpdGlvbjo6UG9zaXRpb24gYW5kIFBvc2l0
aW9uOjptb3ZlVG9Qb3NpdGlvbi4gVGhpcyBhc3NlcnRpb24gY2F0Y2hlcworICAgICAgICBwbGFj
ZXMgd2hlcmUgd2UgaW5zdGFudGlhdGUgcG9zaXRpb25zIGluc2lkZSBhIG5vZGUgb24gd2hpY2gg
ZWRpdGluZ0lnbm9yZXNDb250ZW50IHJldHVybnMgdHJ1ZS4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL2V4ZWNDb21tYW5kL2J1dHRvbi5odG1sCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKTogQWRkZWQgYW4gYXNzZXJ0
aW9uLgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246Om1vdmVUb1Bvc2l0aW9uKTogRGl0dG8u
CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb25JdGVyYXRvcjo6b3BlcmF0b3IgUG9zaXRpb24pOiBBdm9pZCBjcmVhdGluZyBhIHBv
c2l0aW9uIGltbWVkaWF0ZWx5IGJlbG93CisgICAgICAgIGEgbm9kZSB3aG9zZSBjb250ZW50IGlz
IGlnbm9yZWQgYnkgZWRpdGluZy4gV2hpbGUgdGhpcyBkb2VzIG5vdCBhdm9pZCBjcmVhdGlvbiBv
ZiBwb3NpdGlvbnMKKyAgICAgICAgaW5zaWRlIGlnbm9yZWQgY29udGVudHMgY29tcGxldGVseSwg
aXQgd29ya3MgaW4gbW9zdCBjYXNlcy4gRmlsZWQgdGhlIGJ1ZyA1NjAyNyB0byByZXNvbHZlCisg
ICAgICAgIHRoZSB1bmRlcmx5aW5nIHByb2JsZW0uCisgICAgICAgICogZWRpdGluZy9BcHBseVN0
eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YWRk
SW5saW5lU3R5bGVJZk5lZWRlZCk6IENhbGwgZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlCisg
ICAgICAgIGluc3RlYWQgb2YgZmlyc3RQb3NpdGlvbkluTm9kZSBiZWNhdXNlIHN0YXJ0Tm9kZSBt
YXkgYXMgd2VsbCBiZSBhIGJyIGVsZW1lbnQuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGlu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKTogYnV0
dG9uIGlzIGVkaXRhYmxlIHNvIGNvbnRlbnQgaXMgbm90IGlnbm9yZWQuCisgICAgICAgICogZWRp
dGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByZXZpb3VzQm91bmRh
cnkpOiBBZGRlZCBhIEZJWE1FLgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRQb3NpdGlvbkZvckxp
bmUpOiBCZWNhdXNlIGJyIGNhbiBhbHNvIGhhdmUgYW4gaW5saW5lIHRleHQgYm94LCBjaGVja2lu
ZyB0aGF0CisgICAgICAgIHN0YXJ0Qm94IGlzIGFuIGlubGluZSB0ZXh0IGJveCBpc24ndCBhbiBh
ZGVxdWF0ZSB0byBpbnN0YW50aWF0ZSBhIHBvc2l0aW9uIGluc2lkZSBzdGFydE5vZGUuCisgICAg
ICAgIENhbGwgc3RhcnROb2RlLT5pc1RleHROb2RlKCkgaW5zdGVhZC4KKwogMjAxMS0wMy0xMCAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjgwODAwLgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
CShyZXZpc2lvbiA4MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk0LDExICs5NCwxMyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1Jl
ZlB0cjxOb2RlPiBhbmNoCiAgICAgLCBtX2FuY2hvclR5cGUoYW5jaG9yVHlwZSkKICAgICAsIG1f
aXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CisgICAgQVNTRVJUKCFtX2FuY2hvck5v
ZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpKTsKICAgICBB
U1NFUlQoYW5jaG9yVHlwZSA9PSBQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOwogfQogCiB2b2lk
IFBvc2l0aW9uOjptb3ZlVG9Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGludCBvZmZz
ZXQpCiB7CisgICAgQVNTRVJUKCFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobm9kZS5nZXQoKSkpOwog
ICAgIEFTU0VSVChhbmNob3JUeXBlKCkgPT0gUG9zaXRpb25Jc09mZnNldEluQW5jaG9yIHx8IG1f
aXNMZWdhY3lFZGl0aW5nUG9zaXRpb24pOwogICAgIG1fYW5jaG9yTm9kZSA9IG5vZGU7CiAgICAg
bV9vZmZzZXQgPSBvZmZzZXQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuY3BwCShyZXZpc2lvbiA4MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0
ZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOSBAQCBQb3NpdGlvbkl0ZXJh
dG9yOjpvcGVyYXRvciBQb3NpdGlvbigpIGNvCiB7CiAgICAgaWYgKG1fbm9kZUFmdGVyUG9zaXRp
b25JbkFuY2hvcikgewogICAgICAgICBBU1NFUlQobV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9y
LT5wYXJlbnROb2RlKCkgPT0gbV9hbmNob3JOb2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y2hlY2sgaXMgaW5hZGFxdWV0ZSBiZWNhdXNlIGFueSBhbmNlc3RvciBjb3VsZCBiZSBpZ25vcmVk
IGJ5IGVkaXRpbmcKKyAgICAgICAgaWYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChtX25vZGVBZnRl
clBvc2l0aW9uSW5BbmNob3ItPnBhcmVudE5vZGUoKSkpCisgICAgICAgICAgICByZXR1cm4gcG9z
aXRpb25CZWZvcmVOb2RlKG1fYW5jaG9yTm9kZSk7CiAgICAgICAgIHJldHVybiBwb3NpdGlvbklu
UGFyZW50QmVmb3JlTm9kZShtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IpOwogICAgIH0KICAg
ICBpZiAobV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNpb24gODA3OTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY5Niw3ICsxNjk2LDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5l
U3R5bGVJZgogICAgICAgICBpbnNlcnROb2RlQXQoZHVtbXlFbGVtZW50LCBwb3NpdGlvbkJlZm9y
ZU5vZGUoc3RhcnROb2RlLmdldCgpKSk7CiAgICAgICAgIHBvc2l0aW9uRm9yU3R5bGVDb21wYXJp
c29uID0gcG9zaXRpb25CZWZvcmVOb2RlKGR1bW15RWxlbWVudC5nZXQoKSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIHBvc2l0aW9uRm9yU3R5bGVDb21wYXJpc29uID0gZmlyc3RQb3NpdGlvbkluTm9k
ZShzdGFydE5vZGUuZ2V0KCkpOworICAgICAgICBwb3NpdGlvbkZvclN0eWxlQ29tcGFyaXNvbiA9
IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShzdGFydE5vZGUuZ2V0KCkpOwogCiAgICAgU3R5
bGVDaGFuZ2Ugc3R5bGVDaGFuZ2Uoc3R5bGUsIHBvc2l0aW9uRm9yU3R5bGVDb21wYXJpc29uKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9uIDgw
Nzk0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc2LDcgKzc2LDYgQEAgYm9vbCBjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKGNv
bnN0IE5vZAogICAgIHJldHVybiAhbm9kZS0+aGFzVGFnTmFtZShoclRhZykgJiYKICAgICAgICAg
ICAgIW5vZGUtPmhhc1RhZ05hbWUoYnJUYWcpICYmCiAgICAgICAgICAgICFub2RlLT5oYXNUYWdO
YW1lKGltZ1RhZykgJiYKLSAgICAgICAgICAgIW5vZGUtPmhhc1RhZ05hbWUoYnV0dG9uVGFnKSAm
JgogICAgICAgICAgICAhbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgJiYKICAgICAgICAgICAg
IW5vZGUtPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpICYmCiAgICAgICAgICAgICFub2RlLT5oYXNU
YWdOYW1lKG9iamVjdFRhZykgJiYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJs
ZV91bml0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxl
X3VuaXRzLmNwcAkocmV2aXNpb24gODA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zp
c2libGVfdW5pdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDcgQEAgc3RhdGlj
IFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0JvdW5kYXJ5KAogICAgIC8vIFVzZSB0aGUgY2hhcmFj
dGVyIGl0ZXJhdG9yIHRvIHRyYW5zbGF0ZSB0aGUgbmV4dCB2YWx1ZSBpbnRvIGEgRE9NIHBvc2l0
aW9uLgogICAgIEJhY2t3YXJkc0NoYXJhY3Rlckl0ZXJhdG9yIGNoYXJJdChzZWFyY2hSYW5nZS5n
ZXQoKSk7CiAgICAgY2hhckl0LmFkdmFuY2Uoc3RyaW5nLnNpemUoKSAtIHN1ZmZpeExlbmd0aCAt
IG5leHQpOworICAgIC8vIEZJWE1FOiBjaGFySXQgY2FuIGdldCBvdXQgb2Ygc2hhZG93IGhvc3Qu
CiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihjaGFySXQucmFuZ2UoKS0+ZW5kUG9zaXRpb24o
KSwgRE9XTlNUUkVBTSk7CiB9CiAKQEAgLTM3Nyw4ICszNzgsOCBAQCBzdGF0aWMgVmlzaWJsZVBv
c2l0aW9uIHN0YXJ0UG9zaXRpb25Gb3JMCiAgICAgICAgIHN0YXJ0Qm94ID0gc3RhcnRCb3gtPm5l
eHRMZWFmQ2hpbGQoKTsKICAgICB9CiAgICAgCi0gICAgVmlzaWJsZVBvc2l0aW9uIHZpc1BvcyA9
IHN0YXJ0Qm94LT5pc0lubGluZVRleHRCb3goKSA/IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihz
dGFydE5vZGUsIHN0YXRpY19jYXN0PElubGluZVRleHRCb3ggKj4oc3RhcnRCb3gpLT5zdGFydCgp
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVmlz
aWJsZVBvc2l0aW9uKHBvc2l0aW9uQmVmb3JlTm9kZShzdGFydE5vZGUpLCBET1dOU1RSRUFNKTsK
KyAgICBWaXNpYmxlUG9zaXRpb24gdmlzUG9zID0gc3RhcnROb2RlLT5pc1RleHROb2RlKCkgPyBW
aXNpYmxlUG9zaXRpb24oUG9zaXRpb24oc3RhcnROb2RlLCBzdGF0aWNfY2FzdDxJbmxpbmVUZXh0
Qm94ICo+KHN0YXJ0Qm94KS0+c3RhcnQoKSwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvciksIERPV05TVFJFQU0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDogVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uQmVmb3JlTm9kZShzdGFy
dE5vZGUpLCBET1dOU1RSRUFNKTsKICAgICByZXR1cm4gcG9zaXRpb25Bdm9pZGluZ0ZpcnN0UG9z
aXRpb25JblRhYmxlKHZpc1Bvcyk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwODA0KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTEtMDMtMTAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgZWRpdGluZyBk
b2VzIG5vdCBpZ25vcmUgcG9zaXRpb24ncyBhbmNob3JOb2RlIGlmIHBvc2l0aW9uIGlzIGFuIG9m
ZnNldCBpbiBhbmNob3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU2MDI3CisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIGVuc3VyZSBXZWJLaXQgbGV0
cyB1c2VycyBlZGl0IGNvbnRlbnRzIGluc2lkZSBhIGJ1dHRvbiBlbGVtZW50IHByb3Blcmx5Lgor
CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9idXR0b24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2J1dHRvbi5odG1sOiBBZGRlZC4KKwog
MjAxMS0wMy0xMCAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL2J1dHRvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9idXR0b24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9idXR0b24tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdHMgZW5zdXJlcyBjb250ZW50
cyBpbnNpZGUgYSBidXR0b24gZWxlbWVudCBpcyBwcm9wZXJseSBlZGl0YWJsZS4KK1lvdSBzaG91
bGQgc2VlICJoZWxsbywgd29ybGQgV2ViS2l0IiBpbnNpZGUgdGhlIGJ1dHRvbiBhbmQgIndvcmxk
IiBzaG91bGQgYmUgYm9sZGVkLgorfCA8YnV0dG9uPgorfCAgICJoZWxsbywgIgorfCAgIDxiPgor
fCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj53b3JsZDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgICAi
IFdlYktpdCIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvYnV0dG9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9idXR0b24u
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvYnV0
dG9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT48YnV0dG9uPmhl
bGxvPC9idXR0b24+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK01hcmt1cC5kZXNjcmlwdGlvbignVGhp
cyB0ZXN0cyBlbnN1cmVzIGNvbnRlbnRzIGluc2lkZSBhIGJ1dHRvbiBlbGVtZW50IGlzIHByb3Bl
cmx5IGVkaXRhYmxlLlxuJworKyAnWW91IHNob3VsZCBzZWUgImhlbGxvLCB3b3JsZCBXZWJLaXQi
IGluc2lkZSB0aGUgYnV0dG9uIGFuZCAid29ybGQiIHNob3VsZCBiZSBib2xkZWQuJyk7CisKK3Zh
ciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF07Cit3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oYnV0dG9uLCAxKTsKK2RvY3VtZW50LmV4
ZWNDb21tYW5kKCdJbnNlcnRUZXh0JywgZmFsc2UsICcsIHdvcmxkIFdlYktpdCcpOword2luZG93
LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnbW92ZScsICdiYWNrd2FyZCcsICd3b3JkJyk7Cit3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdtb3ZlJywgJ2JhY2t3YXJkJywgJ3dvcmQnKTsKK3dp
bmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdmb3J3YXJkJywgJ3dvcmQnKTsK
K2RvY3VtZW50LmV4ZWNDb21tYW5kKCdCb2xkJywgZmFsc2UsIG51bGwpOworCitNYXJrdXAuZHVt
cCgndGVzdCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85428</attachid>
            <date>2011-03-10 19:42:04 -0800</date>
            <delta_ts>2011-03-17 12:55:15 -0700</delta_ts>
            <desc>Added some comments about testability of changes</desc>
            <filename>bug-56027-20110310194203.patch</filename>
            <type>text/plain</type>
            <size>8979</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwODA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMDMtMTAgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgZWRpdGluZyBkb2VzIG5vdCBpZ25vcmUgcG9z
aXRpb24ncyBhbmNob3JOb2RlIGlmIHBvc2l0aW9uIGlzIGFuIG9mZnNldCBpbiBhbmNob3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDI3CisKKyAg
ICAgICAgQWRkZWQgdGhlIGFzc2VydGlvbiBpbiBQb3NpdGlvbjo6UG9zaXRpb24gYW5kIFBvc2l0
aW9uOjptb3ZlVG9Qb3NpdGlvbi4gVGhpcyBhc3NlcnRpb24gY2F0Y2hlcworICAgICAgICBwbGFj
ZXMgd2hlcmUgd2UgaW5zdGFudGlhdGUgcG9zaXRpb25zIGluc2lkZSBhIG5vZGUgb24gd2hpY2gg
ZWRpdGluZ0lnbm9yZXNDb250ZW50IHJldHVybnMgdHJ1ZS4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL2V4ZWNDb21tYW5kL2J1dHRvbi5odG1sCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKTogQWRkZWQgYW4gYXNzZXJ0
aW9uLgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246Om1vdmVUb1Bvc2l0aW9uKTogRGl0dG8u
CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb25JdGVyYXRvcjo6b3BlcmF0b3IgUG9zaXRpb24pOiBBdm9pZCBjcmVhdGluZyBhIHBv
c2l0aW9uIGltbWVkaWF0ZWx5IGJlbG93CisgICAgICAgIGEgbm9kZSB3aG9zZSBjb250ZW50IGlz
IGlnbm9yZWQgYnkgZWRpdGluZy4gV2hpbGUgdGhpcyBkb2VzIG5vdCBhdm9pZCBjcmVhdGlvbiBv
ZiBwb3NpdGlvbnMKKyAgICAgICAgaW5zaWRlIGlnbm9yZWQgY29udGVudHMgY29tcGxldGVseSwg
aXQgd29ya3MgaW4gbW9zdCBjYXNlcy4gRmlsZWQgdGhlIGJ1ZyA1NjAyNyB0byByZXNvbHZlCisg
ICAgICAgIHRoZSB1bmRlcmx5aW5nIHByb2JsZW0uIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyBw
b3NpdGlvbnMgV2ViQ29yZSB1c2VzIGludGVybmFsbHkgYW5kIHRoZXJlZm9yZQorICAgICAgICBj
YW5ub3QgYmUgdGVzdGVkIGRpcmVjdGx5LgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFkZElubGlu
ZVN0eWxlSWZOZWVkZWQpOiBDYWxsIGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZQorICAgICAg
ICBpbnN0ZWFkIG9mIGZpcnN0UG9zaXRpb25Jbk5vZGUgYmVjYXVzZSBzdGFydE5vZGUgbWF5IGFz
IHdlbGwgYmUgYSBiciBlbGVtZW50LiBUaGlzIGNoYW5nZSBvbmx5CisgICAgICAgIGFmZmVjdHMg
cG9zaXRpb25zIFdlYkNvcmUgdXNlcyBpbnRlcm5hbGx5IGFuZCB0aGVyZWZvcmUgY2Fubm90IGJl
IHRlc3RlZCBkaXJlY3RseS4KKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmcpOiBidXR0b24gaXMgZWRp
dGFibGUgc28gY29udGVudCBpcyBub3QgaWdub3JlZC4gQWRkZWQgYSB0ZXN0CisgICAgICAgIGZv
ciB0aGlzLgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwcmV2aW91c0JvdW5kYXJ5KTogQWRkZWQgYSBGSVhNRS4KKyAgICAgICAgKFdlYkNv
cmU6OnN0YXJ0UG9zaXRpb25Gb3JMaW5lKTogQmVjYXVzZSBiciBjYW4gYWxzbyBoYXZlIGFuIGlu
bGluZSB0ZXh0IGJveCwgY2hlY2tpbmcgdGhhdAorICAgICAgICBzdGFydEJveCBpcyBhbiBpbmxp
bmUgdGV4dCBib3ggaXNuJ3QgYW4gYWRlcXVhdGUgdG8gaW5zdGFudGlhdGUgYSBwb3NpdGlvbiBp
bnNpZGUgc3RhcnROb2RlLgorICAgICAgICBDYWxsIHN0YXJ0Tm9kZS0+aXNUZXh0Tm9kZSgpIGlu
c3RlYWQuIFRoaXMgY2hhbmdlIG9ubHkgYWZmZWN0cyBwb3NpdGlvbnMgV2ViQ29yZSB1c2VzIGlu
dGVybmFsbHkKKyAgICAgICAgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgdGVzdGVkIGRpcmVjdGx5
LgorCiAyMDExLTAzLTEwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODA4MDAuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5jcHAJKHJldmlzaW9uIDgwNzk0KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsMTEgKzk0LDEzIEBAIFBvc2l0aW9u
OjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2gKICAgICAsIG1fYW5jaG9yVHlwZShhbmNo
b3JUeXBlKQogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbihmYWxzZSkKIHsKKyAgICBB
U1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9k
ZS5nZXQoKSkpOwogICAgIEFTU0VSVChhbmNob3JUeXBlID09IFBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CiB9CiAKIHZvaWQgUG9zaXRpb246Om1vdmVUb1Bvc2l0aW9uKFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSwgaW50IG9mZnNldCkKIHsKKyAgICBBU1NFUlQoIWVkaXRpbmdJZ25vcmVzQ29udGVu
dChub2RlLmdldCgpKSk7CiAgICAgQVNTRVJUKGFuY2hvclR5cGUoKSA9PSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3IgfHwgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbik7CiAgICAgbV9hbmNob3JO
b2RlID0gbm9kZTsKICAgICBtX29mZnNldCA9IG9mZnNldDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb25JdGVyYXRvci5jcHAJKHJldmlzaW9uIDgwNzk0KQorKysgU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw5
IEBAIFBvc2l0aW9uSXRlcmF0b3I6Om9wZXJhdG9yIFBvc2l0aW9uKCkgY28KIHsKICAgICBpZiAo
bV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yKSB7CiAgICAgICAgIEFTU0VSVChtX25vZGVBZnRl
clBvc2l0aW9uSW5BbmNob3ItPnBhcmVudE5vZGUoKSA9PSBtX2FuY2hvck5vZGUpOworICAgICAg
ICAvLyBGSVhNRTogVGhpcyBjaGVjayBpcyBpbmFkYXF1ZXRlIGJlY2F1c2UgYW55IGFuY2VzdG9y
IGNvdWxkIGJlIGlnbm9yZWQgYnkgZWRpdGluZworICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXND
b250ZW50KG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cGFyZW50Tm9kZSgpKSkKKyAgICAg
ICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUobV9hbmNob3JOb2RlKTsKICAgICAgICAg
cmV0dXJuIHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFu
Y2hvcik7CiAgICAgfQogICAgIGlmIChtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCShyZXZp
c2lvbiA4MDc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjk2LDcgKzE2OTYsNyBAQCB2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjphZGRJbmxpbmVTdHlsZUlmCiAgICAgICAgIGluc2VydE5vZGVBdChkdW1teUVsZW1l
bnQsIHBvc2l0aW9uQmVmb3JlTm9kZShzdGFydE5vZGUuZ2V0KCkpKTsKICAgICAgICAgcG9zaXRp
b25Gb3JTdHlsZUNvbXBhcmlzb24gPSBwb3NpdGlvbkJlZm9yZU5vZGUoZHVtbXlFbGVtZW50Lmdl
dCgpKTsKICAgICB9IGVsc2UKLSAgICAgICAgcG9zaXRpb25Gb3JTdHlsZUNvbXBhcmlzb24gPSBm
aXJzdFBvc2l0aW9uSW5Ob2RlKHN0YXJ0Tm9kZS5nZXQoKSk7CisgICAgICAgIHBvc2l0aW9uRm9y
U3R5bGVDb21wYXJpc29uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKHN0YXJ0Tm9kZS5n
ZXQoKSk7CiAKICAgICBTdHlsZUNoYW5nZSBzdHlsZUNoYW5nZShzdHlsZSwgcG9zaXRpb25Gb3JT
dHlsZUNvbXBhcmlzb24pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcAkocmV2aXNpb24gODA3OTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNiBAQCBib29sIGNhbkhhdmVDaGls
ZHJlbkZvckVkaXRpbmcoY29uc3QgTm9kCiAgICAgcmV0dXJuICFub2RlLT5oYXNUYWdOYW1lKGhy
VGFnKSAmJgogICAgICAgICAgICAhbm9kZS0+aGFzVGFnTmFtZShiclRhZykgJiYKICAgICAgICAg
ICAgIW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSAmJgotICAgICAgICAgICAhbm9kZS0+aGFzVGFn
TmFtZShidXR0b25UYWcpICYmCiAgICAgICAgICAgICFub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFn
KSAmJgogICAgICAgICAgICAhbm9kZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykgJiYKICAgICAg
ICAgICAgIW5vZGUtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSAmJgpJbmRleDogU291cmNlL1dlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA4MDc5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiw2
ICsxMjYsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzQm91bmRhcnkoCiAgICAg
Ly8gVXNlIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdG8gdHJhbnNsYXRlIHRoZSBuZXh0IHZhbHVl
IGludG8gYSBET00gcG9zaXRpb24uCiAgICAgQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IgY2hh
ckl0KHNlYXJjaFJhbmdlLmdldCgpKTsKICAgICBjaGFySXQuYWR2YW5jZShzdHJpbmcuc2l6ZSgp
IC0gc3VmZml4TGVuZ3RoIC0gbmV4dCk7CisgICAgLy8gRklYTUU6IGNoYXJJdCBjYW4gZ2V0IG91
dCBvZiBzaGFkb3cgaG9zdC4KICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKGNoYXJJdC5yYW5n
ZSgpLT5lbmRQb3NpdGlvbigpLCBET1dOU1RSRUFNKTsKIH0KIApAQCAtMzc3LDggKzM3OCw4IEBA
IHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gc3RhcnRQb3NpdGlvbkZvckwKICAgICAgICAgc3RhcnRC
b3ggPSBzdGFydEJveC0+bmV4dExlYWZDaGlsZCgpOwogICAgIH0KICAgICAKLSAgICBWaXNpYmxl
UG9zaXRpb24gdmlzUG9zID0gc3RhcnRCb3gtPmlzSW5saW5lVGV4dEJveCgpID8gVmlzaWJsZVBv
c2l0aW9uKFBvc2l0aW9uKHN0YXJ0Tm9kZSwgc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCAqPihz
dGFydEJveCktPnN0YXJ0KCksIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBE
T1dOU1RSRUFNKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb25CZWZvcmVOb2RlKHN0YXJ0Tm9k
ZSksIERPV05TVFJFQU0pOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3MgPSBzdGFydE5vZGUt
PmlzVGV4dE5vZGUoKSA/IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihzdGFydE5vZGUsIHN0YXRp
Y19jYXN0PElubGluZVRleHRCb3ggKj4oc3RhcnRCb3gpLT5zdGFydCgpLCBQb3NpdGlvbjo6UG9z
aXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b25CZWZvcmVOb2RlKHN0YXJ0Tm9kZSksIERPV05TVFJFQU0pOwogICAgIHJldHVybiBwb3NpdGlv
bkF2b2lkaW5nRmlyc3RQb3NpdGlvbkluVGFibGUodmlzUG9zKTsKIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gODA4MDQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxMS0wMy0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBc3Nl
cnQgdGhhdCBlZGl0aW5nIGRvZXMgbm90IGlnbm9yZSBwb3NpdGlvbidzIGFuY2hvck5vZGUgaWYg
cG9zaXRpb24gaXMgYW4gb2Zmc2V0IGluIGFuY2hvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYwMjcKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8g
ZW5zdXJlIFdlYktpdCBsZXRzIHVzZXJzIGVkaXQgY29udGVudHMgaW5zaWRlIGEgYnV0dG9uIGVs
ZW1lbnQgcHJvcGVybHkuCisKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2J1dHRvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvYnV0dG9u
Lmh0bWw6IEFkZGVkLgorCiAyMDExLTAzLTEwICBBbGljZSBCb3hoYWxsICA8YWJveGhhbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvYnV0dG9uLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2J1dHRvbi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2J1
dHRvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0
cyBlbnN1cmVzIGNvbnRlbnRzIGluc2lkZSBhIGJ1dHRvbiBlbGVtZW50IGlzIHByb3Blcmx5IGVk
aXRhYmxlLgorWW91IHNob3VsZCBzZWUgImhlbGxvLCB3b3JsZCBXZWJLaXQiIGluc2lkZSB0aGUg
YnV0dG9uIGFuZCAid29ybGQiIHNob3VsZCBiZSBib2xkZWQuCit8IDxidXR0b24+Cit8ICAgImhl
bGxvLCAiCit8ICAgPGI+Cit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNzZWxlY3Rp
b24tZm9jdXM+IgorfCAgICIgV2ViS2l0IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2J1dHRvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9idXR0b24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0idGVzdCIgY29udGVudGVk
aXRhYmxlPjxidXR0b24+aGVsbG88L2J1dHRvbj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworTWFya3Vw
LmRlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIGVuc3VyZXMgY29udGVudHMgaW5zaWRlIGEgYnV0dG9u
IGVsZW1lbnQgaXMgcHJvcGVybHkgZWRpdGFibGUuXG4nCisrICdZb3Ugc2hvdWxkIHNlZSAiaGVs
bG8sIHdvcmxkIFdlYktpdCIgaW5zaWRlIHRoZSBidXR0b24gYW5kICJ3b3JsZCIgc2hvdWxkIGJl
IGJvbGRlZC4nKTsKKwordmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdidXR0b24nKVswXTsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihidXR0b24s
IDEpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJywgd29ybGQg
V2ViS2l0Jyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdtb3ZlJywgJ2JhY2t3YXJk
JywgJ3dvcmQnKTsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ21vdmUnLCAnYmFja3dh
cmQnLCAnd29yZCcpOword2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywgJ2Zv
cndhcmQnLCAnd29yZCcpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0JvbGQnLCBmYWxzZSwgbnVs
bCk7CisKK01hcmt1cC5kdW1wKCd0ZXN0Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86083</attachid>
            <date>2011-03-17 12:55:18 -0700</date>
            <delta_ts>2011-03-17 13:39:20 -0700</delta_ts>
            <desc>debug build fix</desc>
            <filename>bug-56027-20110317125517.patch</filename>
            <type>text/plain</type>
            <size>3824</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzc2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMtMTcgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgZWRpdGluZyBkb2VzIG5vdCBpZ25vcmUgcG9z
aXRpb24ncyBhbmNob3JOb2RlIGlmIHBvc2l0aW9uIGlzIGFuIG9mZnNldCBpbiBhbmNob3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDI3CisKKyAg
ICAgICAgRGVidWcgYnVpbGQgZml4LgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKTogInRoaXMiIGNh
biBiZSBhbiBpbnB1dCBlbGVtZW50IHNvIGNhbid0IGFsd2F5cyBpbnN0YW50aWF0ZQorICAgICAg
ICBhIHBvc2l0aW9uIGluc2lkZSB0aGUgbm9kZS4gQ2FsbCBmaXJzdFBvc2l0aW9uSW5PckJlZm9y
ZU5vZGUgaW5zdGVhZC4KKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc2l0aW9uQXZvaWRpbmdQcmVjZWRpbmdOb2Rlcyk6
IEV4aXQgZWFybHkgd2hlbiBhIG5vZGUncyBjb250ZW50IGlzIGlnbm9yZWQgYnkgZWRpdGluZyBp
bnN0ZWFkCisgICAgICAgIG9mIGp1c3Qgd2hlbiB0aGUgbm9kZSBpcyBici4KKyAgICAgICAgKiBl
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFZGl0YWJsZVBv
c2l0aW9uQmVmb3JlUG9zaXRpb25JblJvb3QpOiBUaGUgc2hhZG93IGFuY2VzdG9yIG5vZGUgaXMg
dXN1YWxseSBhbiBpbnB1dCBlbGVtZW50CisgICAgICAgIHNvIGRvbid0IGluc3RhbnRpYXRlIGEg
cG9zaXRpb24gaW5zaWRlIGl0LiBDYWxsIGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZSBpbnN0
ZWFkLgorCiAyMDExLTAzLTE3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODEzNjkuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiA4MTM3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKICNpbmNs
dWRlICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTE1NTQsNyArMTU1NSw3IEBA
IHZvaWQgRWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlc3RvcmUgdGhlIHByZXZpb3Vz
IHNlbGVjdGlvbiBpZiB0aGVyZSBpcyBvbmUuCi0gICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3
U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihmaXJzdFBvc2l0aW9uSW5Ob2RlKHRoaXMpLCBE
T1dOU1RSRUFNKTsKKyAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNp
YmxlU2VsZWN0aW9uKGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZSh0aGlzKSwgRE9XTlNUUkVB
TSk7CiAgICAgICAgIAogICAgICAgICBpZiAoZnJhbWUtPnNlbGVjdGlvbigpLT5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgewogICAgICAgICAgICAgZnJhbWUtPnNlbGVjdGlv
bigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lvbiA4MTM3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIGJvb2wgaXNJbnRlcmNo
YW5nZUNvbnZlcnRlZFNwYWNlUwogc3RhdGljIFBvc2l0aW9uIHBvc2l0aW9uQXZvaWRpbmdQcmVj
ZWRpbmdOb2RlcyhQb3NpdGlvbiBwb3MpCiB7CiAgICAgLy8gSWYgd2UncmUgYWxyZWFkeSBvbiBh
IGJyZWFrLCBpdCdzIHByb2JhYmx5IGEgcGxhY2Vob2xkZXIgYW5kIHdlIHNob3VsZG4ndCBjaGFu
Z2Ugb3VyIHBvc2l0aW9uLgotICAgIGlmIChwb3MuZGVwcmVjYXRlZE5vZGUoKS0+aGFzVGFnTmFt
ZShiclRhZykpCisgICAgaWYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChwb3MuZGVwcmVjYXRlZE5v
ZGUoKSkpCiAgICAgICAgIHJldHVybiBwb3M7CiAKICAgICAvLyBXZSBhbHNvIHN0b3Agd2hlbiBj
aGFuZ2luZyBibG9jayBmbG93IGVsZW1lbnRzIGJlY2F1c2UgZXZlbiB0aG91Z2ggdGhlIHZpc3Vh
bCBwb3NpdGlvbiBpcyB0aGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwCShyZXZpc2lvbiA4MTM3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsMTAgKzMwMCwxMSBAQCBWaXNpYmxlUG9zaXRp
b24gbGFzdEVkaXRhYmxlUG9zaXRpb25CZWZvCiAgICAgICAgIHJldHVybiBsYXN0UG9zaXRpb25J
bk5vZGUoaGlnaGVzdFJvb3QpOwogCiAgICAgUG9zaXRpb24gcCA9IHBvc2l0aW9uOwotICAgIAot
ICAgIGlmIChOb2RlKiBzaGFkb3dBbmNlc3RvciA9IHAuZGVwcmVjYXRlZE5vZGUoKS0+c2hhZG93
QW5jZXN0b3JOb2RlKCkpCisKKyAgICBpZiAoTm9kZSogc2hhZG93QW5jZXN0b3IgPSBwLmRlcHJl
Y2F0ZWROb2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpKSB7CiAgICAgICAgIGlmIChzaGFkb3dB
bmNlc3RvciAhPSBwLmRlcHJlY2F0ZWROb2RlKCkpCi0gICAgICAgICAgICBwID0gZmlyc3RQb3Np
dGlvbkluTm9kZShzaGFkb3dBbmNlc3Rvcik7CisgICAgICAgICAgICBwID0gZmlyc3RQb3NpdGlv
bkluT3JCZWZvcmVOb2RlKHNoYWRvd0FuY2VzdG9yKTsKKyAgICB9CiAgICAgCiAgICAgd2hpbGUg
KHAuZGVwcmVjYXRlZE5vZGUoKSAmJiAhaXNFZGl0YWJsZVBvc2l0aW9uKHApICYmIHAuZGVwcmVj
YXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoaGlnaGVzdFJvb3QpKQogICAgICAgICBwID0gaXNB
dG9taWNOb2RlKHAuZGVwcmVjYXRlZE5vZGUoKSkgPyBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9k
ZShwLmRlcHJlY2F0ZWROb2RlKCkpIDogcHJldmlvdXNWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRl
KHApOwo=
</data>
<flag name="review"
          id="78308"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>