<?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>36723</bug_id>
          
          <creation_ts>2010-03-28 08:21:36 -0700</creation_ts>
          <short_desc>Crash while uploading a PDF document on www.largefilesasap.com</short_desc>
          <delta_ts>2026-01-05 08:29:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>deleted_user1</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>205171</commentid>
    <comment_count>1</comment_count>
    <who name="">deleted_user1</who>
    <bug_when>2010-03-28 08:22:05 -0700</bug_when>
    <thetext>Was using Safari Version 4.0.5 (6531.22.7, r56652) when it crashed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206164</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-30 13:48:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/56439 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206300</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 18:09:17 -0700</bug_when>
    <thetext>*** Bug 36856 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206304</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 18:12:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; http://trac.webkit.org/changeset/56439 ?

Yup.

I&apos;m working on this now, should be an easy fix (I have more analysis in the dupe if anyone is interested.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206324</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 19:01:41 -0700</bug_when>
    <thetext>Fundamental problem is that the FileChooser might call into its client (RenderFileUploadControl ) during the constructor, but RenderFileUploadControl needs to pass the FileChooser off to *its* client (WebChromeClient), but it doesn&apos;t yet *have* the FileChooser to pass off.

We&apos;ll either have to:
A - Make the logic in void FileChooser::chooseFiles(const Vector&lt;String&gt;&amp; filenames) kind of gross
B - Make constructing a FileChooser a 2-stage operation (create followed by and init)
C - Revert r56439 as its really just a code shuffle and didn&apos;t change any functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206325</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 19:02:30 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Fundamental problem is that the FileChooser might call into its client
&gt; (RenderFileUploadControl ) during the constructor, but RenderFileUploadControl
&gt; needs to pass the FileChooser off to *its* client (WebChromeClient), but it
&gt; doesn&apos;t yet *have* the FileChooser to pass off.
&gt; 
&gt; We&apos;ll either have to:
&gt; A - Make the logic in void FileChooser::chooseFiles(const Vector&lt;String&gt;&amp;
&gt; filenames) kind of gross
&gt; B - Make constructing a FileChooser a 2-stage operation (create followed by and
&gt; init)
&gt; C - Revert r56439 as its really just a code shuffle and didn&apos;t change any
&gt; functionality.

And quite honestly, my vote goes to C.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206326</commentid>
    <comment_count>7</comment_count>
      <attachid>52118</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 19:02:47 -0700</bug_when>
    <thetext>Created attachment 52118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206331</commentid>
    <comment_count>8</comment_count>
      <attachid>52118</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 19:14:46 -0700</bug_when>
    <thetext>Comment on attachment 52118
Patch

Quite honestly, this is my least favorite of the three approaches I suggested.

IMHO, 2 stage construction is not a great pattern unless there&apos;s no alternatives.

I added this comment to the original bug (https://bugs.webkit.org/show_bug.cgi?id=35072):
---
Since this patch:
1 - Didn&apos;t change functionality
2 - The approach was generally not liked by the reviewers.
3 - In general, round tripping between WebCore and WebKit is something we try
to *reduce*

...I think it needs to be rolled out.
---

Can you convince me why round tripping between WebCore and WebKit for 5+ different platforms was better than the previous solution that kept things entirely in WebCore except for the lone platform that needed the client interface?

I know Darin expressed disdain for the duplication of the API call in https://bugs.webkit.org/show_bug.cgi?id=32054 because it would make the code more complicated and harder to maintain in the long run.  But is the current state of things actually *better*?

I think it&apos;s crazy that WebCore always calls out to the client interfaces for 5+ different platforms, and most of them call straight back into WebCore.  This makes the code harder to follow and maintain, not easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206334</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 19:20:29 -0700</bug_when>
    <thetext>This comment reply moved from https://bugs.webkit.org/show_bug.cgi?id=35072 because it&apos;s more relevant to this discussion:

(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; This patch (http://trac.webkit.org/changeset/56439) caused a major regression
&gt; &gt; (https://bugs.webkit.org/show_bug.cgi?id=36723)
&gt; &gt; 
&gt; &gt; Since:
&gt; &gt; 1 - It didn&apos;t change functionality
&gt; &gt; 2 - The approach was generally not liked.
&gt; &gt; 3 - In general, round tripping between WebCore and WebKit is something we try
&gt; &gt; to *reduce*
&gt; &gt; 
&gt; &gt; ...I think it needs to be rolled out.
&gt; 
&gt; Brady, I already post a fix for the regression.  Please don&apos;t roll it out.
&gt; Even if we rolled it out, the problem would not be solved with platforms of
&gt; which Icon::iconForFiles() returns 0.

Okay, that&apos;s true.  The mere existence of the client interface means that if a platform returns 0 for Icon::iconForFiles(), we&apos;d still have this problem.

I&apos;m still far from convinced that forcing all platforms through this client interface is the right thing to do when most only need what WebCore already knows how to do, and that same code is copied 4+ times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206335</commentid>
    <comment_count>10</comment_count>
      <attachid>52118</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 19:28:31 -0700</bug_when>
    <thetext>Comment on attachment 52118
Patch

Knowing that we&apos;d have this problem whether or not we roll out http://trac.webkit.org/changeset/56439 , I&apos;ll review this patch differently.

I like the layout test and I like the asserts in RenderFileUploadControl.cpp, but I&apos;m not convinced of the change to 2 step construction for the FileChooser.  There is exactly 1 user of FileChooser right now, so it&apos;s easy to get the 2 step construction right.  But this pattern might be difficult to maintain going forward.

I urge you to consider working out a clean way to remove loadIcon() from the constructor but *not* add the requirement to manually call loadIcon() afterwards.

But, r+ anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206337</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 19:39:42 -0700</bug_when>
    <thetext>Actually I don&apos;t like the 2 step construction too.
I&apos;ll make another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206338</commentid>
    <comment_count>12</comment_count>
      <attachid>52120</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 19:46:56 -0700</bug_when>
    <thetext>Created attachment 52120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206345</commentid>
    <comment_count>13</comment_count>
      <attachid>52120</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 20:43:14 -0700</bug_when>
    <thetext>Comment on attachment 52120
Patch

Thanks for making this change.

&gt; @@ -79,13 +81,13 @@ void FileChooser::chooseFiles(const Vector&lt;String&gt;&amp; filenames)
&gt;  void FileChooser::loadIcon()
&gt;  {
&gt;      if (m_filenames.size() &amp;&amp; m_client)
&gt; -        m_client-&gt;chooseIconForFiles(m_filenames);
&gt; +        m_client-&gt;chooseIconForFiles(this, m_filenames);
&gt;  }
&gt; diff --git a/WebCore/rendering/RenderFileUploadControl.cpp b/WebCore/rendering/RenderFileUploadControl.cpp
&gt; index 14d126d..a66b118 100644
&gt; --- a/WebCore/rendering/RenderFileUploadControl.cpp
&gt; +++ b/WebCore/rendering/RenderFileUploadControl.cpp
&gt; @@ -114,10 +114,10 @@ String RenderFileUploadControl::acceptTypes()
&gt; -void RenderFileUploadControl::chooseIconForFiles(const Vector&lt;String&gt;&amp; filenames)
&gt; +void RenderFileUploadControl::chooseIconForFiles(PassRefPtr&lt;FileChooser&gt; chooser, const Vector&lt;String&gt;&amp; filenames)
&gt;  {
&gt;      if (Chrome* chromePointer = chrome())
&gt; -        chromePointer-&gt;chooseIconForFiles(filenames, m_fileChooser);
&gt; +        chromePointer-&gt;chooseIconForFiles(filenames, chooser);
&gt;  }

&gt; diff --git a/WebCore/rendering/RenderFileUploadControl.h b/WebCore/rendering/RenderFileUploadControl.h
&gt; index 99dd35c..9714db1 100644
&gt; --- a/WebCore/rendering/RenderFileUploadControl.h
&gt; +++ b/WebCore/rendering/RenderFileUploadControl.h
&gt; @@ -61,7 +61,7 @@ private:
&gt; -    void chooseIconForFiles(const Vector&lt;String&gt;&amp;);
&gt; +    void chooseIconForFiles(PassRefPtr&lt;FileChooser&gt;, const Vector&lt;String&gt;&amp;);

PassRefPtr is wrong here.

In the original bug, Darin pointed this out (https://bugs.webkit.org/show_bug.cgi?id=35072#c8) and you described why you thought this qualified (https://bugs.webkit.org/show_bug.cgi?id=35072#c12), and I think someone should&apos;ve followed up on this.

PassRefPtr is actually about *transferring* ownership.  It&apos;s meant to be used when you&apos;re transferring from one RefPtr to another RefPtr.  In that case, it zeroes out the old RefPtr without decrementing the ref count.  It then assigns the raw pointer to the new RefPtr without incrementing the ref count.  This allows ownership transfer without (surprisingly expensive) ref count churn.

Creating this PassRefPtr from the raw pointer *always* bumps the ref count, even if the client isn&apos;t interested in hanging on to the object.  Then the ~PassRefPtr decrements the ref count, even when the client never cared.  That&apos;s the churn that PassRefPtr is actually designed to avoid.

This case wasn&apos;t ever actually *transferring* ownership.  While it&apos;s true that Chromium needs to ref the object to hang on to it, the RenderFileUploadControl doesn&apos;t actually *give up* its ref.  In this regard, the PassRefPtr is wrong in all of the client methods originally implemented in each of the WebKits.

This really can be a raw pointer.  In the common platform (all but Chromium) that don&apos;t need a ref and that synchronously call back into WebCore, not ref&apos;ing is correct.  In the Chromium case, it has to bump the ref count anyways.

I&apos;m tempted to ask you to update all of the client methods to be raw pointers, but since this isn&apos;t really a hot code path, I won&apos;t insist.

However, I will insist that this new method be a raw pointer, so we don&apos;t carry the mistake all the way to the core.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206346</commentid>
    <comment_count>14</comment_count>
      <attachid>52122</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 20:55:53 -0700</bug_when>
    <thetext>Created attachment 52122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206347</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 20:59:33 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; PassRefPtr is wrong here.

Thank you for the explanation.
I agree that we don&apos;t need to use PassRefPtr for this change, and for Chrome::chooseIconForFiles() too.

I&apos;ll address Chrome::chooseIconForFiles() when we have a conclusion for Icon interface change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206348</commentid>
    <comment_count>16</comment_count>
      <attachid>52122</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 21:00:03 -0700</bug_when>
    <thetext>Comment on attachment 52122
Patch


&gt; -        m_client-&gt;chooseIconForFiles(m_filenames);
&gt; +        m_client-&gt;chooseIconForFiles(*this, m_filenames);

&gt; -    virtual void chooseIconForFiles(const Vector&lt;String&gt;&amp;) = 0;
&gt; +    virtual void chooseIconForFiles(FileChooser&amp;, const Vector&lt;String&gt;&amp;) = 0;
&gt;      virtual ~FileChooserClient();
&gt;

&gt; -void RenderFileUploadControl::chooseIconForFiles(const Vector&lt;String&gt;&amp; filenames)
&gt; +void RenderFileUploadControl::chooseIconForFiles(FileChooser&amp; chooser, const Vector&lt;String&gt;&amp; filenames)
&gt;  {
&gt;      if (Chrome* chromePointer = chrome())
&gt; -        chromePointer-&gt;chooseIconForFiles(filenames, m_fileChooser);
&gt; +        chromePointer-&gt;chooseIconForFiles(filenames, &amp;chooser);

&gt; -    void chooseIconForFiles(const Vector&lt;String&gt;&amp;);
&gt; +    void chooseIconForFiles(FileChooser&amp;, const Vector&lt;String&gt;&amp;);

We normally only use references for values stack values, and I&apos;m not aware of anywhere where we use them for heap-only objects.

This really can be a raw pointer:
void chooseIconForFiles(FileChooser*, const Vector&lt;String&gt;&amp;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206349</commentid>
    <comment_count>17</comment_count>
      <attachid>52123</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 21:04:34 -0700</bug_when>
    <thetext>Created attachment 52123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206352</commentid>
    <comment_count>18</comment_count>
      <attachid>52123</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-03-30 21:24:35 -0700</bug_when>
    <thetext>Comment on attachment 52123
Patch


&gt; @@ -44,7 +45,7 @@ public:
&gt;      virtual void repaint() = 0;
&gt;      virtual bool allowsMultipleFiles() = 0;
&gt;      virtual String acceptTypes() = 0;
&gt; -    virtual void chooseIconForFiles(const Vector&lt;String&gt;&amp;) = 0;
&gt; +    virtual void chooseIconForFiles(FileChooser*, const Vector&lt;String&gt;&amp;) = 0;
&gt;      virtual ~FileChooserClient();
&gt;  };
&gt;  

This is a better change, anyways - we like telling clients which object it is they&apos;re working on, because one object can be the client for multiple clientees.

r+!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206356</commentid>
    <comment_count>19</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-03-30 21:36:18 -0700</bug_when>
    <thetext>Landed as r56824.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52118</attachid>
            <date>2010-03-30 19:02:47 -0700</date>
            <delta_ts>2010-03-30 19:46:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36723-20100331110245.patch</filename>
            <type>text/plain</type>
            <size>4696</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMWYyZDU0Li40NzY4NDIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDMt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBDcmFz
aCB3aGVuIGEgZmlsZSB1cGxvYWQgY29udHJvbCB3aXRoIGEgc2VsZWN0ZWQKKyAgICAgICAgZmls
ZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM2NzIzCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWZpbGUtcmUtcmVuZGVy
Lmh0bWw6CisgICAgICAgICAgRm9yY2UgdG8gZG8gcmUtbGF5b3V0IHRvIGNoZWNrIHRoZSByZWdy
ZXNzaW9uLgorCiAyMDEwLTAzLTMwICBBbmRyZXcgU2NoZXJrdXMgIDxzY2hlcmt1c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZXhwZWN0YXRpb25zIHR3ZWFrLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCmluZGV4IDBm
YWM1YzkuLjI0ZGUyYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWZp
bGUtcmUtcmVuZGVyLmh0bWwKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IAogICAgIC8vIERlbGV0ZSB0aGUgcmVuZGVyZXIuCiAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKKyAgICBpbnB1dC5vZmZzZXRXaWR0aDsgLy8gRm9yY2UgdG8gZG8gbGF5b3V0CiAK
ICAgICAvLyBBdHRhY2ggYSByZW5kZXJlciBhZ2Fpbi4KICAgICBpbnB1dC5zdHlsZS5kaXNwbGF5
ID0gJ2lubGluZS1ibG9jayc7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGE1NGMwNGQuLjdjZTYzZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAt
MDMtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBD
cmFzaCB3aGVuIGEgZmlsZSB1cGxvYWQgY29udHJvbCB3aXRoIGEgc2VsZWN0ZWQKKyAgICAgICAg
ZmlsZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2NzIzCisKKyAgICAgICAgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNob29z
ZUljb25Gb3JGaWxlcyB3YXMgY2FsbGVkIGJlZm9yZQorICAgICAgICBtX2ZpbGVDaG9vc2VyIHdh
cyBpbml0aWFsaXplZC4KKworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpGaWxlQ2hvb3Nlcik6IFJlbW92ZSBsb2FkSWNv
bigpIGluIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5o
OiBFeHBvc2UgbG9hZEljb24oKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6
OlJlbmRlckZpbGVVcGxvYWRDb250cm9sKToKKyAgICAgICAgICBDYWxscyBGaWxlQ2hvb3Nlcjo6
bG9hZEljb24oKSBhZnRlciBGaWxlQ2hvb3NlciBjcmVhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjaG9vc2VJY29uRm9yRmlsZXMpOiBBZGQgYW4gYXNz
ZXJ0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50
T2JqZWN0KTogZGl0dG8uCisKIDIwMTAtMDMtMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNo
b29zZXIuY3BwCmluZGV4IGRkNGZjMGQuLmIwM2Y4NjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZUNob29zZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIu
Y3BwCkBAIC00MSw3ICs0MSw2IEBAIGlubGluZSBGaWxlQ2hvb3Nlcjo6RmlsZUNob29zZXIoRmls
ZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4mCiAgICAgOiBtX2Ns
aWVudChjbGllbnQpCiB7CiAgICAgbV9maWxlbmFtZXMgPSBpbml0aWFsRmlsZW5hbWVzOwotICAg
IGxvYWRJY29uKCk7CiB9CiAKIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IEZpbGVDaG9vc2VyOjpj
cmVhdGUoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGlu
aXRpYWxGaWxlbmFtZXMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2Vy
LmggYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKaW5kZXggNDAyOGQ0MS4uZjI1ZjA5
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaApAQCAtNTAsOCArNTAsMTAgQEAgcHVibGljOgogCiBj
bGFzcyBGaWxlQ2hvb3NlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVDaG9vc2VyPiB7CiBwdWJs
aWM6CisgICAgLy8gVGhlIGNhbGxlciBzaG91bGQgY2FsbCBsb2FkSWNvbigpIGFmdGVyIGNyZWF0
ZSgpIHRvIGluaXRpYWxpemUgdGhlIGljb24uCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+IGNyZWF0ZShGaWxlQ2hvb3NlckNsaWVudCosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBp
bml0aWFsRmlsZW5hbWVzKTsKICAgICB+RmlsZUNob29zZXIoKTsKKyAgICB2b2lkIGxvYWRJY29u
KCk7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fY2xpZW50ID0gMDsgfQogICAg
IGJvb2wgZGlzY29ubmVjdGVkKCkgeyByZXR1cm4gIW1fY2xpZW50OyB9CkBAIC03NCw3ICs3Niw2
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBGaWxlQ2hvb3NlcihGaWxlQ2hvb3NlckNsaWVu
dCosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsRmlsZW5hbWVzKTsKLSAgICB2b2lkIGxv
YWRJY29uKCk7CiAKICAgICBGaWxlQ2hvb3NlckNsaWVudCogbV9jbGllbnQ7CiAgICAgVmVjdG9y
PFN0cmluZz4gbV9maWxlbmFtZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5jcHAKaW5kZXggMTRkMTI2ZC4uODE2OGQ4YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtNzEsNiArNzEsNyBAQCBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woSFRNTElucHV0RWxl
bWVudCogaW5wdXQpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQog
ICAgICAgICBmaWxlbmFtZXMuYXBwZW5kKGxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CiAgICAgbV9m
aWxlQ2hvb3NlciA9IEZpbGVDaG9vc2VyOjpjcmVhdGUodGhpcywgZmlsZW5hbWVzKTsKKyAgICBt
X2ZpbGVDaG9vc2VyLT5sb2FkSWNvbigpOwogfQogCiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
flJlbmRlckZpbGVVcGxvYWRDb250cm9sKCkKQEAgLTExNiw2ICsxMTcsNyBAQCBTdHJpbmcgUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2w6OmFjY2VwdFR5cGVzKCkKIAogdm9pZCBSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMpCiB7CisgICAgQVNTRVJUKG1fZmlsZUNob29zZXIpOwogICAgIGlmIChDaHJvbWUqIGNo
cm9tZVBvaW50ZXIgPSBjaHJvbWUoKSkKICAgICAgICAgY2hyb21lUG9pbnRlci0+Y2hvb3NlSWNv
bkZvckZpbGVzKGZpbGVuYW1lcywgbV9maWxlQ2hvb3Nlcik7CiB9CkBAIC0xOTUsNiArMTk3LDcg
QEAgdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBw
YWludEluZm8sIGludCB0eCwgaW50IHR5KQogewogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5
KCkgIT0gVklTSUJMRSkKICAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX2ZpbGVDaG9vc2Vy
KTsKICAgICAKICAgICAvLyBQdXNoIGEgY2xpcC4KICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlQ2hp
bGRCbG9ja0JhY2tncm91bmRzKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52120</attachid>
            <date>2010-03-30 19:46:56 -0700</date>
            <delta_ts>2010-03-30 20:55:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36723-20100331114654.patch</filename>
            <type>text/plain</type>
            <size>5860</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMWYyZDU0Li40NzY4NDIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDMt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBDcmFz
aCB3aGVuIGEgZmlsZSB1cGxvYWQgY29udHJvbCB3aXRoIGEgc2VsZWN0ZWQKKyAgICAgICAgZmls
ZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM2NzIzCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWZpbGUtcmUtcmVuZGVy
Lmh0bWw6CisgICAgICAgICAgRm9yY2UgdG8gZG8gcmUtbGF5b3V0IHRvIGNoZWNrIHRoZSByZWdy
ZXNzaW9uLgorCiAyMDEwLTAzLTMwICBBbmRyZXcgU2NoZXJrdXMgIDxzY2hlcmt1c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZXhwZWN0YXRpb25zIHR3ZWFrLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCmluZGV4IDBm
YWM1YzkuLjI0ZGUyYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWZp
bGUtcmUtcmVuZGVyLmh0bWwKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IAogICAgIC8vIERlbGV0ZSB0aGUgcmVuZGVyZXIuCiAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKKyAgICBpbnB1dC5vZmZzZXRXaWR0aDsgLy8gRm9yY2UgdG8gZG8gbGF5b3V0CiAK
ICAgICAvLyBBdHRhY2ggYSByZW5kZXJlciBhZ2Fpbi4KICAgICBpbnB1dC5zdHlsZS5kaXNwbGF5
ID0gJ2lubGluZS1ibG9jayc7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGE1NGMwNGQuLjM5YTNkNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAt
MDMtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBD
cmFzaCB3aGVuIGEgZmlsZSB1cGxvYWQgY29udHJvbCB3aXRoIGEgc2VsZWN0ZWQKKyAgICAgICAg
ZmlsZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2NzIzCisKKyAgICAgICAgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNob29z
ZUljb25Gb3JGaWxlcyB3YXMgY2FsbGVkIGJlZm9yZQorICAgICAgICBtX2ZpbGVDaG9vc2VyIHdh
cyBpbml0aWFsaXplZC4KKworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpGaWxlQ2hvb3Nlcik6IEludHJvZHVjZSBtX2lz
SW5pdGlhbGl6aW5nIGZsYWcgdG8KKyAgICAgICAgICBhdm9pZCBGaWxlQ2hvb3NlckNsaWVudDo6
cmVwYWludCgpIGNhbGwuCisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6bG9hZEljb24p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNob29zZXI6Omljb25Mb2FkZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6IEFkZCBhIEZpZWxDaG9vc2VyIHBhcmFtZXRlciB0bwor
ICAgICAgICAgIEZpbGVDaG9vc2VyQ2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMoKS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNob29zZUljb25Gb3JGaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOiBBZGQg
YW4gYXNzZXJ0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oOgorCiAyMDEwLTAzLTMwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApp
bmRleCBkZDRmYzBkLi45MGRkNTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVD
aG9vc2VyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApAQCAtMzks
OSArMzksMTEgQEAgRmlsZUNob29zZXJDbGllbnQ6On5GaWxlQ2hvb3NlckNsaWVudCgpCiAKIGlu
bGluZSBGaWxlQ2hvb3Nlcjo6RmlsZUNob29zZXIoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGluaXRpYWxGaWxlbmFtZXMpCiAgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX2lzSW5pdGlhbGl6aW5nKHRydWUpCiB7CiAgICAgbV9maWxlbmFtZXMg
PSBpbml0aWFsRmlsZW5hbWVzOwogICAgIGxvYWRJY29uKCk7CisgICAgbV9pc0luaXRpYWxpemlu
ZyA9IGZhbHNlOwogfQogCiBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBGaWxlQ2hvb3Nlcjo6Y3Jl
YXRlKEZpbGVDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0
aWFsRmlsZW5hbWVzKQpAQCAtNzksMTMgKzgxLDEzIEBAIHZvaWQgRmlsZUNob29zZXI6OmNob29z
ZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiB2b2lkIEZpbGVDaG9vc2Vy
Ojpsb2FkSWNvbigpCiB7CiAgICAgaWYgKG1fZmlsZW5hbWVzLnNpemUoKSAmJiBtX2NsaWVudCkK
LSAgICAgICAgbV9jbGllbnQtPmNob29zZUljb25Gb3JGaWxlcyhtX2ZpbGVuYW1lcyk7CisgICAg
ICAgIG1fY2xpZW50LT5jaG9vc2VJY29uRm9yRmlsZXModGhpcywgbV9maWxlbmFtZXMpOwogfQog
CiB2b2lkIEZpbGVDaG9vc2VyOjppY29uTG9hZGVkKFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKIHsK
ICAgICBtX2ljb24gPSBpY29uOwotICAgIGlmIChtX2ljb24gJiYgbV9jbGllbnQpCisgICAgaWYg
KCFtX2lzSW5pdGlhbGl6aW5nICYmIG1faWNvbiAmJiBtX2NsaWVudCkKICAgICAgICAgbV9jbGll
bnQtPnJlcGFpbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCmluZGV4IDQwMjhkNDEuLjVj
YzhiYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKQEAgLTM1LDYgKzM1LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBGaWxlQ2hvb3NlcjsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBJ
Y29uOwogCkBAIC00NCw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWlu
dCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dzTXVsdGlwbGVGaWxlcygpID0gMDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBhY2NlcHRUeXBlcygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2hv
b3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4sIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikgPSAwOwogICAgIHZpcnR1YWwgfkZpbGVDaG9vc2VyQ2xpZW50KCk7CiB9
OwogCkBAIC03OSw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgRmlsZUNob29zZXJDbGllbnQqIG1f
Y2xpZW50OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fZmlsZW5hbWVzOwogICAgIFJlZlB0cjxJY29u
PiBtX2ljb247CisgICAgYm9vbCBtX2lzSW5pdGlhbGl6aW5nOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwCmluZGV4IDE0ZDEyNmQuLmE2NmIxMTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTExNCwxMCArMTE0LDEwIEBAIFN0cmluZyBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbDo6YWNjZXB0VHlwZXMoKQogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKS0+YWNjZXB0KCk7CiB9CiAKLXZvaWQgUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzKQordm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6Y2hvb3NlSWNvbkZv
ckZpbGVzKFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMpCiB7CiAgICAgaWYgKENocm9tZSogY2hyb21lUG9pbnRlciA9IGNocm9t
ZSgpKQotICAgICAgICBjaHJvbWVQb2ludGVyLT5jaG9vc2VJY29uRm9yRmlsZXMoZmlsZW5hbWVz
LCBtX2ZpbGVDaG9vc2VyKTsKKyAgICAgICAgY2hyb21lUG9pbnRlci0+Y2hvb3NlSWNvbkZvckZp
bGVzKGZpbGVuYW1lcywgY2hvb3Nlcik7CiB9CiAKIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OmNsaWNrKCkKQEAgLTE5NSw2ICsxOTUsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250
cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiB7
CiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1
cm47CisgICAgQVNTRVJUKG1fZmlsZUNob29zZXIpOwogICAgIAogICAgIC8vIFB1c2ggYSBjbGlw
LgogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQgfHwgcGFp
bnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMpIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCmluZGV4IDk5ZGQzNWMuLjk3
MTRkYjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaApA
QCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVwYWludCgpIHsgUmVuZGVyQmxv
Y2s6OnJlcGFpbnQoKTsgfQogICAgIGJvb2wgYWxsb3dzTXVsdGlwbGVGaWxlcygpOwogICAgIFN0
cmluZyBhY2NlcHRUeXBlcygpOwotICAgIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jik7CisgICAgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoUGFzc1JlZlB0cjxG
aWxlQ2hvb3Nlcj4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICBDaHJvbWUqIGNocm9t
ZSgpIGNvbnN0OwogICAgIGludCBtYXhGaWxlbmFtZVdpZHRoKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52122</attachid>
            <date>2010-03-30 20:55:53 -0700</date>
            <delta_ts>2010-03-30 21:04:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36723-20100331125551.patch</filename>
            <type>text/plain</type>
            <size>5829</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMWYyZDU0Li40NzY4NDIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDMt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBDcmFz
aCB3aGVuIGEgZmlsZSB1cGxvYWQgY29udHJvbCB3aXRoIGEgc2VsZWN0ZWQKKyAgICAgICAgZmls
ZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM2NzIzCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWZpbGUtcmUtcmVuZGVy
Lmh0bWw6CisgICAgICAgICAgRm9yY2UgdG8gZG8gcmUtbGF5b3V0IHRvIGNoZWNrIHRoZSByZWdy
ZXNzaW9uLgorCiAyMDEwLTAzLTMwICBBbmRyZXcgU2NoZXJrdXMgIDxzY2hlcmt1c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZXhwZWN0YXRpb25zIHR3ZWFrLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCmluZGV4IDBm
YWM1YzkuLjI0ZGUyYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
ZmlsZS1yZS1yZW5kZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWZp
bGUtcmUtcmVuZGVyLmh0bWwKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IAogICAgIC8vIERlbGV0ZSB0aGUgcmVuZGVyZXIuCiAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKKyAgICBpbnB1dC5vZmZzZXRXaWR0aDsgLy8gRm9yY2UgdG8gZG8gbGF5b3V0CiAK
ICAgICAvLyBBdHRhY2ggYSByZW5kZXJlciBhZ2Fpbi4KICAgICBpbnB1dC5zdHlsZS5kaXNwbGF5
ID0gJ2lubGluZS1ibG9jayc7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGE1NGMwNGQuLjM5YTNkNTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAt
MDMtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBD
cmFzaCB3aGVuIGEgZmlsZSB1cGxvYWQgY29udHJvbCB3aXRoIGEgc2VsZWN0ZWQKKyAgICAgICAg
ZmlsZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2NzIzCisKKyAgICAgICAgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNob29z
ZUljb25Gb3JGaWxlcyB3YXMgY2FsbGVkIGJlZm9yZQorICAgICAgICBtX2ZpbGVDaG9vc2VyIHdh
cyBpbml0aWFsaXplZC4KKworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyOjpGaWxlQ2hvb3Nlcik6IEludHJvZHVjZSBtX2lz
SW5pdGlhbGl6aW5nIGZsYWcgdG8KKyAgICAgICAgICBhdm9pZCBGaWxlQ2hvb3NlckNsaWVudDo6
cmVwYWludCgpIGNhbGwuCisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6bG9hZEljb24p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNob29zZXI6Omljb25Mb2FkZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6IEFkZCBhIEZpZWxDaG9vc2VyIHBhcmFtZXRlciB0bwor
ICAgICAgICAgIEZpbGVDaG9vc2VyQ2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMoKS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNob29zZUljb25Gb3JGaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOiBBZGQg
YW4gYXNzZXJ0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oOgorCiAyMDEwLTAzLTMwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApp
bmRleCBkZDRmYzBkLi5lNWE2NTU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVD
aG9vc2VyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApAQCAtMzks
OSArMzksMTEgQEAgRmlsZUNob29zZXJDbGllbnQ6On5GaWxlQ2hvb3NlckNsaWVudCgpCiAKIGlu
bGluZSBGaWxlQ2hvb3Nlcjo6RmlsZUNob29zZXIoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGluaXRpYWxGaWxlbmFtZXMpCiAgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX2lzSW5pdGlhbGl6aW5nKHRydWUpCiB7CiAgICAgbV9maWxlbmFtZXMg
PSBpbml0aWFsRmlsZW5hbWVzOwogICAgIGxvYWRJY29uKCk7CisgICAgbV9pc0luaXRpYWxpemlu
ZyA9IGZhbHNlOwogfQogCiBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBGaWxlQ2hvb3Nlcjo6Y3Jl
YXRlKEZpbGVDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0
aWFsRmlsZW5hbWVzKQpAQCAtNzksMTMgKzgxLDEzIEBAIHZvaWQgRmlsZUNob29zZXI6OmNob29z
ZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiB2b2lkIEZpbGVDaG9vc2Vy
Ojpsb2FkSWNvbigpCiB7CiAgICAgaWYgKG1fZmlsZW5hbWVzLnNpemUoKSAmJiBtX2NsaWVudCkK
LSAgICAgICAgbV9jbGllbnQtPmNob29zZUljb25Gb3JGaWxlcyhtX2ZpbGVuYW1lcyk7CisgICAg
ICAgIG1fY2xpZW50LT5jaG9vc2VJY29uRm9yRmlsZXMoKnRoaXMsIG1fZmlsZW5hbWVzKTsKIH0K
IAogdm9pZCBGaWxlQ2hvb3Nlcjo6aWNvbkxvYWRlZChQYXNzUmVmUHRyPEljb24+IGljb24pCiB7
CiAgICAgbV9pY29uID0gaWNvbjsKLSAgICBpZiAobV9pY29uICYmIG1fY2xpZW50KQorICAgIGlm
ICghbV9pc0luaXRpYWxpemluZyAmJiBtX2ljb24gJiYgbV9jbGllbnQpCiAgICAgICAgIG1fY2xp
ZW50LT5yZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNo
b29zZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAppbmRleCA0MDI4ZDQxLi41
ODk0OTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCkBAIC0zNSw2ICszNSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmlsZUNob29zZXI7CiBjbGFzcyBGb250OwogY2xhc3Mg
SWNvbjsKIApAQCAtNDQsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGFp
bnQoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFsbG93c011bHRpcGxlRmlsZXMoKSA9IDA7CiAg
ICAgdmlydHVhbCBTdHJpbmcgYWNjZXB0VHlwZXMoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKEZpbGVDaG9vc2VyJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSA9IDA7CiAgICAgdmlydHVhbCB+RmlsZUNob29zZXJDbGllbnQoKTsKIH07CiAKQEAgLTc5
LDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBGaWxlQ2hvb3NlckNsaWVudCogbV9jbGllbnQ7CiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9maWxlbmFtZXM7CiAgICAgUmVmUHRyPEljb24+IG1faWNvbjsK
KyAgICBib29sIG1faXNJbml0aWFsaXppbmc7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXgg
MTRkMTI2ZC4uMGJlMDUyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcApAQCAtMTE0LDEwICsxMTQsMTAgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjphY2NlcHRUeXBlcygpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihub2RlKCkpLT5hY2NlcHQoKTsKIH0KIAotdm9pZCBSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMpCit2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjaG9vc2VJY29uRm9yRmlsZXMoRmls
ZUNob29zZXImIGNob29zZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiB7CiAg
ICAgaWYgKENocm9tZSogY2hyb21lUG9pbnRlciA9IGNocm9tZSgpKQotICAgICAgICBjaHJvbWVQ
b2ludGVyLT5jaG9vc2VJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBtX2ZpbGVDaG9vc2VyKTsKKyAg
ICAgICAgY2hyb21lUG9pbnRlci0+Y2hvb3NlSWNvbkZvckZpbGVzKGZpbGVuYW1lcywgJmNob29z
ZXIpOwogfQogCiB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjbGljaygpCkBAIC0xOTUs
NiArMTk1LDcgQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFp
bnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQogewogICAgIGlmIChzdHlsZSgpLT52
aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKICAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX2Zp
bGVDaG9vc2VyKTsKICAgICAKICAgICAvLyBQdXNoIGEgY2xpcC4KICAgICBpZiAocGFpbnRJbmZv
LnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuaAppbmRleCA5OWRkMzVjLi42MzYxY2Y5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlcGFpbnQoKSB7IFJlbmRlckJsb2NrOjpyZXBhaW50KCk7IH0KICAg
ICBib29sIGFsbG93c011bHRpcGxlRmlsZXMoKTsKICAgICBTdHJpbmcgYWNjZXB0VHlwZXMoKTsK
LSAgICB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAg
IHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKEZpbGVDaG9vc2VyJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKTsKIAogICAgIENocm9tZSogY2hyb21lKCkgY29uc3Q7CiAgICAgaW50IG1heEZpbGVuYW1l
V2lkdGgoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52123</attachid>
            <date>2010-03-30 21:04:34 -0700</date>
            <delta_ts>2010-03-30 21:24:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36723-20100331130432.patch</filename>
            <type>text/plain</type>
            <size>5857</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMWYyZDU0Li5lN2ZiNjc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDMt
MzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1NjQzOSkgLSBDcmFz
aCB3aGVuIGEgcmVuZGVyZXIgZm9yIGEgZmlsZSB1cGxvYWQgY29udHJvbAorICAgICAgICB3aXRo
IGEgc2VsZWN0ZWQgZmlsZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzIzCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LWZpbGUtcmUtcmVuZGVyLmh0bWw6CisgICAgICAgICAgRm9yY2UgdG8gZG8gcmUtbGF5b3V0IHRv
IGNoZWNrIHRoZSByZWdyZXNzaW9uLgorCiAyMDEwLTAzLTMwICBBbmRyZXcgU2NoZXJrdXMgIDxz
Y2hlcmt1c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZXhwZWN0YXRpb25z
IHR3ZWFrLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJl
LXJlbmRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1maWxlLXJlLXJlbmRl
ci5odG1sCmluZGV4IDBmYWM1YzkuLjI0ZGUyYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LWZpbGUtcmUtcmVuZGVyLmh0bWwKQEAgLTE4LDYgKzE4LDcgQEAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkKIAogICAgIC8vIERlbGV0ZSB0aGUgcmVuZGVyZXIuCiAgICAgaW5wdXQu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICBpbnB1dC5vZmZzZXRXaWR0aDsgLy8gRm9yY2Ug
dG8gZG8gbGF5b3V0CiAKICAgICAvLyBBdHRhY2ggYSByZW5kZXJlciBhZ2Fpbi4KICAgICBpbnB1
dC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE1NGMwNGQuLmJiNTZmNzIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTAtMDMtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJ
T04gKHI1NjQzOSkgLSBDcmFzaCB3aGVuIGEgcmVuZGVyZXIgZm9yIGEgZmlsZSB1cGxvYWQgY29u
dHJvbAorICAgICAgICB3aXRoIGEgc2VsZWN0ZWQgZmlsZSBpcyByZWNyZWF0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzIzCisKKyAgICAgICAg
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNob29zZUljb25Gb3JGaWxlcyB3YXMgY2FsbGVkIGJl
Zm9yZQorICAgICAgICBtX2ZpbGVDaG9vc2VyIHdhcyBpbml0aWFsaXplZC4KKworICAgICAgICAq
IHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2Vy
OjpGaWxlQ2hvb3Nlcik6IEludHJvZHVjZSBtX2lzSW5pdGlhbGl6aW5nIGZsYWcgdG8KKyAgICAg
ICAgICBhdm9pZCBGaWxlQ2hvb3NlckNsaWVudDo6cmVwYWludCgpIGNhbGwuCisgICAgICAgIChX
ZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6bG9hZEljb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNo
b29zZXI6Omljb25Mb2FkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6IEFk
ZCBhIEZpZWxDaG9vc2VyIHBhcmFtZXRlciB0bworICAgICAgICAgIEZpbGVDaG9vc2VyQ2xpZW50
OjpjaG9vc2VJY29uRm9yRmlsZXMoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OmNob29zZUljb25Gb3JGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOiBBZGQgYW4gYXNzZXJ0aW9uLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oOgorCiAyMDEwLTAzLTMwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAppbmRleCBkZDRmYzBkLi45MGRkNTY3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL0ZpbGVDaG9vc2VyLmNwcApAQCAtMzksOSArMzksMTEgQEAgRmlsZUNob29zZXJDbGll
bnQ6On5GaWxlQ2hvb3NlckNsaWVudCgpCiAKIGlubGluZSBGaWxlQ2hvb3Nlcjo6RmlsZUNob29z
ZXIoRmlsZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGluaXRp
YWxGaWxlbmFtZXMpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX2lzSW5pdGlhbGl6
aW5nKHRydWUpCiB7CiAgICAgbV9maWxlbmFtZXMgPSBpbml0aWFsRmlsZW5hbWVzOwogICAgIGxv
YWRJY29uKCk7CisgICAgbV9pc0luaXRpYWxpemluZyA9IGZhbHNlOwogfQogCiBQYXNzUmVmUHRy
PEZpbGVDaG9vc2VyPiBGaWxlQ2hvb3Nlcjo6Y3JlYXRlKEZpbGVDaG9vc2VyQ2xpZW50KiBjbGll
bnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsRmlsZW5hbWVzKQpAQCAtNzksMTMgKzgx
LDEzIEBAIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBmaWxlbmFtZXMpCiB2b2lkIEZpbGVDaG9vc2VyOjpsb2FkSWNvbigpCiB7CiAgICAgaWYgKG1f
ZmlsZW5hbWVzLnNpemUoKSAmJiBtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmNob29zZUlj
b25Gb3JGaWxlcyhtX2ZpbGVuYW1lcyk7CisgICAgICAgIG1fY2xpZW50LT5jaG9vc2VJY29uRm9y
RmlsZXModGhpcywgbV9maWxlbmFtZXMpOwogfQogCiB2b2lkIEZpbGVDaG9vc2VyOjppY29uTG9h
ZGVkKFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKIHsKICAgICBtX2ljb24gPSBpY29uOwotICAgIGlm
IChtX2ljb24gJiYgbV9jbGllbnQpCisgICAgaWYgKCFtX2lzSW5pdGlhbGl6aW5nICYmIG1faWNv
biAmJiBtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnJlcGFpbnQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlQ2hvb3Nlci5oCmluZGV4IDQwMjhkNDEuLmU5M2I5YWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZUNob29zZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2Vy
LmgKQEAgLTM1LDYgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGaWxl
Q2hvb3NlcjsKIGNsYXNzIEZvbnQ7CiBjbGFzcyBJY29uOwogCkBAIC00NCw3ICs0NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dzTXVsdGlwbGVGaWxlcygpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBhY2NlcHRUeXBl
cygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMoRmls
ZUNob29zZXIqLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpID0gMDsKICAgICB2aXJ0dWFsIH5GaWxl
Q2hvb3NlckNsaWVudCgpOwogfTsKIApAQCAtNzksNiArODAsNyBAQCBwcml2YXRlOgogICAgIEZp
bGVDaG9vc2VyQ2xpZW50KiBtX2NsaWVudDsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2ZpbGVuYW1l
czsKICAgICBSZWZQdHI8SWNvbj4gbV9pY29uOworICAgIGJvb2wgbV9pc0luaXRpYWxpemluZzsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCAxNGQxMjZkLi42YTVjMWUwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCkBAIC0xMTQsMTAgKzEx
NCwxMCBAQCBTdHJpbmcgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmFjY2VwdFR5cGVzKCkKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSktPmFjY2VwdCgp
OwogfQogCi12b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjaG9vc2VJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKK3ZvaWQgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmNob29zZUljb25Gb3JGaWxlcyhGaWxlQ2hvb3NlciogY2hvb3NlciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcykKIHsKICAgICBpZiAoQ2hyb21lKiBjaHJvbWVQb2ludGVy
ID0gY2hyb21lKCkpCi0gICAgICAgIGNocm9tZVBvaW50ZXItPmNob29zZUljb25Gb3JGaWxlcyhm
aWxlbmFtZXMsIG1fZmlsZUNob29zZXIpOworICAgICAgICBjaHJvbWVQb2ludGVyLT5jaG9vc2VJ
Y29uRm9yRmlsZXMoZmlsZW5hbWVzLCBjaG9vc2VyKTsKIH0KIAogdm9pZCBSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDo6Y2xpY2soKQpAQCAtMTk1LDYgKzE5NSw3IEBAIHZvaWQgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGlu
dCB0eSkKIHsKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCiAgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9maWxlQ2hvb3Nlcik7CiAgICAgCiAgICAgLy8gUHVz
aCBhIGNsaXAuCiAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3Vu
ZCB8fCBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5kcykg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgKaW5kZXggOTlk
ZDM1Yy4uMTQyN2RiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5oCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXBhaW50KCkgeyBS
ZW5kZXJCbG9jazo6cmVwYWludCgpOyB9CiAgICAgYm9vbCBhbGxvd3NNdWx0aXBsZUZpbGVzKCk7
CiAgICAgU3RyaW5nIGFjY2VwdFR5cGVzKCk7Ci0gICAgdm9pZCBjaG9vc2VJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICB2b2lkIGNob29zZUljb25Gb3JGaWxlcyhGaWxl
Q2hvb3NlciosIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICBDaHJvbWUqIGNocm9tZSgp
IGNvbnN0OwogICAgIGludCBtYXhGaWxlbmFtZVdpZHRoKCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="35527"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>