<?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>90367</bug_id>
          
          <creation_ts>2012-07-02 02:05:51 -0700</creation_ts>
          <short_desc>[Chromium] ContextFeaturesClient::isEnabled is slow</short_desc>
          <delta_ts>2012-07-09 01:54:17 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>shinyak</cc>
    
    <cc>tasak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>661331</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-07-02 02:05:51 -0700</bug_when>
    <thetext>ContextFeatures::shadowDOMEnabled(), which is not a light operation, is called frequently in editing, such as in Position::findParent().
That causes unresponsiveness if some conditions are met.

Chromium side bug:
http://code.google.com/p/chromium/issues/detail?id=134398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661377</commentid>
    <comment_count>1</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-07-02 03:50:22 -0700</bug_when>
    <thetext>Morrita-san might be working on this.  I think we can avoid a high cost operation by using a cache in a layer somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661562</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-02 09:47:21 -0700</bug_when>
    <thetext>Which function is calling this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661856</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-02 18:13:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Which function is calling this?
from some shadow-specific conditionals.
I&apos;m working on this btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661926</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-02 21:02:01 -0700</bug_when>
    <thetext>Renaming the bug: The problem is that the function is slow, not being called frequently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662019</commentid>
    <comment_count>5</comment_count>
      <attachid>150549</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-03 00:18:54 -0700</bug_when>
    <thetext>Created attachment 150549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662021</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-03 00:20:02 -0700</bug_when>
    <thetext>Kent-san, could you take a look?
The original code was reviewed by Dimitri. But he&apos;s in vacation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662023</commentid>
    <comment_count>7</comment_count>
      <attachid>150551</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-03 00:22:09 -0700</bug_when>
    <thetext>Created attachment 150551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664621</commentid>
    <comment_count>8</comment_count>
      <attachid>150551</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-08 21:41:34 -0700</bug_when>
    <thetext>Comment on attachment 150551
Patch

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

&gt; Source/WebCore/dom/ContextFeatures.h:46
&gt; +        FeatureTypeSize

Needs a comment for this like &quot;This should be at the last&quot; or something.

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:59
&gt; +        bool isEnabled() const { return m_value == IsEnabled; }

Should have ASSERT(m_value != IsNotValid);

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:70
&gt; +        bool isValid(bool defaultValue) const
&gt; +        {
&gt; +            return m_value != IsNotValid &amp;&amp; m_defaultValue == defaultValue;
&gt; +        }

The function name looks wrong because this function checks not only IsNotValid but also m_defaultValue.
This should be &quot;needsToRefreshValue()&quot; or something.

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:74
&gt; +        bool m_defaultValue; // Needs to be traked as a part of the signature since it can be changed dynamically.

Do we already have such case?

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:88
&gt; +    void validateAgainst(Document* document)
&gt; +    {
&gt; +        String currentDomain = document-&gt;securityOrigin()-&gt;domain();
&gt; +        if (currentDomain == m_domain)
&gt; +            return;
&gt; +        m_domain = currentDomain;
&gt; +        for (size_t i = 0; i &lt; ContextFeatures::FeatureTypeSize; ++i)
&gt; +            m_entries[i] = Entry();
&gt; +    }

I prefer defining this function at outside of the class definition because this function is not small.

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:90
&gt; +    Entry* at(ContextFeatures::FeatureType type)

* &quot;at()&quot; sounds strange.  entryFor()?

* You can make the return type &quot;Entry&amp;&quot;.

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:116
&gt; +    cache-&gt;validateAgainst(document);

Why we need to call validateAgainst() every time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664672</commentid>
    <comment_count>9</comment_count>
      <attachid>151190</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-08 23:37:25 -0700</bug_when>
    <thetext>Created attachment 151190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664674</commentid>
    <comment_count>10</comment_count>
      <attachid>151191</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-08 23:41:37 -0700</bug_when>
    <thetext>Created attachment 151191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664690</commentid>
    <comment_count>11</comment_count>
      <attachid>151196</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-09 00:14:55 -0700</bug_when>
    <thetext>Created attachment 151196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664692</commentid>
    <comment_count>12</comment_count>
      <attachid>150551</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-09 00:22:13 -0700</bug_when>
    <thetext>Comment on attachment 150551
Patch

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

&gt;&gt; Source/WebCore/dom/ContextFeatures.h:46
&gt;&gt; +        FeatureTypeSize
&gt; 
&gt; Needs a comment for this like &quot;This should be at the last&quot; or something.

Done.

&gt;&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:59
&gt;&gt; +        bool isEnabled() const { return m_value == IsEnabled; }
&gt; 
&gt; Should have ASSERT(m_value != IsNotValid);

Fixed.

&gt;&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:70
&gt;&gt; +        }
&gt; 
&gt; The function name looks wrong because this function checks not only IsNotValid but also m_defaultValue.
&gt; This should be &quot;needsToRefreshValue()&quot; or something.

Ok, renamed.

&gt;&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:74
&gt;&gt; +        bool m_defaultValue; // Needs to be traked as a part of the signature since it can be changed dynamically.
&gt; 
&gt; Do we already have such case?

Yes. some tests change default values (RutimeEnabledFeatures flags) during the test, which needs a logic like this.

&gt;&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:88
&gt;&gt; +    }
&gt; 
&gt; I prefer defining this function at outside of the class definition because this function is not small.

Done.

&gt;&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:90
&gt;&gt; +    Entry* at(ContextFeatures::FeatureType type)
&gt; 
&gt; * &quot;at()&quot; sounds strange.  entryFor()?
&gt; 
&gt; * You can make the return type &quot;Entry&amp;&quot;.

Done.

&gt;&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:116
&gt;&gt; +    cache-&gt;validateAgainst(document);
&gt; 
&gt; Why we need to call validateAgainst() every time?

Good question. 
I added ContextFeatureClient::urlDidChange() which is called from Document::setURL(), and did the validation there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664693</commentid>
    <comment_count>13</comment_count>
      <attachid>151196</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-09 00:25:54 -0700</bug_when>
    <thetext>Comment on attachment 151196
Patch

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

&gt; Source/WebCore/dom/ContextFeatures.h:59
&gt; +    void urlDidChange(Document*);
&gt;  private:

nit: need a blank line before private:

&gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:40
&gt; +using namespace WTF;

Is this necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664708</commentid>
    <comment_count>14</comment_count>
      <attachid>151204</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-09 00:50:27 -0700</bug_when>
    <thetext>Created attachment 151204
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664710</commentid>
    <comment_count>15</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-07-09 00:52:23 -0700</bug_when>
    <thetext>Kent-san, thanks for the quick round.
I addressed the remaining points and am landing the patch.

(In reply to comment #13)
&gt; (From update of attachment 151196 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151196&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ContextFeatures.h:59
&gt; &gt; +    void urlDidChange(Document*);
&gt; &gt;  private:
&gt; 
&gt; nit: need a blank line before private:
&gt; 
&gt; &gt; Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp:40
&gt; &gt; +using namespace WTF;
&gt; 
&gt; Is this necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664740</commentid>
    <comment_count>16</comment_count>
      <attachid>151204</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 01:54:06 -0700</bug_when>
    <thetext>Comment on attachment 151204
Patch for landing

Clearing flags on attachment: 151204

Committed r122099: &lt;http://trac.webkit.org/changeset/122099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664741</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 01:54:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150549</attachid>
            <date>2012-07-03 00:18:54 -0700</date>
            <delta_ts>2012-07-03 00:22:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90367-20120703161853.patch</filename>
            <type>text/plain</type>
            <size>7131</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjcyZDZiN2E1YjkyNzgz
MjI0MGM3ZWU0MWRmNmM1MjNiNDUxZTBlMy4uY2VmZTFjMjIwOWIyZmQyNTU1ZmQzZTRmNjFlYmI0
NzA4ZDNlMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA3LTAzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29u
dGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDogQWRk
ZWQgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemUgdG8gZ2V0IHRoZSBudW1iZXIgb2Yg
dGhlIGVudW0gaXRlbXMuCisKIDIwMTItMDctMDIgIENocmlzIEd1YW4gIDxjaHJpcy5ndWFuQHRv
cmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gUmVmYWN0b3IgOiBtb3Zl
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBnZXRNSU1FVHlwZUZvckV4dGVuc2lvbiBhbmQgZ2V0UHJl
ZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUgaW50byBCbGFja0JlcnJ5IHBsYXRmb3JtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDg1NGRhNWE3OTUyNjY0NTg3MGE2ODZlMDM5N2YyNDQw
ODE4MTlmYmEuLjU0Yzc5ZmFiNjU1YmZkOGMzNGM0MjM2ZGQ1OTEzMzI5N2ViNWYyZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDctMDMgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb250
ZXh0RmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDM2NworCisgICAgICAgIENvbnRleHRGZWF0
dXJlc0NsaWVudEltcGw6OmlzRW5hYmxlZCB0b3VjaGVzIGEgaGVhdnkgcGFydCBpbiBjaHJvbWUK
KyAgICAgICAgd2hlcmUgbG9ja3MgYXJlIGFjcXVpcmVkIGZvciBlYWNoIGludm9jYXRpb24uCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlIGEgc2V0IG9mIGNhY2hlcyB0byBhdm9pZCBz
dWNoIGNhbGxzLgorICAgICAgICBUaGUgY2FjaGUgY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2FjaGUg
aXMgaW1wbGVtZW50ZWQgYXMgYQorICAgICAgICBTdXBwbGVtZW50IG9mIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQgYmVjYXVzZSB0aGUgZmxhZyBiaXRzCisgICAgICAgIGRlcGVuZCBvbiB0aGUgZG9t
YWluIG9mIGVhY2ggRG9jdW1lbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChDb250ZXh0RmVhdHVyZXNDYWNoZSk6CisgICAgICAgIChFbnRyeSk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6RW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50cnk6OmlzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6c2V0KToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OnZhbGlkYXRlQWdhaW5zdCk6CisgICAgICAgIChXZWJL
aXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjphdCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6c3VwcGxlbWVudE5hbWUpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbSk6CisgICAgICAgIChXZWJLaXQ6
OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmlzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNFbmFibGVkKToKKyAgICAgICAgKiBz
cmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVz
Q2xpZW50SW1wbCk6CisKIDIwMTItMDctMDIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAppbmRleCBlZjY2MjIwN2U3ZjZiYjJiMGVhODc2MTQ4
ZjQxMjkxZDI2ZDIxNjIxLi45NDk3MTQ4ODBjYTJhMjNiMzU5M2QyYTYwYzQ1ODNmYjNhNjEzNzdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCkBAIC00MCw5ICs0MCwxMCBAQCBj
bGFzcyBQYWdlOwogY2xhc3MgQ29udGV4dEZlYXR1cmVzIDogcHVibGljIFJlZkNvdW50ZWRTdXBw
bGVtZW50PFBhZ2UsIENvbnRleHRGZWF0dXJlcz4gewogcHVibGljOgogICAgIGVudW0gRmVhdHVy
ZVR5cGUgewotICAgICAgICBTaGFkb3dET00sCisgICAgICAgIFNoYWRvd0RPTSA9IDAsCiAgICAg
ICAgIFN0eWxlU2NvcGVkLAotICAgICAgICBQYWdlUG9wdXAKKyAgICAgICAgUGFnZVBvcHVwLAor
ICAgICAgICBGZWF0dXJlVHlwZVNpemUKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKaW5kZXggYWFkYTA3Nzg3
NjRmMDI2ZWE4NjZlNzlhNmZhOWMxNTY4ZGJkZGZhNy4uMDA4NGFmODQyYTdhZGNlNTI4ZjM4ZWRi
ZTIyOGRhZjM5Yzc3MTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKQEAgLTMyLDEzICszMiwxMDEgQEAK
ICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCiAKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdURjsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
K2NsYXNzIENvbnRleHRGZWF0dXJlc0NhY2hlIDogcHVibGljIFN1cHBsZW1lbnQ8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dD4geworcHVibGljOgorICAgIGNsYXNzIEVudHJ5IHsKKyAgICBwdWJsaWM6
CisgICAgICAgIGVudW0gVmFsdWUgeworICAgICAgICAgICAgSXNFbmFibGVkLAorICAgICAgICAg
ICAgSXNEaXNhYmxlZCwKKyAgICAgICAgICAgIElzTm90VmFsaWQKKyAgICAgICAgfTsKKworICAg
ICAgICBFbnRyeSgpCisgICAgICAgICAgICA6IG1fdmFsdWUoSXNOb3RWYWxpZCkKKyAgICAgICAg
ICAgICwgbV9kZWZhdWx0VmFsdWUoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAgIGJvb2wg
aXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSA9PSBJc0VuYWJsZWQ7IH0KKworICAg
ICAgICB2b2lkIHNldChib29sIHZhbHVlLCBib29sIGRlZmF1bHRWYWx1ZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVlID8gSXNFbmFibGVkIDogSXNEaXNhYmxlZDsKKyAg
ICAgICAgICAgIG1fZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgICAgICB9CisKKyAg
ICAgICAgYm9vbCBpc1ZhbGlkKGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gbV92YWx1ZSAhPSBJc05vdFZhbGlkICYmIG1fZGVmYXVsdFZhbHVl
ID09IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVmFs
dWUgbV92YWx1ZTsKKyAgICAgICAgYm9vbCBtX2RlZmF1bHRWYWx1ZTsgLy8gTmVlZHMgdG8gYmUg
dHJha2VkIGFzIGEgcGFydCBvZiB0aGUgc2lnbmF0dXJlIHNpbmNlIGl0IGNhbiBiZSBjaGFuZ2Vk
IGR5bmFtaWNhbGx5LgorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBz
dXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZXNDYWNoZSogZnJvbShE
b2N1bWVudCopOworCisgICAgdm9pZCB2YWxpZGF0ZUFnYWluc3QoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIHsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnREb21haW4gPSBkb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKS0+ZG9tYWluKCk7CisgICAgICAgIGlmIChjdXJyZW50RG9tYWluID09IG1fZG9t
YWluKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2RvbWFpbiA9IGN1cnJlbnREb21h
aW47CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29udGV4dEZlYXR1cmVzOjpGZWF0
dXJlVHlwZVNpemU7ICsraSkKKyAgICAgICAgICAgIG1fZW50cmllc1tpXSA9IEVudHJ5KCk7Cisg
ICAgfQorCisgICAgRW50cnkqIGF0KENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSkK
KyAgICB7CisgICAgICAgIHNpemVfdCBpbmRleCA9IHN0YXRpY19jYXN0PHNpemVfdD4odHlwZSk7
CisgICAgICAgIEFTU0VSVChpbmRleCA8IENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXpl
KTsKKyAgICAgICAgcmV0dXJuICYobV9lbnRyaWVzW2luZGV4XSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFN0cmluZyBtX2RvbWFpbjsKKyAgICBFbnRyeSBtX2VudHJpZXNbQ29udGV4dEZlYXR1
cmVzOjpGZWF0dXJlVHlwZVNpemVdOworfTsKKworY29uc3QgQXRvbWljU3RyaW5nJiBDb250ZXh0
RmVhdHVyZXNDYWNoZTo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlc0NhY2hlIikpOworICAgIHJl
dHVybiBuYW1lOworfQorCitDb250ZXh0RmVhdHVyZXNDYWNoZSogQ29udGV4dEZlYXR1cmVzQ2Fj
aGU6OmZyb20oRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIENvbnRleHRGZWF0dXJlc0NhY2hl
KiBjYWNoZSA9IHN0YXRpY19jYXN0PENvbnRleHRGZWF0dXJlc0NhY2hlKj4oU3VwcGxlbWVudDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6ZnJvbShkb2N1bWVudCwgc3VwcGxlbWVudE5hbWUoKSkp
OworICAgIGlmICghY2FjaGUpIHsKKyAgICAgICAgY2FjaGUgPSBuZXcgQ29udGV4dEZlYXR1cmVz
Q2FjaGUoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6cHJv
dmlkZVRvKGRvY3VtZW50LCBzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cihjYWNoZSkpOworICAg
IH0KKworICAgIGNhY2hlLT52YWxpZGF0ZUFnYWluc3QoZG9jdW1lbnQpOworICAgIHJldHVybiBj
YWNoZTsKK30KKwogYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQoV2Vi
Q29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1
cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQogeworICAgIENvbnRleHRGZWF0dXJlc0Nh
Y2hlOjpFbnRyeSogY2FjaGUgPSBDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbShkb2N1bWVudCkt
PmF0KHR5cGUpOworICAgIGlmICghY2FjaGUtPmlzVmFsaWQoZGVmYXVsdFZhbHVlKSkKKyAgICAg
ICAgY2FjaGUtPnNldChhc2tJZklzRW5hYmxlZChkb2N1bWVudCwgdHlwZSwgZGVmYXVsdFZhbHVl
KSwgZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gY2FjaGUtPmlzRW5hYmxlZCgpOworfQorCiti
b29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNFbmFibGVkKFdlYkNvcmU6OkRv
Y3VtZW50KiBkb2N1bWVudCwgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSB0
eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKaW5kZXggZWExZjk1NDhkOTI4MDIwYzYw
NmQ0ZmRiZWY0OTQxNTQzYmIyYmI4OS4uMWEyYmYyZjUxNWE4MGY1ZmMyMWNkMTEzYWE3NzA1ZDNk
OTVlZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZl
YXR1cmVzQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRl
eHRGZWF0dXJlc0NsaWVudEltcGwuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIGNsaWVudCkgeyBtX2Ns
aWVudCA9IGNsaWVudDsgfQogCiBwcml2YXRlOgorICAgIGJvb2wgYXNrSWZJc0VuYWJsZWQoV2Vi
Q29yZTo6RG9jdW1lbnQqLCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBi
b29sIGRlZmF1bHRWYWx1ZSk7CisKICAgICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBtX2NsaWVudDsK
IH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150551</attachid>
            <date>2012-07-03 00:22:09 -0700</date>
            <delta_ts>2012-07-09 00:22:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90367-20120703162208.patch</filename>
            <type>text/plain</type>
            <size>7137</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjcyZDZiN2E1YjkyNzgz
MjI0MGM3ZWU0MWRmNmM1MjNiNDUxZTBlMy4uY2VmZTFjMjIwOWIyZmQyNTU1ZmQzZTRmNjFlYmI0
NzA4ZDNlMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA3LTAzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29u
dGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDogQWRk
ZWQgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemUgdG8gZ2V0IHRoZSBudW1iZXIgb2Yg
dGhlIGVudW0gaXRlbXMuCisKIDIwMTItMDctMDIgIENocmlzIEd1YW4gIDxjaHJpcy5ndWFuQHRv
cmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gUmVmYWN0b3IgOiBtb3Zl
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBnZXRNSU1FVHlwZUZvckV4dGVuc2lvbiBhbmQgZ2V0UHJl
ZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUgaW50byBCbGFja0JlcnJ5IHBsYXRmb3JtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDg1NGRhNWE3OTUyNjY0NTg3MGE2ODZlMDM5N2YyNDQw
ODE4MTlmYmEuLjQxZDlmNTJmZGRkOTA4MDcyZWFjZjUyZGMyYWQyZWFkNjc4NGRkNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDctMDMgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb250
ZXh0RmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDM2NworCisgICAgICAgIENvbnRleHRGZWF0
dXJlc0NsaWVudEltcGw6OmlzRW5hYmxlZCB0b3VjaGVzIGEgaGVhdnkgcGFydCBpbiBjaHJvbWUK
KyAgICAgICAgd2hlcmUgbG9ja3MgYXJlIGFjcXVpcmVkIGZvciBlYWNoIGludm9jYXRpb24uCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIHNldCBvZiBjYWNoZXMgdG8gYXZvaWQg
c3VjaCBzbG93IGNhbGxzLgorICAgICAgICBUaGUgY2FjaGUgY2xhc3MgQ29udGV4dEZlYXR1cmVz
Q2FjaGUgaXMgaW1wbGVtZW50ZWQgYXMgYQorICAgICAgICBTdXBwbGVtZW50IG9mIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQgYmVjYXVzZSB0aGUgZmxhZyBiaXRzCisgICAgICAgIGRlcGVuZCBvbiB0
aGUgZG9tYWluIG9mIGVhY2ggRG9jdW1lbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChDb250ZXh0RmVhdHVyZXNDYWNoZSk6CisgICAgICAgIChFbnRyeSk6CisgICAg
ICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6RW50cnkpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50cnk6OmlzRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6c2V0KToKKyAgICAgICAg
KFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5Ojppc1ZhbGlkKToKKyAgICAgICAg
KFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OnZhbGlkYXRlQWdhaW5zdCk6CisgICAgICAg
IChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjphdCk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6c3VwcGxlbWVudE5hbWUpOgor
ICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbSk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmlzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNFbmFibGVkKToKKyAgICAg
ICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oOgorICAgICAgICAoQ29udGV4dEZl
YXR1cmVzQ2xpZW50SW1wbCk6CisKIDIwMTItMDctMDIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAppbmRleCBlZjY2MjIwN2U3ZjZiYjJiMGVh
ODc2MTQ4ZjQxMjkxZDI2ZDIxNjIxLi45NDk3MTQ4ODBjYTJhMjNiMzU5M2QyYTYwYzQ1ODNmYjNh
NjEzNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCkBAIC00MCw5ICs0MCwx
MCBAQCBjbGFzcyBQYWdlOwogY2xhc3MgQ29udGV4dEZlYXR1cmVzIDogcHVibGljIFJlZkNvdW50
ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRGZWF0dXJlcz4gewogcHVibGljOgogICAgIGVudW0g
RmVhdHVyZVR5cGUgewotICAgICAgICBTaGFkb3dET00sCisgICAgICAgIFNoYWRvd0RPTSA9IDAs
CiAgICAgICAgIFN0eWxlU2NvcGVkLAotICAgICAgICBQYWdlUG9wdXAKKyAgICAgICAgUGFnZVBv
cHVwLAorICAgICAgICBGZWF0dXJlVHlwZVNpemUKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKaW5kZXggYWFk
YTA3Nzg3NjRmMDI2ZWE4NjZlNzlhNmZhOWMxNTY4ZGJkZGZhNy4uMDA4NGFmODQyYTdhZGNlNTI4
ZjM4ZWRiZTIyOGRhZjM5Yzc3MTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKQEAgLTMyLDEzICszMiwx
MDEgQEAKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2Vi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCiAKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdURjsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIENvbnRleHRGZWF0dXJlc0NhY2hlIDogcHVibGljIFN1cHBsZW1lbnQ8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD4geworcHVibGljOgorICAgIGNsYXNzIEVudHJ5IHsKKyAgICBw
dWJsaWM6CisgICAgICAgIGVudW0gVmFsdWUgeworICAgICAgICAgICAgSXNFbmFibGVkLAorICAg
ICAgICAgICAgSXNEaXNhYmxlZCwKKyAgICAgICAgICAgIElzTm90VmFsaWQKKyAgICAgICAgfTsK
KworICAgICAgICBFbnRyeSgpCisgICAgICAgICAgICA6IG1fdmFsdWUoSXNOb3RWYWxpZCkKKyAg
ICAgICAgICAgICwgbV9kZWZhdWx0VmFsdWUoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAg
IGJvb2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSA9PSBJc0VuYWJsZWQ7IH0K
KworICAgICAgICB2b2lkIHNldChib29sIHZhbHVlLCBib29sIGRlZmF1bHRWYWx1ZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVlID8gSXNFbmFibGVkIDogSXNEaXNhYmxl
ZDsKKyAgICAgICAgICAgIG1fZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgICAgICB9
CisKKyAgICAgICAgYm9vbCBpc1ZhbGlkKGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZSAhPSBJc05vdFZhbGlkICYmIG1fZGVmYXVs
dFZhbHVlID09IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgVmFsdWUgbV92YWx1ZTsKKyAgICAgICAgYm9vbCBtX2RlZmF1bHRWYWx1ZTsgLy8gTmVlZHMg
dG8gYmUgdHJha2VkIGFzIGEgcGFydCBvZiB0aGUgc2lnbmF0dXJlIHNpbmNlIGl0IGNhbiBiZSBj
aGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZXNDYWNoZSog
ZnJvbShEb2N1bWVudCopOworCisgICAgdm9pZCB2YWxpZGF0ZUFnYWluc3QoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIHsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnREb21haW4gPSBkb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKS0+ZG9tYWluKCk7CisgICAgICAgIGlmIChjdXJyZW50RG9tYWluID09
IG1fZG9tYWluKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2RvbWFpbiA9IGN1cnJl
bnREb21haW47CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29udGV4dEZlYXR1cmVz
OjpGZWF0dXJlVHlwZVNpemU7ICsraSkKKyAgICAgICAgICAgIG1fZW50cmllc1tpXSA9IEVudHJ5
KCk7CisgICAgfQorCisgICAgRW50cnkqIGF0KENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGUg
dHlwZSkKKyAgICB7CisgICAgICAgIHNpemVfdCBpbmRleCA9IHN0YXRpY19jYXN0PHNpemVfdD4o
dHlwZSk7CisgICAgICAgIEFTU0VSVChpbmRleCA8IENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5
cGVTaXplKTsKKyAgICAgICAgcmV0dXJuICYobV9lbnRyaWVzW2luZGV4XSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFN0cmluZyBtX2RvbWFpbjsKKyAgICBFbnRyeSBtX2VudHJpZXNbQ29udGV4
dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemVdOworfTsKKworY29uc3QgQXRvbWljU3RyaW5nJiBD
b250ZXh0RmVhdHVyZXNDYWNoZTo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlc0NhY2hlIikpOwor
ICAgIHJldHVybiBuYW1lOworfQorCitDb250ZXh0RmVhdHVyZXNDYWNoZSogQ29udGV4dEZlYXR1
cmVzQ2FjaGU6OmZyb20oRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIENvbnRleHRGZWF0dXJl
c0NhY2hlKiBjYWNoZSA9IHN0YXRpY19jYXN0PENvbnRleHRGZWF0dXJlc0NhY2hlKj4oU3VwcGxl
bWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6ZnJvbShkb2N1bWVudCwgc3VwcGxlbWVudE5h
bWUoKSkpOworICAgIGlmICghY2FjaGUpIHsKKyAgICAgICAgY2FjaGUgPSBuZXcgQ29udGV4dEZl
YXR1cmVzQ2FjaGUoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
Pjo6cHJvdmlkZVRvKGRvY3VtZW50LCBzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cihjYWNoZSkp
OworICAgIH0KKworICAgIGNhY2hlLT52YWxpZGF0ZUFnYWluc3QoZG9jdW1lbnQpOworICAgIHJl
dHVybiBjYWNoZTsKK30KKwogYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJs
ZWQoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6
OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQogeworICAgIENvbnRleHRGZWF0
dXJlc0NhY2hlOjpFbnRyeSogY2FjaGUgPSBDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbShkb2N1
bWVudCktPmF0KHR5cGUpOworICAgIGlmICghY2FjaGUtPmlzVmFsaWQoZGVmYXVsdFZhbHVlKSkK
KyAgICAgICAgY2FjaGUtPnNldChhc2tJZklzRW5hYmxlZChkb2N1bWVudCwgdHlwZSwgZGVmYXVs
dFZhbHVlKSwgZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gY2FjaGUtPmlzRW5hYmxlZCgpOwor
fQorCitib29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNFbmFibGVkKFdlYkNv
cmU6OkRvY3VtZW50KiBkb2N1bWVudCwgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJl
VHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKICAgICBpZiAoIW1fY2xpZW50KQogICAg
ICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKaW5kZXggZWExZjk1NDhkOTI4
MDIwYzYwNmQ0ZmRiZWY0OTQxNTQzYmIyYmI4OS4uMWEyYmYyZjUxNWE4MGY1ZmMyMWNkMTEzYWE3
NzA1ZDNkOTVlZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29u
dGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIGNsaWVudCkg
eyBtX2NsaWVudCA9IGNsaWVudDsgfQogCiBwcml2YXRlOgorICAgIGJvb2wgYXNrSWZJc0VuYWJs
ZWQoV2ViQ29yZTo6RG9jdW1lbnQqLCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVU
eXBlLCBib29sIGRlZmF1bHRWYWx1ZSk7CisKICAgICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBtX2Ns
aWVudDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151190</attachid>
            <date>2012-07-08 23:37:25 -0700</date>
            <delta_ts>2012-07-08 23:41:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90367-20120709153724.patch</filename>
            <type>text/plain</type>
            <size>7242</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4Y2Y4ODVjNjQzYmY4
MjJkYjk5MjZmZmIxZmM1ODc1M2U0YjMyYS4uYTQwZDY0MjIzOGYzMGRmMDU2ODBmNjg0YzQ3YjBk
MmM0OTM5YjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA3LTAzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29u
dGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDogQWRk
ZWQgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemUgdG8gZ2V0IHRoZSBudW1iZXIgb2Yg
dGhlIGVudW0gaXRlbXMuCisKIDIwMTItMDctMDUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgSGVhcC11c2UtYWZ0ZXItZnJlZSBpbiBXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmRlc3Ryb3lBbmRDbGVhbnVwQW5vbnltb3VzV3JhcHBlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNzM4NDk0MDQ3MGJmZDMyOTM0YTdjNDk3ZGE1OWVkNTNjNWQ0ZTRi
Mi4uMWJlMmZkYzcyODhjZjNmMmIwOTBiNDM5M2JiZTg1NDkyNzZlZTM3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wNy0wMyAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvbnRleHRGZWF0
dXJlc0NsaWVudDo6aXNFbmFibGVkIGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMzY3CisKKyAgICAgICAgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50SW1wbDo6aXNFbmFibGVkIHRvdWNoZXMgYSBoZWF2eSBwYXJ0IGluIGNocm9tZQorICAgICAg
ICB3aGVyZSBsb2NrcyBhcmUgYWNxdWlyZWQgZm9yIGVhY2ggaW52b2NhdGlvbi4KKworICAgICAg
ICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGEgc2V0IG9mIGNhY2hlcyB0byBhdm9pZCBzdWNoIHNs
b3cgY2FsbHMuCisgICAgICAgIFRoZSBjYWNoZSBjbGFzcyBDb250ZXh0RmVhdHVyZXNDYWNoZSBp
cyBpbXBsZW1lbnRlZCBhcyBhCisgICAgICAgIFN1cHBsZW1lbnQgb2YgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBiZWNhdXNlIHRoZSBmbGFnIGJpdHMKKyAgICAgICAgZGVwZW5kIG9uIHRoZSBkb21h
aW4gb2YgZWFjaCBEb2N1bWVudC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHNyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKENvbnRleHRGZWF0dXJlc0NhY2hlKToKKyAgICAgICAgKEVudHJ5KToKKyAgICAgICAgKFdl
YktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpFbnRyeSk6CisgICAgICAgIChXZWJL
aXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6aXNFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpzZXQpOgorICAgICAgICAoV2ViS2l0
OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50cnk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViS2l0
OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6dmFsaWRhdGVBZ2FpbnN0KToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OmVudHJ5Rm9yKToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpzdXBwbGVtZW50TmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpmcm9tKToKKyAgICAgICAgKFdl
YktpdDo6Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6aXNFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6YXNrSWZJc0VuYWJsZWQpOgorICAgICAg
ICAqIHNyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmg6CisgICAgICAgIChDb250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsKToKKwogMjAxMi0wNy0wNSAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gZ2FyZGVuaW5nLiBS
b2xsIENocm9taXVtIERFUFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0
RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAppbmRleCBl
ZjY2MjIwN2U3ZjZiYjJiMGVhODc2MTQ4ZjQxMjkxZDI2ZDIxNjIxLi43NzU1Mzg2NjAwMzMwMmRh
ODk2MDJhYmUyMmYyOTVkMGYyMWUwMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGV4dEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJl
cy5oCkBAIC00MCw5ICs0MCwxMCBAQCBjbGFzcyBQYWdlOwogY2xhc3MgQ29udGV4dEZlYXR1cmVz
IDogcHVibGljIFJlZkNvdW50ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRGZWF0dXJlcz4gewog
cHVibGljOgogICAgIGVudW0gRmVhdHVyZVR5cGUgewotICAgICAgICBTaGFkb3dET00sCisgICAg
ICAgIFNoYWRvd0RPTSA9IDAsCiAgICAgICAgIFN0eWxlU2NvcGVkLAotICAgICAgICBQYWdlUG9w
dXAKKyAgICAgICAgUGFnZVBvcHVwLAorICAgICAgICBGZWF0dXJlVHlwZVNpemUgLy8gU2hvdWxk
IGJlIHRoZSBsYXN0IGVuZXRyeS4KICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKaW5kZXggYWFkYTA3Nzg3NjRm
MDI2ZWE4NjZlNzlhNmZhOWMxNTY4ZGJkZGZhNy4uNzNhNzAyNjU0ZmEyN2E4MjFiOTUxODk1ZmM1
N2JlYzg2N2Q5NWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29u
dGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKQEAgLTMyLDEzICszMiwxMDcgQEAKICNp
bmNsdWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdURjsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2Ns
YXNzIENvbnRleHRGZWF0dXJlc0NhY2hlIDogcHVibGljIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dD4geworcHVibGljOgorICAgIGNsYXNzIEVudHJ5IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIGVudW0gVmFsdWUgeworICAgICAgICAgICAgSXNFbmFibGVkLAorICAgICAgICAgICAg
SXNEaXNhYmxlZCwKKyAgICAgICAgICAgIElzTm90VmFsaWQKKyAgICAgICAgfTsKKworICAgICAg
ICBFbnRyeSgpCisgICAgICAgICAgICA6IG1fdmFsdWUoSXNOb3RWYWxpZCkKKyAgICAgICAgICAg
ICwgbV9kZWZhdWx0VmFsdWUoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAgIGJvb2wgaXNF
bmFibGVkKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG1fdmFsdWUgIT0g
SXNOb3RWYWxpZCk7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZSA9PSBJc0VuYWJsZWQ7Cisg
ICAgICAgIH0KKworICAgICAgICB2b2lkIHNldChib29sIHZhbHVlLCBib29sIGRlZmF1bHRWYWx1
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVlID8gSXNFbmFibGVkIDog
SXNEaXNhYmxlZDsKKyAgICAgICAgICAgIG1fZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOwor
ICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1ZhbGlkKGJvb2wgZGVmYXVsdFZhbHVlKSBjb25z
dAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZSAhPSBJc05vdFZhbGlkICYm
IG1fZGVmYXVsdFZhbHVlID09IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0
ZToKKyAgICAgICAgVmFsdWUgbV92YWx1ZTsKKyAgICAgICAgYm9vbCBtX2RlZmF1bHRWYWx1ZTsg
Ly8gTmVlZHMgdG8gYmUgdHJha2VkIGFzIGEgcGFydCBvZiB0aGUgc2lnbmF0dXJlIHNpbmNlIGl0
IGNhbiBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVy
ZXNDYWNoZSogZnJvbShEb2N1bWVudCopOworCisgICAgRW50cnkmIGVudHJ5Rm9yKENvbnRleHRG
ZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHNpemVfdCBpbmRleCA9
IHN0YXRpY19jYXN0PHNpemVfdD4odHlwZSk7CisgICAgICAgIEFTU0VSVChpbmRleCA8IENvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXplKTsKKyAgICAgICAgcmV0dXJuIG1fZW50cmllc1tp
bmRleF07CisgICAgfQorCisgICAgdm9pZCB2YWxpZGF0ZUFnYWluc3QoRG9jdW1lbnQqKTsKKwor
cHJpdmF0ZToKKyAgICBTdHJpbmcgbV9kb21haW47CisgICAgRW50cnkgbV9lbnRyaWVzW0NvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXplXTsKK307CisKK2NvbnN0IEF0b21pY1N0cmluZyYg
Q29udGV4dEZlYXR1cmVzQ2FjaGU6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJDb250ZXh0RmVhdHVyZXNDYWNoZSIpKTsK
KyAgICByZXR1cm4gbmFtZTsKK30KKworQ29udGV4dEZlYXR1cmVzQ2FjaGUqIENvbnRleHRGZWF0
dXJlc0NhY2hlOjpmcm9tKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBDb250ZXh0RmVhdHVy
ZXNDYWNoZSogY2FjaGUgPSBzdGF0aWNfY2FzdDxDb250ZXh0RmVhdHVyZXNDYWNoZSo+KFN1cHBs
ZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20oZG9jdW1lbnQsIHN1cHBsZW1lbnRO
YW1lKCkpKTsKKyAgICBpZiAoIWNhY2hlKSB7CisgICAgICAgIGNhY2hlID0gbmV3IENvbnRleHRG
ZWF0dXJlc0NhY2hlKCk7CisgICAgICAgIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD46OnByb3ZpZGVUbyhkb2N1bWVudCwgc3VwcGxlbWVudE5hbWUoKSwgYWRvcHRQdHIoY2FjaGUp
KTsKKyAgICB9CisKKyAgICBjYWNoZS0+dmFsaWRhdGVBZ2FpbnN0KGRvY3VtZW50KTsKKyAgICBy
ZXR1cm4gY2FjaGU7Cit9CisKK2lubGluZSB2b2lkIENvbnRleHRGZWF0dXJlc0NhY2hlOjp2YWxp
ZGF0ZUFnYWluc3QoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFN0cmluZyBjdXJyZW50RG9t
YWluID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmRvbWFpbigpOworICAgIGlmIChjdXJy
ZW50RG9tYWluID09IG1fZG9tYWluKQorICAgICAgICByZXR1cm47CisgICAgbV9kb21haW4gPSBj
dXJyZW50RG9tYWluOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29udGV4dEZlYXR1cmVz
OjpGZWF0dXJlVHlwZVNpemU7ICsraSkKKyAgICAgICAgbV9lbnRyaWVzW2ldID0gRW50cnkoKTsK
K30KKwogYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQoV2ViQ29yZTo6
RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBl
IHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQogeworICAgIENvbnRleHRGZWF0dXJlc0NhY2hlOjpF
bnRyeSYgY2FjaGUgPSBDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbShkb2N1bWVudCktPmVudHJ5
Rm9yKHR5cGUpOworICAgIGlmICghY2FjaGUuaXNWYWxpZChkZWZhdWx0VmFsdWUpKQorICAgICAg
ICBjYWNoZS5zZXQoYXNrSWZJc0VuYWJsZWQoZG9jdW1lbnQsIHR5cGUsIGRlZmF1bHRWYWx1ZSks
IGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIGNhY2hlLmlzRW5hYmxlZCgpOworfQorCitib29s
IENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNFbmFibGVkKFdlYkNvcmU6OkRvY3Vt
ZW50KiBkb2N1bWVudCwgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSB0eXBl
LCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKaW5kZXggZWExZjk1NDhkOTI4MDIwYzYwNmQ0
ZmRiZWY0OTQxNTQzYmIyYmI4OS4uMWEyYmYyZjUxNWE4MGY1ZmMyMWNkMTEzYWE3NzA1ZDNkOTVl
ZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1
cmVzQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRG
ZWF0dXJlc0NsaWVudEltcGwuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIGNsaWVudCkgeyBtX2NsaWVu
dCA9IGNsaWVudDsgfQogCiBwcml2YXRlOgorICAgIGJvb2wgYXNrSWZJc0VuYWJsZWQoV2ViQ29y
ZTo6RG9jdW1lbnQqLCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBib29s
IGRlZmF1bHRWYWx1ZSk7CisKICAgICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKIH07
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151191</attachid>
            <date>2012-07-08 23:41:37 -0700</date>
            <delta_ts>2012-07-09 00:14:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90367-20120709154136.patch</filename>
            <type>text/plain</type>
            <size>7256</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4Y2Y4ODVjNjQzYmY4
MjJkYjk5MjZmZmIxZmM1ODc1M2U0YjMyYS4uYTQwZDY0MjIzOGYzMGRmMDU2ODBmNjg0YzQ3YjBk
MmM0OTM5YjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA3LTAzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29u
dGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDogQWRk
ZWQgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemUgdG8gZ2V0IHRoZSBudW1iZXIgb2Yg
dGhlIGVudW0gaXRlbXMuCisKIDIwMTItMDctMDUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgSGVhcC11c2UtYWZ0ZXItZnJlZSBpbiBXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmRlc3Ryb3lBbmRDbGVhbnVwQW5vbnltb3VzV3JhcHBlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNzM4NDk0MDQ3MGJmZDMyOTM0YTdjNDk3ZGE1OWVkNTNjNWQ0ZTRi
Mi4uZjM5Y2U5ZTMwNWNiMDQwZGQxNjJkYmEwNDNiY2FiNjZmNjE5YTQ1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wNy0wMyAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIENvbnRleHRGZWF0
dXJlc0NsaWVudDo6aXNFbmFibGVkIGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMzY3CisKKyAgICAgICAgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50SW1wbDo6aXNFbmFibGVkIHRvdWNoZXMgYSBoZWF2eSBwYXJ0IGluIGNocm9tZQorICAgICAg
ICB3aGVyZSBsb2NrcyBhcmUgYWNxdWlyZWQgZm9yIGVhY2ggaW52b2NhdGlvbi4KKworICAgICAg
ICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGEgc2V0IG9mIGNhY2hlcyB0byBhdm9pZCBzdWNoIHNs
b3cgY2FsbHMuCisgICAgICAgIFRoZSBjYWNoZSBjbGFzcyBDb250ZXh0RmVhdHVyZXNDYWNoZSBp
cyBpbXBsZW1lbnRlZCBhcyBhCisgICAgICAgIFN1cHBsZW1lbnQgb2YgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBiZWNhdXNlIHRoZSBmbGFnIGJpdHMKKyAgICAgICAgZGVwZW5kIG9uIHRoZSBkb21h
aW4gb2YgZWFjaCBEb2N1bWVudC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHNyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKENvbnRleHRGZWF0dXJlc0NhY2hlKToKKyAgICAgICAgKEVudHJ5KToKKyAgICAgICAgKFdl
YktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpFbnRyeSk6CisgICAgICAgIChXZWJL
aXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6aXNFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpzZXQpOgorICAgICAgICAoV2ViS2l0
OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50cnk6Om5lZWRzUmVmcmVzaCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjp2YWxpZGF0ZUFnYWluc3QpOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZW50cnlGb3IpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OmZyb20pOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjphc2tJZklzRW5hYmxlZCk6Cisg
ICAgICAgICogc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaDoKKyAgICAgICAgKENvbnRl
eHRGZWF0dXJlc0NsaWVudEltcGwpOgorCiAyMDEyLTA3LTA1ICBZb3NoaWZ1bWkgSW5vdWUgIDx5
b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSBnYXJkZW5p
bmcuIFJvbGwgQ2hyb21pdW0gREVQUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCmlu
ZGV4IGVmNjYyMjA3ZTdmNmJiMmIwZWE4NzYxNDhmNDEyOTFkMjZkMjE2MjEuLjc3NTUzODY2MDAz
MzAyZGE4OTYwMmFiZTIyZjI5NWQwZjIxZTAwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250ZXh0RmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZl
YXR1cmVzLmgKQEAgLTQwLDkgKzQwLDEwIEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBDb250ZXh0RmVh
dHVyZXMgOiBwdWJsaWMgUmVmQ291bnRlZFN1cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVz
PiB7CiBwdWJsaWM6CiAgICAgZW51bSBGZWF0dXJlVHlwZSB7Ci0gICAgICAgIFNoYWRvd0RPTSwK
KyAgICAgICAgU2hhZG93RE9NID0gMCwKICAgICAgICAgU3R5bGVTY29wZWQsCi0gICAgICAgIFBh
Z2VQb3B1cAorICAgICAgICBQYWdlUG9wdXAsCisgICAgICAgIEZlYXR1cmVUeXBlU2l6ZSAvLyBT
aG91bGQgYmUgdGhlIGxhc3QgZW5ldHJ5LgogICAgIH07CiAKICAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcAppbmRleCBhYWRhMDc3
ODc2NGYwMjZlYTg2NmU3OWE2ZmE5YzE1NjhkYmRkZmE3Li5kMzU3NjczMWRmYWYwMTdiOTkzY2M5
YzM5ZTI5M2UxOGY5YWJkYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcApAQCAtMzIsMTMgKzMyLDEwNyBA
QAogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCIKIAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGllbnQuaCIKIAordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV1RGOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2FjaGUgOiBwdWJsaWMgU3VwcGxlbWVudDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0PiB7CitwdWJsaWM6CisgICAgY2xhc3MgRW50cnkgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgZW51bSBWYWx1ZSB7CisgICAgICAgICAgICBJc0VuYWJsZWQsCisgICAgICAg
ICAgICBJc0Rpc2FibGVkLAorICAgICAgICAgICAgSXNOb3RWYWxpZAorICAgICAgICB9OworCisg
ICAgICAgIEVudHJ5KCkKKyAgICAgICAgICAgIDogbV92YWx1ZShJc05vdFZhbGlkKQorICAgICAg
ICAgICAgLCBtX2RlZmF1bHRWYWx1ZShmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgYm9v
bCBpc0VuYWJsZWQoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV92YWx1
ZSAhPSBJc05vdFZhbGlkKTsKKyAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlID09IElzRW5hYmxl
ZDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0KGJvb2wgdmFsdWUsIGJvb2wgZGVmYXVs
dFZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWUgPyBJc0VuYWJs
ZWQgOiBJc0Rpc2FibGVkOworICAgICAgICAgICAgbV9kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFs
dWU7CisgICAgICAgIH0KKworICAgICAgICBib29sIG5lZWRzUmVmcmVzaChib29sIGRlZmF1bHRW
YWx1ZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUgIT0gSXNO
b3RWYWxpZCAmJiBtX2RlZmF1bHRWYWx1ZSA9PSBkZWZhdWx0VmFsdWU7CisgICAgICAgIH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFZhbHVlIG1fdmFsdWU7CisgICAgICAgIGJvb2wgbV9kZWZh
dWx0VmFsdWU7IC8vIE5lZWRzIHRvIGJlIHRyYWtlZCBhcyBhIHBhcnQgb2YgdGhlIHNpZ25hdHVy
ZSBzaW5jZSBpdCBjYW4gYmUgY2hhbmdlZCBkeW5hbWljYWxseS4KKyAgICB9OworCisgICAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgQ29u
dGV4dEZlYXR1cmVzQ2FjaGUqIGZyb20oRG9jdW1lbnQqKTsKKworICAgIEVudHJ5JiBlbnRyeUZv
cihDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzaXpl
X3QgaW5kZXggPSBzdGF0aWNfY2FzdDxzaXplX3Q+KHR5cGUpOworICAgICAgICBBU1NFUlQoaW5k
ZXggPCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlU2l6ZSk7CisgICAgICAgIHJldHVybiBt
X2VudHJpZXNbaW5kZXhdOworICAgIH0KKworICAgIHZvaWQgdmFsaWRhdGVBZ2FpbnN0KERvY3Vt
ZW50Kik7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fZG9tYWluOworICAgIEVudHJ5IG1fZW50
cmllc1tDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlU2l6ZV07Cit9OworCitjb25zdCBBdG9t
aWNTdHJpbmcmIENvbnRleHRGZWF0dXJlc0NhY2hlOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiQ29udGV4dEZlYXR1cmVz
Q2FjaGUiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKK0NvbnRleHRGZWF0dXJlc0NhY2hlKiBD
b250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgQ29u
dGV4dEZlYXR1cmVzQ2FjaGUqIGNhY2hlID0gc3RhdGljX2Nhc3Q8Q29udGV4dEZlYXR1cmVzQ2Fj
aGUqPihTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+Ojpmcm9tKGRvY3VtZW50LCBz
dXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFjYWNoZSkgeworICAgICAgICBjYWNoZSA9IG5l
dyBDb250ZXh0RmVhdHVyZXNDYWNoZSgpOworICAgICAgICBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ+Ojpwcm92aWRlVG8oZG9jdW1lbnQsIHN1cHBsZW1lbnROYW1lKCksIGFkb3B0
UHRyKGNhY2hlKSk7CisgICAgfQorCisgICAgY2FjaGUtPnZhbGlkYXRlQWdhaW5zdChkb2N1bWVu
dCk7CisgICAgcmV0dXJuIGNhY2hlOworfQorCitpbmxpbmUgdm9pZCBDb250ZXh0RmVhdHVyZXND
YWNoZTo6dmFsaWRhdGVBZ2FpbnN0KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJpbmcg
Y3VycmVudERvbWFpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5kb21haW4oKTsKKyAg
ICBpZiAoY3VycmVudERvbWFpbiA9PSBtX2RvbWFpbikKKyAgICAgICAgcmV0dXJuOworICAgIG1f
ZG9tYWluID0gY3VycmVudERvbWFpbjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IENvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXplOyArK2kpCisgICAgICAgIG1fZW50cmllc1tpXSA9
IEVudHJ5KCk7Cit9CisKIGJvb2wgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6aXNFbmFibGVk
KFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCwgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpG
ZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKIHsKKyAgICBDb250ZXh0RmVhdHVy
ZXNDYWNoZTo6RW50cnkmIGNhY2hlID0gQ29udGV4dEZlYXR1cmVzQ2FjaGU6OmZyb20oZG9jdW1l
bnQpLT5lbnRyeUZvcih0eXBlKTsKKyAgICBpZiAoY2FjaGUubmVlZHNSZWZyZXNoKGRlZmF1bHRW
YWx1ZSkpCisgICAgICAgIGNhY2hlLnNldChhc2tJZklzRW5hYmxlZChkb2N1bWVudCwgdHlwZSwg
ZGVmYXVsdFZhbHVlKSwgZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gY2FjaGUuaXNFbmFibGVk
KCk7Cit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6YXNrSWZJc0VuYWJsZWQo
V2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZl
YXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQorewogICAgIGlmICghbV9jbGllbnQp
CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaAppbmRleCBlYTFmOTU0
OGQ5MjgwMjBjNjA2ZDRmZGJlZjQ5NDE1NDNiYjJiYjg5Li4xYTJiZjJmNTE1YTgwZjVmYzIxY2Qx
MTNhYTc3MDVkM2Q5NWVkZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCogY2xp
ZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAKIHByaXZhdGU6CisgICAgYm9vbCBhc2tJZklz
RW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCosIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6RmVh
dHVyZVR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKTsKKwogICAgIFdlYlBlcm1pc3Npb25DbGllbnQq
IG1fY2xpZW50OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151196</attachid>
            <date>2012-07-09 00:14:55 -0700</date>
            <delta_ts>2012-07-09 00:50:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90367-20120709161454.patch</filename>
            <type>text/plain</type>
            <size>9646</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4Y2Y4ODVjNjQzYmY4
MjJkYjk5MjZmZmIxZmM1ODc1M2U0YjMyYS4uOWM2MjY1MjE0YzY1OTVlOWM4ODI3NjBmZWUyZjRl
ZWFmNWRlN2E0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA3LTA5ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29u
dGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudDo6dXJsRGlkQ2hhbmdlKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnVybERpZENoYW5nZSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRVUkwpOiBBZGRlZCBhbiB1cmxEaWRDaGFuZ2Uo
KSBjYWxsLgorCiAyMDEyLTA3LTA1ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgogCiAgICAgICAgIEhlYXAtdXNlLWFmdGVyLWZyZWUgaW4gV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpkZXN0cm95QW5kQ2xlYW51cEFub255bW91c1dyYXBwZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDczODQ5NDA0NzBiZmQzMjkzNGE3YzQ5N2RhNTllZDUzYzVkNGU0YjIuLjViNDc3
Mzc0NjQ2ZTE1NGIwMWRlZDZmY2RmOWM3ZWNkOTgwZGNlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDctMDkgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBDb250ZXh0RmVhdHVyZXNDbGll
bnQ6OmlzRW5hYmxlZCBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MDM2NworCisgICAgICAgIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6
OmlzRW5hYmxlZCB0b3VjaGVzIGEgaGVhdnkgcGFydCBpbiBjaHJvbWUKKyAgICAgICAgd2hlcmUg
bG9ja3MgYXJlIGFjcXVpcmVkIGZvciBlYWNoIGludm9jYXRpb24uCisKKyAgICAgICAgVGhpcyBj
aGFuZ2UgaW50cm9kdWNlcyBhIHNldCBvZiBjYWNoZXMgdG8gYXZvaWQgc3VjaCBzbG93IGNhbGxz
LgorICAgICAgICBUaGUgY2FjaGUgY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2FjaGUgaXMgaW1wbGVt
ZW50ZWQgYXMgYQorICAgICAgICBTdXBwbGVtZW50IG9mIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
YmVjYXVzZSB0aGUgZmxhZyBiaXRzCisgICAgICAgIGRlcGVuZCBvbiB0aGUgZG9tYWluIG9mIGVh
Y2ggRG9jdW1lbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChDb250
ZXh0RmVhdHVyZXNDYWNoZSk6IEFkZGVkLgorICAgICAgICAoRW50cnkpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpFbnRyeSk6CisgICAgICAg
IChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6aXNFbmFibGVkKToKKyAgICAg
ICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpzZXQpOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50cnk6Om5lZWRzUmVmcmVzaCk6CisgICAg
ICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjplbnRyeUZvcik6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbSk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpyZWZyZXNoQWdhaW5zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmlzRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OnVybERpZENoYW5nZSk6
IEFkZGVkIHRvIGludm9rZSByZWZyc2hBZ2FpbnN0LgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0
RmVhdHVyZXNDbGllbnRJbXBsOjphc2tJZklzRW5hYmxlZCk6CisgICAgICAgICogc3JjL0NvbnRl
eHRGZWF0dXJlc0NsaWVudEltcGwuaDoKKyAgICAgICAgKENvbnRleHRGZWF0dXJlc0NsaWVudElt
cGwpOgorCiAyMDEyLTA3LTA1ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSBnYXJkZW5pbmcuIFJvbGwgQ2hyb21pdW0g
REVQUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCmluZGV4IGVmNjYyMjA3ZTdmNmJi
MmIwZWE4NzYxNDhmNDEyOTFkMjZkMjE2MjEuLmYyODY2YmJhNjVmYTg4YjBmZTYwZjhkZDM4NmMw
NzJjZTU0YTg2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVy
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgKQEAgLTQwLDkg
KzQwLDEwIEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBDb250ZXh0RmVhdHVyZXMgOiBwdWJsaWMgUmVm
Q291bnRlZFN1cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVzPiB7CiBwdWJsaWM6CiAgICAg
ZW51bSBGZWF0dXJlVHlwZSB7Ci0gICAgICAgIFNoYWRvd0RPTSwKKyAgICAgICAgU2hhZG93RE9N
ID0gMCwKICAgICAgICAgU3R5bGVTY29wZWQsCi0gICAgICAgIFBhZ2VQb3B1cAorICAgICAgICBQ
YWdlUG9wdXAsCisgICAgICAgIEZlYXR1cmVUeXBlU2l6ZSAvLyBTaG91bGQgYmUgdGhlIGxhc3Qg
ZW5ldHJ5LgogICAgIH07CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVt
ZW50TmFtZSgpOwpAQCAtNTQsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGFn
ZVBvcHVwRW5hYmxlZChEb2N1bWVudCopOwogCiAgICAgYm9vbCBpc0VuYWJsZWQoRG9jdW1lbnQq
LCBGZWF0dXJlVHlwZSwgYm9vbCkgY29uc3Q7Ci0KKyAgICB2b2lkIHVybERpZENoYW5nZShEb2N1
bWVudCopOwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDb250ZXh0RmVhdHVyZXMoQ29udGV4dEZl
YXR1cmVzQ2xpZW50KiBjbGllbnQpCiAgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQpAQCAtNzcs
NiArNzgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Db250ZXh0RmVhdHVyZXNDbGllbnQo
KSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgQ29udGV4dEZlYXR1
cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCB1cmxEaWRDaGFuZ2UoRG9jdW1lbnQqKSB7IH0KIH07CiAK
IHZvaWQgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKFBhZ2UqLCBDb250ZXh0RmVhdHVyZXNDbGll
bnQqKTsKQEAgLTk0LDYgKzk2LDEzIEBAIGlubGluZSBib29sIENvbnRleHRGZWF0dXJlczo6aXNF
bmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRmVhdHVyZVR5cGUgdHlwZSwgYm9vCiAgICAgcmV0
dXJuIG1fY2xpZW50LT5pc0VuYWJsZWQoZG9jdW1lbnQsIHR5cGUsIGRlZmF1bHRWYWx1ZSk7CiB9
CiAKK2lubGluZSB2b2lkIENvbnRleHRGZWF0dXJlczo6dXJsRGlkQ2hhbmdlKERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Ns
aWVudC0+dXJsRGlkQ2hhbmdlKGRvY3VtZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gQ29udGV4dEZlYXR1cmVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGFkZGUzMTI3YWFlYzU5NTFhOTczNzRjYzc0ZTI4NWNkMmNiZmNmYjAuLjI4M2RhY2MxNjQ3
MTg2OTkxNjE2MTE0YjY1MGNhMjdlN2YwMTcxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMjY4NCw2ICsyNjg0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVy
bCkKICAgICBtX3VybCA9IG5ld1VSTDsKICAgICBtX2RvY3VtZW50VVJJID0gbV91cmwuc3RyaW5n
KCk7CiAgICAgdXBkYXRlQmFzZVVSTCgpOworICAgIGNvbnRleHRGZWF0dXJlcygpLT51cmxEaWRD
aGFuZ2UodGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUJhc2VVUkwoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJ
bXBsLmNwcAppbmRleCBhYWRhMDc3ODc2NGYwMjZlYTg2NmU3OWE2ZmE5YzE1NjhkYmRkZmE3Li45
MGMyNDVkYTA3YzA3ZDliNGQyYjkwM2VkZTI5YmIyZTRiNjMzMmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNw
cApAQCAtMzIsMTkgKzMyLDExNyBAQAogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlc0NsaWVudElt
cGwuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGll
bnQuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV1RGOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjpp
c0VuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3JlOjpDb250ZXh0RmVh
dHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQorY2xhc3MgQ29udGV4
dEZlYXR1cmVzQ2FjaGUgOiBwdWJsaWMgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
PiB7CitwdWJsaWM6CisgICAgY2xhc3MgRW50cnkgeworICAgIHB1YmxpYzoKKyAgICAgICAgZW51
bSBWYWx1ZSB7CisgICAgICAgICAgICBJc0VuYWJsZWQsCisgICAgICAgICAgICBJc0Rpc2FibGVk
LAorICAgICAgICAgICAgTmVlZHNSZWZyZXNoCisgICAgICAgIH07CisKKyAgICAgICAgRW50cnko
KQorICAgICAgICAgICAgOiBtX3ZhbHVlKE5lZWRzUmVmcmVzaCkKKyAgICAgICAgICAgICwgbV9k
ZWZhdWx0VmFsdWUoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAgIGJvb2wgaXNFbmFibGVk
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG1fdmFsdWUgIT0gTmVlZHNS
ZWZyZXNoKTsKKyAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlID09IElzRW5hYmxlZDsKKyAgICAg
ICAgfQorCisgICAgICAgIHZvaWQgc2V0KGJvb2wgdmFsdWUsIGJvb2wgZGVmYXVsdFZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWUgPyBJc0VuYWJsZWQgOiBJc0Rp
c2FibGVkOworICAgICAgICAgICAgbV9kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAg
ICAgIH0KKworICAgICAgICBib29sIG5lZWRzUmVmcmVzaChib29sIGRlZmF1bHRWYWx1ZSkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gTmVlZHNSZWZyZXNo
IHx8IG1fZGVmYXVsdFZhbHVlICE9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgcHJp
dmF0ZToKKyAgICAgICAgVmFsdWUgbV92YWx1ZTsKKyAgICAgICAgYm9vbCBtX2RlZmF1bHRWYWx1
ZTsgLy8gTmVlZHMgdG8gYmUgdHJha2VkIGFzIGEgcGFydCBvZiB0aGUgc2lnbmF0dXJlIHNpbmNl
IGl0IGNhbiBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgIH07CisKKyAgICBzdGF0aWMgY29u
c3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBDb250ZXh0RmVh
dHVyZXNDYWNoZSogZnJvbShEb2N1bWVudCopOworCisgICAgRW50cnkmIGVudHJ5Rm9yKENvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHNpemVfdCBpbmRl
eCA9IHN0YXRpY19jYXN0PHNpemVfdD4odHlwZSk7CisgICAgICAgIEFTU0VSVChpbmRleCA8IENv
bnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXplKTsKKyAgICAgICAgcmV0dXJuIG1fZW50cmll
c1tpbmRleF07CisgICAgfQorCisgICAgdm9pZCB2YWxpZGF0ZUFnYWluc3QoRG9jdW1lbnQqKTsK
KworcHJpdmF0ZToKKyAgICBTdHJpbmcgbV9kb21haW47CisgICAgRW50cnkgbV9lbnRyaWVzW0Nv
bnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXplXTsKK307CisKK2NvbnN0IEF0b21pY1N0cmlu
ZyYgQ29udGV4dEZlYXR1cmVzQ2FjaGU6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJDb250ZXh0RmVhdHVyZXNDYWNoZSIp
KTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworQ29udGV4dEZlYXR1cmVzQ2FjaGUqIENvbnRleHRG
ZWF0dXJlc0NhY2hlOjpmcm9tKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBDb250ZXh0RmVh
dHVyZXNDYWNoZSogY2FjaGUgPSBzdGF0aWNfY2FzdDxDb250ZXh0RmVhdHVyZXNDYWNoZSo+KFN1
cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20oZG9jdW1lbnQsIHN1cHBsZW1l
bnROYW1lKCkpKTsKKyAgICBpZiAoIWNhY2hlKSB7CisgICAgICAgIGNhY2hlID0gbmV3IENvbnRl
eHRGZWF0dXJlc0NhY2hlKCk7CisgICAgICAgIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dD46OnByb3ZpZGVUbyhkb2N1bWVudCwgc3VwcGxlbWVudE5hbWUoKSwgYWRvcHRQdHIoY2Fj
aGUpKTsKKyAgICB9CisKKyAgICByZXR1cm4gY2FjaGU7Cit9CisKK3ZvaWQgQ29udGV4dEZlYXR1
cmVzQ2FjaGU6OnZhbGlkYXRlQWdhaW5zdChEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgU3Ry
aW5nIGN1cnJlbnREb21haW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+ZG9tYWluKCk7
CisgICAgaWYgKGN1cnJlbnREb21haW4gPT0gbV9kb21haW4pCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2RvbWFpbiA9IGN1cnJlbnREb21haW47CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBD
b250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlU2l6ZTsgKytpKQorICAgICAgICBtX2VudHJpZXNb
aV0gPSBFbnRyeSgpOworfQorCitib29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmlzRW5h
YmxlZChEb2N1bWVudCogZG9jdW1lbnQsIENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlw
ZSwgYm9vbCBkZWZhdWx0VmFsdWUpCit7CisgICAgQ29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5
JiBjYWNoZSA9IENvbnRleHRGZWF0dXJlc0NhY2hlOjpmcm9tKGRvY3VtZW50KS0+ZW50cnlGb3Io
dHlwZSk7CisgICAgaWYgKGNhY2hlLm5lZWRzUmVmcmVzaChkZWZhdWx0VmFsdWUpKQorICAgICAg
ICBjYWNoZS5zZXQoYXNrSWZJc0VuYWJsZWQoZG9jdW1lbnQsIHR5cGUsIGRlZmF1bHRWYWx1ZSks
IGRlZmF1bHRWYWx1ZSk7CisgICAgcmV0dXJuIGNhY2hlLmlzRW5hYmxlZCgpOworfQorCit2b2lk
IENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OnVybERpZENoYW5nZShEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgQ29udGV4dEZlYXR1cmVzQ2FjaGU6OmZyb20oZG9jdW1lbnQpLT52YWxpZGF0
ZUFnYWluc3QoZG9jdW1lbnQpOworfQorCitib29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6
OmFza0lmSXNFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgQ29udGV4dEZlYXR1cmVzOjpGZWF0
dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKIHsKICAgICBpZiAoIW1fY2xpZW50KQog
ICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogCiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OlNoYWRvd0RPTToKLSAgICBjYXNlIFdlYkNv
cmU6OkNvbnRleHRGZWF0dXJlczo6U3R5bGVTY29wZWQ6CisgICAgY2FzZSBDb250ZXh0RmVhdHVy
ZXM6OlNoYWRvd0RPTToKKyAgICBjYXNlIENvbnRleHRGZWF0dXJlczo6U3R5bGVTY29wZWQ6CiAg
ICAgICAgIHJldHVybiBtX2NsaWVudC0+YWxsb3dXZWJDb21wb25lbnRzKFdlYkRvY3VtZW50KGRv
Y3VtZW50KSwgZGVmYXVsdFZhbHVlKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZGVm
YXVsdFZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4
dEZlYXR1cmVzQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4
dEZlYXR1cmVzQ2xpZW50SW1wbC5oCmluZGV4IGVhMWY5NTQ4ZDkyODAyMGM2MDZkNGZkYmVmNDk0
MTU0M2JiMmJiODkuLjI2ZDk5MzA0ODc2NjZhNDAyODNiMjI0ZDBjOTcxZWRkNWY2NGIyMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXND
bGllbnRJbXBsLmgKQEAgLTQ0LDkgKzQ0LDEyIEBAIHB1YmxpYzoKICAgICB7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBpc0VuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqLCBXZWJDb3JlOjpDb250ZXh0
RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBib29sIGRlZmF1bHRWYWx1ZSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHVybERpZENoYW5nZShXZWJDb3JlOjpEb2N1bWVudCopIE9WRVJSSURFOwog
ICAgIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBjbGllbnQp
IHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KIAogcHJpdmF0ZToKKyAgICBib29sIGFza0lmSXNFbmFi
bGVkKFdlYkNvcmU6OkRvY3VtZW50KiwgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJl
VHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpOworCiAgICAgV2ViUGVybWlzc2lvbkNsaWVudCogbV9j
bGllbnQ7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151204</attachid>
            <date>2012-07-09 00:50:27 -0700</date>
            <delta_ts>2012-07-09 01:54:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-90367-20120709165026.patch</filename>
            <type>text/plain</type>
            <size>9591</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQyYTk0YmNiNmJmNjI0
YTM4NDM0MTQ3ZWNlODIxNTFjZTk0Y2EyYy4uYjE2ZjhhNjM0NWJmNTkyOWM1OTQxMTQzOWIxMTA1
NDc0OGZhZmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA3LTA5ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29u
dGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KKworICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudDo6dXJsRGlkQ2hhbmdlKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnVybERpZENoYW5nZSk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRVUkwpOiBBZGRlZCBhbiB1cmxEaWRDaGFuZ2UoKSBj
YWxsLgorCiAyMDEyLTA3LTA4ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW1BsYXRmb3JtLU1hY10gRGVyaXZlIExvY2FsZU1hYy57Y3BwLGh9IGFuZCBM
b2NhbGl6ZWREYXRlTWFjLmNwcCBmcm9tIExvY2FsZVdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA3Mzg0OTQwNDcwYmZkMzI5MzRhN2M0OTdkYTU5ZWQ1M2M1ZDRlNGIyLi44MTlkNTM5
NWQ5ZWM2NzIwMmJkYjUxNzMwMzM4NTVmNDExNGRkMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA3LTA5ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0
YUBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ29udGV4dEZlYXR1cmVzQ2xpZW50
Ojppc0VuYWJsZWQgaXMgc2xvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTAzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKwor
ICAgICAgICBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQgdG91Y2hlcyBhIGhl
YXZ5IHBhcnQgaW4gY2hyb21lCisgICAgICAgIHdoZXJlIGxvY2tzIGFyZSBhY3F1aXJlZCBmb3Ig
ZWFjaCBpbnZvY2F0aW9uLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYSBzZXQg
b2YgY2FjaGVzIHRvIGF2b2lkIHN1Y2ggc2xvdyBjYWxscy4KKyAgICAgICAgVGhlIGNhY2hlIGNs
YXNzIENvbnRleHRGZWF0dXJlc0NhY2hlIGlzIGltcGxlbWVudGVkIGFzIGEKKyAgICAgICAgU3Vw
cGxlbWVudCBvZiBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGJlY2F1c2UgdGhlIGZsYWcgYml0cwor
ICAgICAgICBkZXBlbmQgb24gdGhlIGRvbWFpbiBvZiBlYWNoIERvY3VtZW50LgorCisgICAgICAg
ICogc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwOgorICAgICAgICAoQ29udGV4dEZl
YXR1cmVzQ2FjaGUpOiBBZGRlZC4KKyAgICAgICAgKEVudHJ5KTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6RW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50cnk6OmlzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NhY2hlOjpFbnRyeTo6c2V0KToKKyAgICAgICAgKFdlYktp
dDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OkVudHJ5OjpuZWVkc1JlZnJlc2gpOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZW50cnlGb3IpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2FjaGU6OmZyb20pOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDYWNoZTo6cmVmcmVzaEFnYWluc3QpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjp1cmxEaWRDaGFuZ2UpOiBBZGRl
ZCB0byBpbnZva2UgcmVmcnNoQWdhaW5zdC4KKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1
cmVzQ2xpZW50SW1wbDo6YXNrSWZJc0VuYWJsZWQpOgorICAgICAgICAqIHNyYy9Db250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsLmg6CisgICAgICAgIChDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsKToK
KwogMjAxMi0wNy0wNSAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gZ2FyZGVuaW5nLiBSb2xsIENocm9taXVtIERFUFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAppbmRleCBlZjY2MjIwN2U3ZjZiYjJiMGVh
ODc2MTQ4ZjQxMjkxZDI2ZDIxNjIxLi5mYzMwMzZkMjE0N2RjOGFjZmU3MjY2Y2MxMDNlYmYzOGFl
M2U4YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCkBAIC00MCw5ICs0MCwx
MCBAQCBjbGFzcyBQYWdlOwogY2xhc3MgQ29udGV4dEZlYXR1cmVzIDogcHVibGljIFJlZkNvdW50
ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRGZWF0dXJlcz4gewogcHVibGljOgogICAgIGVudW0g
RmVhdHVyZVR5cGUgewotICAgICAgICBTaGFkb3dET00sCisgICAgICAgIFNoYWRvd0RPTSA9IDAs
CiAgICAgICAgIFN0eWxlU2NvcGVkLAotICAgICAgICBQYWdlUG9wdXAKKyAgICAgICAgUGFnZVBv
cHVwLAorICAgICAgICBGZWF0dXJlVHlwZVNpemUgLy8gU2hvdWxkIGJlIHRoZSBsYXN0IGVuZXRy
eS4KICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5h
bWUoKTsKQEAgLTU0LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1
cEVuYWJsZWQoRG9jdW1lbnQqKTsKIAogICAgIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgRmVh
dHVyZVR5cGUsIGJvb2wpIGNvbnN0OworICAgIHZvaWQgdXJsRGlkQ2hhbmdlKERvY3VtZW50Kik7
CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ29udGV4dEZlYXR1cmVzKENvbnRleHRGZWF0dXJl
c0NsaWVudCogY2xpZW50KQpAQCAtNzcsNiArNzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5Db250ZXh0RmVhdHVyZXNDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVk
KERvY3VtZW50KiwgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFs
dWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCB1cmxEaWRDaGFu
Z2UoRG9jdW1lbnQqKSB7IH0KIH07CiAKIHZvaWQgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKFBh
Z2UqLCBDb250ZXh0RmVhdHVyZXNDbGllbnQqKTsKQEAgLTk0LDYgKzk3LDEzIEBAIGlubGluZSBi
b29sIENvbnRleHRGZWF0dXJlczo6aXNFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRmVhdHVy
ZVR5cGUgdHlwZSwgYm9vCiAgICAgcmV0dXJuIG1fY2xpZW50LT5pc0VuYWJsZWQoZG9jdW1lbnQs
IHR5cGUsIGRlZmF1bHRWYWx1ZSk7CiB9CiAKK2lubGluZSB2b2lkIENvbnRleHRGZWF0dXJlczo6
dXJsRGlkQ2hhbmdlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+dXJsRGlkQ2hhbmdlKGRvY3VtZW50KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQ29udGV4dEZlYXR1cmVzX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGFkZGUzMTI3YWFlYzU5NTFhOTczNzRjYzc0ZTI4
NWNkMmNiZmNmYjAuLjI4M2RhY2MxNjQ3MTg2OTkxNjE2MTE0YjY1MGNhMjdlN2YwMTcxYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjY4NCw2ICsyNjg0LDcgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0VVJMKGNvbnN0IEtVUkwmIHVybCkKICAgICBtX3VybCA9IG5ld1VSTDsKICAgICBtX2Rv
Y3VtZW50VVJJID0gbV91cmwuc3RyaW5nKCk7CiAgICAgdXBkYXRlQmFzZVVSTCgpOworICAgIGNv
bnRleHRGZWF0dXJlcygpLT51cmxEaWRDaGFuZ2UodGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6
OnVwZGF0ZUJhc2VVUkwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcAppbmRleCBhYWRhMDc3ODc2NGYwMjZlYTg2
NmU3OWE2ZmE5YzE1NjhkYmRkZmE3Li42M2UxNjcyNmVkMDU0ZDVjMzdiNjBhZTBkZTg1ZTc3Y2Qy
Zjk0MmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcApAQCAtMzIsMTkgKzMyLDExNiBAQAogI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIldlYlBlcm1pc3Npb25DbGllbnQuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1ib29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6
OmlzRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQsIFdlYkNvcmU6OkNvbnRleHRG
ZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpCitjbGFzcyBDb250
ZXh0RmVhdHVyZXNDYWNoZSA6IHB1YmxpYyBTdXBwbGVtZW50PFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ+IHsKK3B1YmxpYzoKKyAgICBjbGFzcyBFbnRyeSB7CisgICAgcHVibGljOgorICAgICAgICBl
bnVtIFZhbHVlIHsKKyAgICAgICAgICAgIElzRW5hYmxlZCwKKyAgICAgICAgICAgIElzRGlzYWJs
ZWQsCisgICAgICAgICAgICBOZWVkc1JlZnJlc2gKKyAgICAgICAgfTsKKworICAgICAgICBFbnRy
eSgpCisgICAgICAgICAgICA6IG1fdmFsdWUoTmVlZHNSZWZyZXNoKQorICAgICAgICAgICAgLCBt
X2RlZmF1bHRWYWx1ZShmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgYm9vbCBpc0VuYWJs
ZWQoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV92YWx1ZSAhPSBOZWVk
c1JlZnJlc2gpOworICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gSXNFbmFibGVkOworICAg
ICAgICB9CisKKyAgICAgICAgdm9pZCBzZXQoYm9vbCB2YWx1ZSwgYm9vbCBkZWZhdWx0VmFsdWUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdmFsdWUgPSB2YWx1ZSA/IElzRW5hYmxlZCA6IElz
RGlzYWJsZWQ7CisgICAgICAgICAgICBtX2RlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIGJvb2wgbmVlZHNSZWZyZXNoKGJvb2wgZGVmYXVsdFZhbHVlKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV92YWx1ZSA9PSBOZWVkc1JlZnJl
c2ggfHwgbV9kZWZhdWx0VmFsdWUgIT0gZGVmYXVsdFZhbHVlOworICAgICAgICB9CisKKyAgICBw
cml2YXRlOgorICAgICAgICBWYWx1ZSBtX3ZhbHVlOworICAgICAgICBib29sIG1fZGVmYXVsdFZh
bHVlOyAvLyBOZWVkcyB0byBiZSB0cmFrZWQgYXMgYSBwYXJ0IG9mIHRoZSBzaWduYXR1cmUgc2lu
Y2UgaXQgY2FuIGJlIGNoYW5nZWQgZHluYW1pY2FsbHkuCisgICAgfTsKKworICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIENvbnRleHRG
ZWF0dXJlc0NhY2hlKiBmcm9tKERvY3VtZW50Kik7CisKKyAgICBFbnRyeSYgZW50cnlGb3IoQ29u
dGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc2l6ZV90IGlu
ZGV4ID0gc3RhdGljX2Nhc3Q8c2l6ZV90Pih0eXBlKTsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwg
Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemUpOworICAgICAgICByZXR1cm4gbV9lbnRy
aWVzW2luZGV4XTsKKyAgICB9CisKKyAgICB2b2lkIHZhbGlkYXRlQWdhaW5zdChEb2N1bWVudCop
OworCitwcml2YXRlOgorICAgIFN0cmluZyBtX2RvbWFpbjsKKyAgICBFbnRyeSBtX2VudHJpZXNb
Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZVNpemVdOworfTsKKworY29uc3QgQXRvbWljU3Ry
aW5nJiBDb250ZXh0RmVhdHVyZXNDYWNoZTo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlc0NhY2hl
IikpOworICAgIHJldHVybiBuYW1lOworfQorCitDb250ZXh0RmVhdHVyZXNDYWNoZSogQ29udGV4
dEZlYXR1cmVzQ2FjaGU6OmZyb20oRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIENvbnRleHRG
ZWF0dXJlc0NhY2hlKiBjYWNoZSA9IHN0YXRpY19jYXN0PENvbnRleHRGZWF0dXJlc0NhY2hlKj4o
U3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6ZnJvbShkb2N1bWVudCwgc3VwcGxl
bWVudE5hbWUoKSkpOworICAgIGlmICghY2FjaGUpIHsKKyAgICAgICAgY2FjaGUgPSBuZXcgQ29u
dGV4dEZlYXR1cmVzQ2FjaGUoKTsKKyAgICAgICAgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0Pjo6cHJvdmlkZVRvKGRvY3VtZW50LCBzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cihj
YWNoZSkpOworICAgIH0KKworICAgIHJldHVybiBjYWNoZTsKK30KKwordm9pZCBDb250ZXh0RmVh
dHVyZXNDYWNoZTo6dmFsaWRhdGVBZ2FpbnN0KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBT
dHJpbmcgY3VycmVudERvbWFpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5kb21haW4o
KTsKKyAgICBpZiAoY3VycmVudERvbWFpbiA9PSBtX2RvbWFpbikKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fZG9tYWluID0gY3VycmVudERvbWFpbjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGVTaXplOyArK2kpCisgICAgICAgIG1fZW50cmll
c1tpXSA9IEVudHJ5KCk7Cit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6aXNF
bmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSB0
eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBDb250ZXh0RmVhdHVyZXNDYWNoZTo6RW50
cnkmIGNhY2hlID0gQ29udGV4dEZlYXR1cmVzQ2FjaGU6OmZyb20oZG9jdW1lbnQpLT5lbnRyeUZv
cih0eXBlKTsKKyAgICBpZiAoY2FjaGUubmVlZHNSZWZyZXNoKGRlZmF1bHRWYWx1ZSkpCisgICAg
ICAgIGNhY2hlLnNldChhc2tJZklzRW5hYmxlZChkb2N1bWVudCwgdHlwZSwgZGVmYXVsdFZhbHVl
KSwgZGVmYXVsdFZhbHVlKTsKKyAgICByZXR1cm4gY2FjaGUuaXNFbmFibGVkKCk7Cit9CisKK3Zv
aWQgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6dXJsRGlkQ2hhbmdlKERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICBDb250ZXh0RmVhdHVyZXNDYWNoZTo6ZnJvbShkb2N1bWVudCktPnZhbGlk
YXRlQWdhaW5zdChkb2N1bWVudCk7Cit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1w
bDo6YXNrSWZJc0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBDb250ZXh0RmVhdHVyZXM6OkZl
YXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQogewogICAgIGlmICghbV9jbGllbnQp
CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6U2hhZG93RE9NOgotICAgIGNhc2UgV2Vi
Q29yZTo6Q29udGV4dEZlYXR1cmVzOjpTdHlsZVNjb3BlZDoKKyAgICBjYXNlIENvbnRleHRGZWF0
dXJlczo6U2hhZG93RE9NOgorICAgIGNhc2UgQ29udGV4dEZlYXR1cmVzOjpTdHlsZVNjb3BlZDoK
ICAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd1dlYkNvbXBvbmVudHMoV2ViRG9jdW1lbnQo
ZG9jdW1lbnQpLCBkZWZhdWx0VmFsdWUpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBk
ZWZhdWx0VmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKaW5kZXggZWExZjk1NDhkOTI4MDIwYzYwNmQ0ZmRiZWY0
OTQxNTQzYmIyYmI4OS4uMjZkOTkzMDQ4NzY2NmE0MDI4M2IyMjRkMGM5NzFlZGQ1ZjY0YjIzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJl
c0NsaWVudEltcGwuaApAQCAtNDQsOSArNDQsMTIgQEAgcHVibGljOgogICAgIHsgfQogCiAgICAg
dmlydHVhbCBib29sIGlzRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCosIFdlYkNvcmU6OkNvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXJsRGlkQ2hhbmdlKFdlYkNvcmU6OkRvY3VtZW50KikgT1ZFUlJJREU7
CiAgICAgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogCiBwcml2YXRlOgorICAgIGJvb2wgYXNrSWZJc0Vu
YWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqLCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1
cmVUeXBlLCBib29sIGRlZmF1bHRWYWx1ZSk7CisKICAgICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBt
X2NsaWVudDsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>