<?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>78655</bug_id>
          
          <creation_ts>2012-02-14 17:46:26 -0800</creation_ts>
          <short_desc>[Mac] PasteboardMac.mm build fails</short_desc>
          <delta_ts>2012-02-15 22:15:18 -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>Platform</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="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>556823</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-14 17:46:26 -0800</bug_when>
    <thetext>Although the bots have been working fine, PasteboardMac.mm build fails in our local Mac environments due to an uninitialized variable.

    /Users/haraken/WebKit/Source/WebCore/platform/mac/PasteboardMac.mm:322: warning: &apos;string&apos; may be used uninitialized in this function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556828</commentid>
    <comment_count>1</comment_count>
      <attachid>127090</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-14 17:48:32 -0800</bug_when>
    <thetext>Created attachment 127090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556845</commentid>
    <comment_count>2</comment_count>
      <attachid>127090</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 18:20:36 -0800</bug_when>
    <thetext>Comment on attachment 127090
Patch

Clearing flags on attachment: 127090

Committed r107770: &lt;http://trac.webkit.org/changeset/107770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556846</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 18:20:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556857</commentid>
    <comment_count>4</comment_count>
      <attachid>127090</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-14 18:30:07 -0800</bug_when>
    <thetext>Comment on attachment 127090
Patch

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

&gt; Source/WebCore/platform/mac/PasteboardMac.mm:322
&gt; +    NSString *string = nil;

This is not the right fix.

The code for NSFilenamesPboardType is wrong, and that’s the code triggering the warning, and initializing this to nil just hides that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556862</commentid>
    <comment_count>5</comment_count>
      <attachid>127090</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-14 18:46:04 -0800</bug_when>
    <thetext>Comment on attachment 127090
Patch

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

&gt;&gt; Source/WebCore/platform/mac/PasteboardMac.mm:322
&gt;&gt; +    NSString *string = nil;
&gt; 
&gt; This is not the right fix.
&gt; 
&gt; The code for NSFilenamesPboardType is wrong, and that’s the code triggering the warning, and initializing this to nil just hides that bug.

I got it. Let me fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557095</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 03:06:16 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557096</commentid>
    <comment_count>7</comment_count>
      <attachid>127147</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 03:06:20 -0800</bug_when>
    <thetext>Created attachment 127147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557099</commentid>
    <comment_count>8</comment_count>
      <attachid>127148</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 03:08:22 -0800</bug_when>
    <thetext>Created attachment 127148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557144</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 04:13:39 -0800</bug_when>
    <thetext>Attachment 127147 did not pass style-queue:

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

Updating OpenSource
Index mismatch: 0dfd183742a71cb5de5dadc3ae177fc72b63a194 != 9cdcda984def14b8bf8a32b6da6784c8a6ef7b3a
rereading 8567f8d3c2539a28a496edaf1048483e973975c2
	M	LayoutTests/fast/forms/radio-nested-labels.html
	M	LayoutTests/ChangeLog
107798 = 3671b2d23de7ade4cb1d1e78a3f6f7673db6a6c9 already exists! Why are we refetching it?
 at /usr/lib/git-core/git-svn line 5210

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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557147</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 04:14:35 -0800</bug_when>
    <thetext>Attachment 127148 did not pass style-queue:

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

Updating OpenSource
Index mismatch: 0dfd183742a71cb5de5dadc3ae177fc72b63a194 != 9cdcda984def14b8bf8a32b6da6784c8a6ef7b3a
rereading 8567f8d3c2539a28a496edaf1048483e973975c2
	M	LayoutTests/fast/forms/radio-nested-labels.html
	M	LayoutTests/ChangeLog
107798 = 3671b2d23de7ade4cb1d1e78a3f6f7673db6a6c9 already exists! Why are we refetching it?
 at /usr/lib/git-core/git-svn line 5210

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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557401</commentid>
    <comment_count>11</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 11:06:58 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 127090 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127090&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/mac/PasteboardMac.mm:322
&gt; &gt;&gt; +    NSString *string = nil;
&gt; &gt; 
&gt; &gt; This is not the right fix.
&gt; &gt; 
&gt; &gt; The code for NSFilenamesPboardType is wrong, and that’s the code triggering the warning, and initializing this to nil just hides that bug.
&gt; 
&gt; I got it. Let me fix it.

Why is this wrong? Darin, could you explain? I understand that the code was wrong when the nil initialization was missing, but I don&apos;t understand why this fix isn&apos;t correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557406</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-15 11:20:32 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Why is this wrong? Darin, could you explain? I understand that the code was wrong when the nil initialization was missing, but I don&apos;t understand why this fix isn&apos;t correct.

Here’s the old code:

    for (size_t i = 0; i &lt; pathnames.size(); i++)
        string = [string length] ? @&quot;\n&quot; + pathnames[i] : pathnames[i];
    string = [string precomposedStringWithCanonicalMapping];

That code will produce a string containing the last pathname in the vector, possibly with a newline prepended. It will not produce a string with multiple pathnames in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557407</commentid>
    <comment_count>13</comment_count>
      <attachid>127148</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-15 11:21:24 -0800</bug_when>
    <thetext>Comment on attachment 127148
Patch

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

&gt; Source/WebCore/platform/mac/PasteboardMac.mm:345
&gt; +                string = [NSString stringWithFormat:@&quot;%@\n%@&quot;, string, pathname];

It’s usually best to avoid stringWithFormat. I suggest we use StringBuilder for this and convert to NSString only at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557431</commentid>
    <comment_count>14</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 11:50:41 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Why is this wrong? Darin, could you explain? I understand that the code was wrong when the nil initialization was missing, but I don&apos;t understand why this fix isn&apos;t correct.
&gt; 
&gt; Here’s the old code:
&gt; 
&gt;     for (size_t i = 0; i &lt; pathnames.size(); i++)
&gt;         string = [string length] ? @&quot;\n&quot; + pathnames[i] : pathnames[i];
&gt;     string = [string precomposedStringWithCanonicalMapping];
&gt; 
&gt; That code will produce a string containing the last pathname in the vector, possibly with a newline prepended. It will not produce a string with multiple pathnames in it.

You&apos;re absolutely right, I missed that. The correct code is:

string = [string length] ? string + @&quot;\n&quot; + pathnames[i] : pathnames[i];

I think that adding the nil initialization is ok, as long as the other fix goes in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557436</commentid>
    <comment_count>15</comment_count>
      <attachid>127148</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 11:52:47 -0800</bug_when>
    <thetext>Comment on attachment 127148
Patch

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

&gt;&gt; Source/WebCore/platform/mac/PasteboardMac.mm:345
&gt;&gt; +                string = [NSString stringWithFormat:@&quot;%@\n%@&quot;, string, pathname];
&gt; 
&gt; It’s usually best to avoid stringWithFormat. I suggest we use StringBuilder for this and convert to NSString only at the end.

I think it is enough to change the code in the original for loop to 
string = [string length] ? string + @&quot;\n&quot; + pathnames[i] : pathnames[i]
and of course leave the initialization to nil.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557446</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-15 12:07:23 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; string = [string length] ? string + @&quot;\n&quot; + pathnames[i] : pathnames[i]

OK, but that still won’t work, and might not even compile, because we can’t just add two NSString * together using the + operator.

We need test coverage so we can know this is working code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557637</commentid>
    <comment_count>17</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 15:29:58 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; string = [string length] ? string + @&quot;\n&quot; + pathnames[i] : pathnames[i]
&gt; 
&gt; OK, but that still won’t work, and might not even compile, because we can’t just add two NSString * together using the + operator.
&gt; 
&gt; We need test coverage so we can know this is working code.

You&apos;re right it does not.
This code is ok:

        for (size_t i = 0; i &lt; pathnames.size(); i++)
            string = [string length] ? string + String(&quot;\n&quot;) + pathnames[i] : pathnames[i];

Kentaro, if you want I can take care of this, since I&apos;m the one who introduced the bug :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557642</commentid>
    <comment_count>18</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 15:37:02 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Kentaro, if you want I can take care of this, since I&apos;m the one who introduced the bug :-)

Good morning:-) I&apos;ll upload a patch in minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557665</commentid>
    <comment_count>19</comment_count>
      <attachid>127257</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 15:48:53 -0800</bug_when>
    <thetext>Created attachment 127257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557667</commentid>
    <comment_count>20</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 15:49:44 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; It’s usually best to avoid stringWithFormat. I suggest we use StringBuilder for this and convert to NSString only at the end.

Darin: Uploaded a patch using StringBuilder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557673</commentid>
    <comment_count>21</comment_count>
      <attachid>127257</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 15:55:27 -0800</bug_when>
    <thetext>Comment on attachment 127257
Patch

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

&gt; Source/WebCore/platform/mac/PasteboardMac.mm:350
&gt; +        }

I don&apos;t think you need all these changes. 
The only line you need to change in the one in the original for loop to the following:
      string = [string length] ? string + String(&quot;\n&quot;) + pathnames[i] : pathnames[i];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557683</commentid>
    <comment_count>22</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 16:00:22 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; I don&apos;t think you need all these changes. 
&gt; The only line you need to change in the one in the original for loop to the following:
&gt;       string = [string length] ? string + String(&quot;\n&quot;) + pathnames[i] : pathnames[i];

As Darin pointed out, using StringBuilder would be better for performance. In the above code, the conversion from String to NSString happens at every concatenation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557697</commentid>
    <comment_count>23</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 16:12:04 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; I don&apos;t think you need all these changes. 
&gt; &gt; The only line you need to change in the one in the original for loop to the following:
&gt; &gt;       string = [string length] ? string + String(&quot;\n&quot;) + pathnames[i] : pathnames[i];
&gt; 
&gt; As Darin pointed out, using StringBuilder would be better for performance. In the above code, the conversion from String to NSString happens at every concatenation.

That is right. Then, since we only need to deal with the NSString at the very end I would suggest:

        String pathnamesString;
        for (size_t i = 0; i &lt; pathnames.size(); i++)
            pathnamesString = !pathnamesString.isEmpty() ? pathnamesString + &quot;\n&quot; + pathnames[i] : pathnames[i];
        string = [(NSString *)pathnamesString precomposedStringWithCanonicalMapping];
        if (string != nil)
            return string;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557706</commentid>
    <comment_count>24</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 16:19:01 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; That is right. Then, since we only need to deal with the NSString at the very end I would suggest:
&gt; 
&gt;         String pathnamesString;
&gt;         for (size_t i = 0; i &lt; pathnames.size(); i++)
&gt;             pathnamesString = !pathnamesString.isEmpty() ? pathnamesString + &quot;\n&quot; + pathnames[i] : pathnames[i];
&gt;         string = [(NSString *)pathnamesString precomposedStringWithCanonicalMapping];
&gt;         if (string != nil)
&gt;             return string;

Using StringBuilder for String concatenation is also important for performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557726</commentid>
    <comment_count>25</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 16:38:22 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; That is right. Then, since we only need to deal with the NSString at the very end I would suggest:
&gt; &gt; 
&gt; &gt;         String pathnamesString;
&gt; &gt;         for (size_t i = 0; i &lt; pathnames.size(); i++)
&gt; &gt;             pathnamesString = !pathnamesString.isEmpty() ? pathnamesString + &quot;\n&quot; + pathnames[i] : pathnames[i];
&gt; &gt;         string = [(NSString *)pathnamesString precomposedStringWithCanonicalMapping];
&gt; &gt;         if (string != nil)
&gt; &gt;             return string;
&gt; 
&gt; Using StringBuilder for String concatenation is also important for performance.

Ok, then I&apos;d prefer this:

        StringBuilder builder;
        for (size_t i = 0; i &lt; pathnames.size(); i++)
            builder.append(i ? &quot;\n&quot; + pathnames[i] : pathnames[i]);
        string = [(NSString *)builder.toString() precomposedStringWithCanonicalMapping];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557731</commentid>
    <comment_count>26</comment_count>
      <attachid>127274</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-15 16:44:03 -0800</bug_when>
    <thetext>Created attachment 127274
Patch

Enrica: Fixed as you pointed out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557737</commentid>
    <comment_count>27</comment_count>
      <attachid>127274</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-15 16:49:17 -0800</bug_when>
    <thetext>Comment on attachment 127274
Patch

Looks great! Thanks for adding the test too :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557900</commentid>
    <comment_count>28</comment_count>
      <attachid>127274</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 22:15:12 -0800</bug_when>
    <thetext>Comment on attachment 127274
Patch

Clearing flags on attachment: 127274

Committed r107886: &lt;http://trac.webkit.org/changeset/107886&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557901</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 22:15:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127090</attachid>
            <date>2012-02-14 17:48:32 -0800</date>
            <delta_ts>2012-02-15 03:06:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78655-20120215104830.patch</filename>
            <type>text/plain</type>
            <size>1906</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBlZDQ0NDA2YmMwNWU5
MmEwMzU2ZTVlN2RlNmZlZTFmZjVmNGNiNy4uM2UwMjFjOTg4ZDFlZDQ5Y2YyMjFhNmYwZGRiOWI3
MmZkMjMyMDMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTE0ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTWFjXSBQYXN0ZWJv
YXJkTWFjLm1tIGJ1aWxkIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsdGhvdWdoIHRoZSBib3RzIGhhdmUgYmVlbiB3b3JraW5nIGZpbmUsIFBh
c3RlYm9hcmRNYWMubW0gYnVpbGQgZmFpbHMKKyAgICAgICAgaW4gb3VyIGxvY2FsIE1hYyBlbnZp
cm9ubWVudHMgZHVlIHRvIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGU6CisKKyAgICAgICAgICAg
IC9Vc2Vycy9oYXJha2VuL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbTozMjI6IHdhcm5pbmc6ICdzdHJpbmcnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6
ZWQgaW4gdGhpcyBmdW5jdGlvbgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW5pdGlhbGl6ZXMgdGhl
ICdzdHJpbmcnIHRvIG5pbCB0byBmaXggdGhlIGJ1aWxkIGZhaWx1cmUuCisKKyAgICAgICAgTm8g
dGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cGxhaW5UZXh0
KToKKwogMjAxMi0wMi0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBDcmFzaCBpbiBXZWJDb3JlOjpTVkdFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDY5OGUy
MjA0YzFiOTE2NDRjNWU1NzNmOTI2NzgwZDk2YjRlOTdhYzkuLjZjMzIyMTRjYjM1MjZiY2JkMmVj
NmQ1MDA2Yjc4YWEyYWUxMzI1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tCkBAIC0zMTksNyArMzE5LDcgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnBs
YWluVGV4dChGcmFtZSogZnJhbWUpCiAgICAgICAgIHJldHVybiBbKE5TU3RyaW5nICopcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKE5TU3Ry
aW5nUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSkgcHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fu
b25pY2FsTWFwcGluZ107CiAgICAgCiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVk
U3RyaW5nID0gbmlsOwotICAgIE5TU3RyaW5nICpzdHJpbmc7CisgICAgTlNTdHJpbmcgKnN0cmlu
ZyA9IG5pbDsKIAogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZEUGJvYXJkVHlw
ZSkpKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmJ1ZmZlckZvclR5cGUoTlNSVEZEUGJvYXJk
VHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127147</attachid>
            <date>2012-02-15 03:06:20 -0800</date>
            <delta_ts>2012-02-15 03:08:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78655-20120215200618.patch</filename>
            <type>text/plain</type>
            <size>11049</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1YjJmNDczNzZkNTNm
NGNhZjMzZGY3YzA3ZDM5MGIwY2IxNzA0Mi4uMjhhM2IyMWMwMzZkZWZlMTNlMmI3MjBiZTQxODdm
YTQzMGJmYmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTE1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTWFjXSBQYXN0ZWJv
YXJkTWFjLm1tIGJ1aWxkIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNvZGUgdG8gbWFrZSBhIHBsYWluIHRl
eHQgZm9yIHBhc3RlZCBmaWxlIG5hbWVzLgorICAgICAgICBUaGUgY29kZSBzaG91bGQgcmV0dXJu
IGEgc3RyaW5nIG9mIGNvbmNhdGVuYXRlZCBmaWxlIG5hbWVzLgorCisgICAgICAgIFRlc3Q6IGVk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpwbGFpblRleHQpOgorCiAyMDEyLTAyLTE0ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTWFjXSBQYXN0ZWJvYXJkTWFjLm1tIGJ1
aWxkIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IDZjMzIyMTRjYjM1MjZiY2JkMmVjNmQ1MDA2Yjc4YWEyYWUxMzI1OGYuLmFiYjRlMTE1
N2NmYTY2NmI5MzY0M2IyNGM1MmY0N2NmNjA5YzU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0zMTksNyArMzE5LDcgQEAgU3RyaW5nIFBh
c3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSogZnJhbWUpCiAgICAgICAgIHJldHVybiBbKE5TU3Ry
aW5nICopcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdG
b3JUeXBlKE5TU3RyaW5nUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSkgcHJlY29tcG9zZWRT
dHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ107CiAgICAgCiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5n
ICphdHRyaWJ1dGVkU3RyaW5nID0gbmlsOwotICAgIE5TU3RyaW5nICpzdHJpbmcgPSBuaWw7Cisg
ICAgTlNTdHJpbmcgKnN0cmluZzsKIAogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNS
VEZEUGJvYXJkVHlwZSkpKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmJ1ZmZlckZvclR5cGUo
TlNSVEZEUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7CkBAIC0zMzgsMTEgKzMzOCwxNCBA
QCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKiBmcmFtZSkKICAgICBpZiAodHlw
ZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpKSB7CiAgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IHBhdGhuYW1lczsKICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFtZXNGb3JUeXBlKHBhdGhuYW1lcywgTlNGaWxl
bmFtZXNQYm9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKTsKLSAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBwYXRobmFtZXMuc2l6ZSgpOyBpKyspCi0gICAgICAgICAgICBzdHJpbmcgPSBb
c3RyaW5nIGxlbmd0aF0gPyBAIlxuIiArIHBhdGhuYW1lc1tpXSA6IHBhdGhuYW1lc1tpXTsKLSAg
ICAgICAgc3RyaW5nID0gW3N0cmluZyBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBw
aW5nXTsKLSAgICAgICAgaWYgKHN0cmluZyAhPSBuaWwpCi0gICAgICAgICAgICByZXR1cm4gc3Ry
aW5nOworICAgICAgICBpZiAocGF0aG5hbWVzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIHN0
cmluZyA9IHBhdGhuYW1lc1swXTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwg
cGF0aG5hbWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnBhdGhu
YW1lID0gcGF0aG5hbWVzW2ldOworICAgICAgICAgICAgICAgIHN0cmluZyA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiJUBcbiVAIiwgc3RyaW5nLCBwYXRobmFtZV07CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gW3N0cmluZyBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5v
bmljYWxNYXBwaW5nXTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICBzdHJpbmcgPSBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoTlNV
UkxQYm9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTM5NmFjYmQ4ZDU2ZGUz
ZWVhZjQxNzU4ZmFhZmNjYzI0YjhmYzYwLi4xYTAwY2Y4M2MxZTBlMjhhMzZmNjM2MWZlMWU5MmVj
ZjdiNWFhOTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDItMTUgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtNYWNdIFBhc3RlYm9hcmRNYWMu
bW0gYnVpbGQgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4NjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGFkZGVkIHRlc3QgZHJvcHMgbXVsdGlwbGUgZmlsZXMgb250byBhbiBlZGl0YWJs
ZSBlbGVtZW50LAorICAgICAgICBhbmQgY2hlY2tzIGlmIHRoZSBmaWxlbmFtZXMgYXJlIGluc2Vy
dGVkIGludG8gdGhlIGVkaXRhYmxlIGVsZW1lbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUtZWxl
bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDoKKwogMjAxMi0wMi0xNCAgTm9l
bCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBS
ZWJhc2VsaW5lIEpQRUcgaW1hZ2UgcmVzdWx0cyBhZnRlciByMTA3Mzg5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVt
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZp
bGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxNWQxNWE3
YzQ3MGMzNmE0MzQ3M2RmYTYwNmJkNTVjMTA1ZTViZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitJZiB3ZSBkcmFnIGZpbGVzIG9udG8gYW4g
ZWRpdGFibGUgYXJlYSwgdGhlbiB0aGUgZmlsZW5hbWVzIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRv
IHRoZSBlZGl0YWJsZSBhcmVhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZXN1bHQgaXMgIjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZvbzwvZGl2
PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2JhcjwvZGl2PjxkaXY+TGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2JhejwvZGl2PiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI0YjIyOTU3YjBkYjNiN2IxZDM1ZWY0OTFjNjg4MzBkMTJl
NDlhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9k
cmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50
RWRpdGFibGU9dHJ1ZSBzdHlsZT0id2lkdGg6MjAwcHg7IGhlaWdodDoyMDBweCI+PC9kaXY+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ0lmIHdlIGRyYWcgZmlsZXMgb250byBhbiBlZGl0YWJsZSBh
cmVhLCB0aGVuIHRoZSBmaWxlbmFtZXMgc2hvdWxkIGJlIGluc2VydGVkIGludG8gdGhlIGVkaXRh
YmxlIGFyZWEuJyk7CisKK3ZhciBlZGl0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
ZGl0YWJsZSIpOworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGRyYWdGaWxlc09udG9F
ZGl0YWJsZShbJ2ZvbycsICdiYXInLCAnYmF6J10pOworICAgIHZhciByZXN1bHQgPSBlZGl0YWJs
ZS5pbm5lckhUTUwucmVwbGFjZSgvZmlsZS4qP0xheW91dFRlc3RzL2csICJMYXlvdXRUZXN0cyIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncmVzdWx0JywgJzxkaXY+TGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2ZvbzwvZGl2PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2JhcjwvZGl2PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2Jhejwv
ZGl2PicpOworICAgIGVkaXRhYmxlLmlubmVySFRNTCA9ICcnOworfQorCitmdW5jdGlvbiBtb3Zl
TW91c2VUb0NlbnRlck9mRWxlbWVudChlbGVtZW50KQoreworICAgIHZhciBjZW50ZXJYID0gZWxl
bWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24g
ZHJhZ0ZpbGVzT250b0VkaXRhYmxlKGZpbGVzKQoreworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJh
Z1dpdGhGaWxlcyhmaWxlcyk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZWRpdGFi
bGUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cmlu
ZGV4IGNhYzFlOWFmZjJkOTFkMTJjODVmMDkwNzM0OGQ5OTkyMjMwY2I0Y2MuLmU0YWEwOTYyNmFh
ZDk2ZWRhMTQxZGEwYjg2YjY4MDM3MGVkNTA5NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTgzOCw2ICs4MzgsOSBA
QCBCVUdXSzYxNjExIExJTlVYIFdJTiA6IGVkaXRpbmcvcGFzdGVib2FyZC9pbnRlcmNoYW5nZS1u
ZXdsaW5lLTIuaHRtbCA9IFRFWFQKIEJVR1dLNjE2MjQgV0lOIDogZWRpdGluZy9wYXN0ZWJvYXJk
L3NtYXJ0LXBhc3RlLTAwMy5odG1sID0gVEVYVAogQlVHV0s2MTYyNCBXSU4gOiBlZGl0aW5nL3Bh
c3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0Lmh0bWwgPSBURVhUCiAKKy8vIFBhc3RlQm9hcmQ6OnBs
YWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmlsZSBuYW1lcy4KK0JVR1dLNzg2NTUgOiBlZGl0
aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50Lmh0bWwgPSBGQUlM
CisKIC8vIE5ldyB0ZXN0IGluIHI5MzA2OAogQlVHV0s2NjI2OCBXSU4gTElOVVggOiBlZGl0aW5n
L2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbCA9IFRFWFQKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvU2tpcHBlZAppbmRleCA3NTkyN2Y2ZmZlYmJjZTU0YmUyNDc1ZGFkZGYxY2U5MGZhYTg4NDBi
Li44MGU2ODQ3YjkzYTk1YWQ3NDY5NmE2Mzc3MGE4NGZlMmNjMDU4Yjc4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvU2tpcHBlZApAQCAtMTI0OCw2ICsxMjQ4LDkgQEAgZmFzdC9kb20vV2luZG93L3Nsb3ct
dW5sb2FkLWhhbmRsZXItb25seS1mcmFtZS1pcy1zdG9wcGVkLmh0bWwKICMgVGhlIEVGTCBwb3J0
IGhhcyBubyBnbG9iYWwgaGlzdG9yeSBkZWxlZ2F0ZQogaHR0cC90ZXN0cy9nbG9iYWxoaXN0b3J5
CiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9lcyBub3Qgc3VwcG9ydCBmaWxlIG5hbWVz
LgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUtZWxlbWVudC5odG1s
CisKICMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90IG5vdGlmaWVkIGF0
IGVuZC1vZi10YXNrCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODI5MAogZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCmluZGV4IDY2MDk3YmNkNGZhZjI2NTEwNzVhOWYwMmFiNDFlYTY4ZmUxY2Y2
YTUuLmU0OWNkMjkzYmZjYTZjYTk5MmNhMzM0OGIxODI1ODgwZTA1MTQ5NmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCkBAIC0yOTksNiArMjk5LDkgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL2Rh
dGEtdHJhbnNmZXItaXRlbXMtZHJhZy1kcm9wLXN0cmluZy5odG1sCiBlZGl0aW5nL3Bhc3RlYm9h
cmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRh
Lmh0bWwKIAorIyBQYXN0ZUJvYXJkOjpwbGFpblRleHQoKSBkb2VzIG5vdCBzdXBwb3J0IGZpbGUg
bmFtZXMuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50
Lmh0bWwKKwogIyBOZWVkcyBncmFtbWFyIGNoZWNraW5nLgogZWRpdGluZy9zcGVsbGluZy9tYXJr
ZXJzLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCAwY2MxNDViOWUwMmM4MTAw
OWM1Y2E1NDExZTYxMGViODhiYmI3NGI2Li40N2FhYzNiNTcyNjUzYWQ1ZDc0MmE0MjAxMzBhMTEy
MDI5OGZmYzQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTg5LDkgKzE4OSw2IEBA
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21p
c2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlz
Yy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIAotIyBGaWxlbmFtZXMgYXJlbid0IGZpbHRlcmVkIG91
dCBmcm9tIGVkaXQgZHJhZ3MgeWV0LCBzZWUgaHR0cHM6Ly9idWdzLndla2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzg4MjYKLWVkaXRpbmcvcGFzdGVib2FyZC9maWxlLWRyYWctdG8tZWRpdGFibGUu
aHRtbAotCiAjIEV2ZW50U2VuZGVyOjpkdW1wRmlsZW5hbWVCZWluZ0RyYWdnZWQgbm90IGltcGxl
bWVudGVkLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4MjcK
IGZhc3QvZXZlbnRzL2RyYWctaW1hZ2UtZmlsZW5hbWUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKaW5kZXggOTAzOTg0YmU0ZGQ4NWY3YzRiMzRkZTgxNTEzNmRlMzM0YmViMjQ1Ny4uMjU2ODFj
NzhmYmRjZjE4ZTg2MDhkNTFmYzhlNDA5YTJiODZiMGE0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCkBAIC00MTMsNiArNDEzLDkgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXIt
aXRlbXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1k
cm9wLWZpbGUuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJh
Zy1kcm9wLXN0cmluZy5odG1sCiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9lcyBub3Qg
c3VwcG9ydCBmaWxlIG5hbWVzLgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRp
dGFibGUtZWxlbWVudC5odG1sCisKICMgTWlzc2luZyBkcmFnICYgZHJvcCBmdW5jdGlvbmFsaXR5
IGluIERSVAogZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3AtaW5wdXR0ZXh0LWFjcXVpcmVzLXN0eWxl
Lmh0bWwKIGZhc3QvY3NzL3VzZXItZHJhZy1ub25lLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKaW5kZXggOTljOGI4YWVhZTI1MmY3ZjJjODIyZGM3YmE3ZmIwOTkxNWUyMWEzZS4uMGVmZWNh
NTAzMGUwNGI5NDMxYTJiYzM3MDhiMzM3NjUwZTAzMzgyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKQEAgLTE1NSw2ICsxNTUsOSBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2RyYWctZHJvcC1z
YW1lLXVuaXF1ZS1vcmlnaW4uaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjE4MjkKIGZhc3QvZXZlbnRzL2RyYWctaW1hZ2UtZmlsZW5hbWUuaHRtbAogCisj
IFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmlsZSBuYW1lcy4KK2Vk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCiAj
IDxyZGFyOi8vcHJvYmxlbS81NjQzNjc1PiB3aW5kb3cuc2Nyb2xsVG8gc2Nyb2xscyBhIHdpbmRv
dyB3aXRoIG5vIHNjcm9sbGJhcnMKIGZhc3QvZXZlbnRzL2F0dGVtcHQtc2Nyb2xsLXdpdGgtbm8t
c2Nyb2xsYmFycy5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggNmU5N2M5Mjk0
NzM1NjE3MmU2ZmI4MjBiZjNjYThiMmQzZWMxMmNjYy4uZWNkMjFiZDA3NzNhNjMzZjI5NWQ5YWZj
NWJiN2ZlNTU0MWQ5ZDg3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTgyMSw2ICs4
MjEsOSBAQCBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3JvdW5kaW5nLWhhY2tzLWV4cGFuc2lvbi5o
dG1sCiAjIGh0dHA6Ly93ZWJraXQub3JnL2IvNTg5OTAKIGVkaXRpbmcvdW5kby91bmRvLWlmcmFt
ZS1sb2NhdGlvbi1jaGFuZ2UuaHRtbAogCisjIFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMg
bm90IHN1cHBvcnQgZmlsZSBuYW1lcy4KK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRv
LWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCiAjIFRpbWVzIG91dAogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MDYKIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1v
bmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127148</attachid>
            <date>2012-02-15 03:08:22 -0800</date>
            <delta_ts>2012-02-15 15:48:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78655-20120215200820.patch</filename>
            <type>text/plain</type>
            <size>10305</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1YjJmNDczNzZkNTNm
NGNhZjMzZGY3YzA3ZDM5MGIwY2IxNzA0Mi4uMjhhM2IyMWMwMzZkZWZlMTNlMmI3MjBiZTQxODdm
YTQzMGJmYmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTE1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTWFjXSBQYXN0ZWJv
YXJkTWFjLm1tIGJ1aWxkIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNvZGUgdG8gbWFrZSBhIHBsYWluIHRl
eHQgZm9yIHBhc3RlZCBmaWxlIG5hbWVzLgorICAgICAgICBUaGUgY29kZSBzaG91bGQgcmV0dXJu
IGEgc3RyaW5nIG9mIGNvbmNhdGVuYXRlZCBmaWxlIG5hbWVzLgorCisgICAgICAgIFRlc3Q6IGVk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpwbGFpblRleHQpOgorCiAyMDEyLTAyLTE0ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTWFjXSBQYXN0ZWJvYXJkTWFjLm1tIGJ1
aWxkIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IDZjMzIyMTRjYjM1MjZiY2JkMmVjNmQ1MDA2Yjc4YWEyYWUxMzI1OGYuLmFiYjRlMTE1
N2NmYTY2NmI5MzY0M2IyNGM1MmY0N2NmNjA5YzU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0zMTksNyArMzE5LDcgQEAgU3RyaW5nIFBh
c3RlYm9hcmQ6OnBsYWluVGV4dChGcmFtZSogZnJhbWUpCiAgICAgICAgIHJldHVybiBbKE5TU3Ry
aW5nICopcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdG
b3JUeXBlKE5TU3RyaW5nUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSkgcHJlY29tcG9zZWRT
dHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ107CiAgICAgCiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5n
ICphdHRyaWJ1dGVkU3RyaW5nID0gbmlsOwotICAgIE5TU3RyaW5nICpzdHJpbmcgPSBuaWw7Cisg
ICAgTlNTdHJpbmcgKnN0cmluZzsKIAogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNS
VEZEUGJvYXJkVHlwZSkpKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmJ1ZmZlckZvclR5cGUo
TlNSVEZEUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7CkBAIC0zMzgsMTEgKzMzOCwxNCBA
QCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKiBmcmFtZSkKICAgICBpZiAodHlw
ZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpKSB7CiAgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IHBhdGhuYW1lczsKICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFtZXNGb3JUeXBlKHBhdGhuYW1lcywgTlNGaWxl
bmFtZXNQYm9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKTsKLSAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBwYXRobmFtZXMuc2l6ZSgpOyBpKyspCi0gICAgICAgICAgICBzdHJpbmcgPSBb
c3RyaW5nIGxlbmd0aF0gPyBAIlxuIiArIHBhdGhuYW1lc1tpXSA6IHBhdGhuYW1lc1tpXTsKLSAg
ICAgICAgc3RyaW5nID0gW3N0cmluZyBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBw
aW5nXTsKLSAgICAgICAgaWYgKHN0cmluZyAhPSBuaWwpCi0gICAgICAgICAgICByZXR1cm4gc3Ry
aW5nOworICAgICAgICBpZiAocGF0aG5hbWVzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIHN0
cmluZyA9IHBhdGhuYW1lc1swXTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwg
cGF0aG5hbWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnBhdGhu
YW1lID0gcGF0aG5hbWVzW2ldOworICAgICAgICAgICAgICAgIHN0cmluZyA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiJUBcbiVAIiwgc3RyaW5nLCBwYXRobmFtZV07CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gW3N0cmluZyBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5v
bmljYWxNYXBwaW5nXTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICBzdHJpbmcgPSBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoTlNV
UkxQYm9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTM5NmFjYmQ4ZDU2ZGUz
ZWVhZjQxNzU4ZmFhZmNjYzI0YjhmYzYwLi4yYWFkYjljMWMyNDNhMGI0YWRjZTgwZDhlZTEwMTNm
Mjc5NWQ2Njg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDItMTUgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtNYWNdIFBhc3RlYm9hcmRNYWMu
bW0gYnVpbGQgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4NjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGFkZGVkIHRlc3QgZHJvcHMgbXVsdGlwbGUgZmlsZXMgb250byBhbiBlZGl0YWJs
ZSBlbGVtZW50LAorICAgICAgICBhbmQgY2hlY2tzIGlmIHRoZSBmaWxlbmFtZXMgYXJlIGluc2Vy
dGVkIGludG8gdGhlIGVkaXRhYmxlIGVsZW1lbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUtZWxl
bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tp
cHBlZDoKKwogMjAxMi0wMi0xNCAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+
CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWJhc2VsaW5lIEpQRUcgaW1hZ2UgcmVzdWx0cyBhZnRl
ciByMTA3Mzg5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJh
Zy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUxNWQxNWE3YzQ3MGMzNmE0MzQ3M2RmYTYwNmJkNTVjMTA1ZTViZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1m
aWxlcy10by1lZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitJ
ZiB3ZSBkcmFnIGZpbGVzIG9udG8gYW4gZWRpdGFibGUgYXJlYSwgdGhlbiB0aGUgZmlsZW5hbWVz
IHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIHRoZSBlZGl0YWJsZSBhcmVhLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgIjxkaXY+TGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2ZvbzwvZGl2PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2JhcjwvZGl2PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2JhejwvZGl2
PiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1l
ZGl0YWJsZS1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJh
Zy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI0YjIyOTU3YjBk
YjNiN2IxZDM1ZWY0OTFjNjg4MzBkMTJlNDlhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRt
bApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxk
aXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50RWRpdGFibGU9dHJ1ZSBzdHlsZT0id2lkdGg6MjAwcHg7
IGhlaWdodDoyMDBweCI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0lmIHdlIGRyYWcg
ZmlsZXMgb250byBhbiBlZGl0YWJsZSBhcmVhLCB0aGVuIHRoZSBmaWxlbmFtZXMgc2hvdWxkIGJl
IGluc2VydGVkIGludG8gdGhlIGVkaXRhYmxlIGFyZWEuJyk7CisKK3ZhciBlZGl0YWJsZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0YWJsZSIpOworaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgeworICAgIGRyYWdGaWxlc09udG9FZGl0YWJsZShbJ2ZvbycsICdiYXInLCAnYmF6J10pOwor
ICAgIHZhciByZXN1bHQgPSBlZGl0YWJsZS5pbm5lckhUTUwucmVwbGFjZSgvZmlsZS4qP0xheW91
dFRlc3RzL2csICJMYXlvdXRUZXN0cyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncmVz
dWx0JywgJzxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZvbzwvZGl2PjxkaXY+
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2JhcjwvZGl2PjxkaXY+TGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2JhejwvZGl2PicpOworICAgIGVkaXRhYmxlLmlubmVySFRNTCA9
ICcnOworfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChlbGVtZW50KQor
eworICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDI7CisgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBj
ZW50ZXJZKTsKK30KKworZnVuY3Rpb24gZHJhZ0ZpbGVzT250b0VkaXRhYmxlKGZpbGVzKQorewor
ICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhmaWxlcyk7CisgICAgbW92ZU1vdXNl
VG9DZW50ZXJPZkVsZW1lbnQoZWRpdGFibGUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGNhYzFlOWFmZjJkOTFkMTJjODVmMDkwNzM0OGQ5
OTkyMjMwY2I0Y2MuLmU0YWEwOTYyNmFhZDk2ZWRhMTQxZGEwYjg2YjY4MDM3MGVkNTA5NzggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKQEAgLTgzOCw2ICs4MzgsOSBAQCBCVUdXSzYxNjExIExJTlVYIFdJTiA6IGVkaXRpbmcv
cGFzdGVib2FyZC9pbnRlcmNoYW5nZS1uZXdsaW5lLTIuaHRtbCA9IFRFWFQKIEJVR1dLNjE2MjQg
V0lOIDogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMy5odG1sID0gVEVYVAogQlVH
V0s2MTYyNCBXSU4gOiBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0Lmh0bWwgPSBU
RVhUCiAKKy8vIFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmlsZSBu
YW1lcy4KK0JVR1dLNzg2NTUgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0
YWJsZS1lbGVtZW50Lmh0bWwgPSBGQUlMCisKIC8vIE5ldyB0ZXN0IGluIHI5MzA2OAogQlVHV0s2
NjI2OCBXSU4gTElOVVggOiBlZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRt
bCA9IFRFWFQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCA3NTkyN2Y2ZmZlYmJjZTU0
YmUyNDc1ZGFkZGYxY2U5MGZhYTg4NDBiLi44MGU2ODQ3YjkzYTk1YWQ3NDY5NmE2Mzc3MGE4NGZl
MmNjMDU4Yjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtMTI0OCw2ICsxMjQ4LDkg
QEAgZmFzdC9kb20vV2luZG93L3Nsb3ctdW5sb2FkLWhhbmRsZXItb25seS1mcmFtZS1pcy1zdG9w
cGVkLmh0bWwKICMgVGhlIEVGTCBwb3J0IGhhcyBubyBnbG9iYWwgaGlzdG9yeSBkZWxlZ2F0ZQog
aHR0cC90ZXN0cy9nbG9iYWxoaXN0b3J5CiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9l
cyBub3Qgc3VwcG9ydCBmaWxlIG5hbWVzLgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMt
dG8tZWRpdGFibGUtZWxlbWVudC5odG1sCisKICMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2Vy
dmVycyBhcmUgbm90IG5vdGlmaWVkIGF0IGVuZC1vZi10YXNrCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MAogZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1k
ZWxpdmVyeS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDY2MDk3YmNkNGZhZjI2
NTEwNzVhOWYwMmFiNDFlYTY4ZmUxY2Y2YTUuLmU0OWNkMjkzYmZjYTZjYTk5MmNhMzM0OGIxODI1
ODgwZTA1MTQ5NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0yOTksNiArMjk5LDkg
QEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1kcm9wLXN0cmlu
Zy5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAogZmFz
dC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKIAorIyBQYXN0ZUJvYXJkOjpwbGFpblRleHQo
KSBkb2VzIG5vdCBzdXBwb3J0IGZpbGUgbmFtZXMuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1m
aWxlcy10by1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKKwogIyBOZWVkcyBncmFtbWFyIGNoZWNraW5n
LgogZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
aW5kZXggOTAzOTg0YmU0ZGQ4NWY3YzRiMzRkZTgxNTEzNmRlMzM0YmViMjQ1Ny4uMjU2ODFjNzhm
YmRjZjE4ZTg2MDhkNTFmYzhlNDA5YTJiODZiMGE0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CkBAIC00MTMsNiArNDEzLDkgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRl
bXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1kcm9w
LWZpbGUuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1k
cm9wLXN0cmluZy5odG1sCiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9lcyBub3Qgc3Vw
cG9ydCBmaWxlIG5hbWVzLgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFi
bGUtZWxlbWVudC5odG1sCisKICMgTWlzc2luZyBkcmFnICYgZHJvcCBmdW5jdGlvbmFsaXR5IGlu
IERSVAogZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3AtaW5wdXR0ZXh0LWFjcXVpcmVzLXN0eWxlLmh0
bWwKIGZhc3QvY3NzL3VzZXItZHJhZy1ub25lLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
aW5kZXggOTljOGI4YWVhZTI1MmY3ZjJjODIyZGM3YmE3ZmIwOTkxNWUyMWEzZS4uMGVmZWNhNTAz
MGUwNGI5NDMxYTJiYzM3MDhiMzM3NjUwZTAzMzgyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKQEAgLTE1NSw2ICsxNTUsOSBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2RyYWctZHJvcC1zYW1l
LXVuaXF1ZS1vcmlnaW4uaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjE4MjkKIGZhc3QvZXZlbnRzL2RyYWctaW1hZ2UtZmlsZW5hbWUuaHRtbAogCisjIFBh
c3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmlsZSBuYW1lcy4KK2VkaXRp
bmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCiAjIDxy
ZGFyOi8vcHJvYmxlbS81NjQzNjc1PiB3aW5kb3cuc2Nyb2xsVG8gc2Nyb2xscyBhIHdpbmRvdyB3
aXRoIG5vIHNjcm9sbGJhcnMKIGZhc3QvZXZlbnRzL2F0dGVtcHQtc2Nyb2xsLXdpdGgtbm8tc2Ny
b2xsYmFycy5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggNmU5N2M5Mjk0NzM1
NjE3MmU2ZmI4MjBiZjNjYThiMmQzZWMxMmNjYy4uZWNkMjFiZDA3NzNhNjMzZjI5NWQ5YWZjNWJi
N2ZlNTU0MWQ5ZDg3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTgyMSw2ICs4MjEs
OSBAQCBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3JvdW5kaW5nLWhhY2tzLWV4cGFuc2lvbi5odG1s
CiAjIGh0dHA6Ly93ZWJraXQub3JnL2IvNTg5OTAKIGVkaXRpbmcvdW5kby91bmRvLWlmcmFtZS1s
b2NhdGlvbi1jaGFuZ2UuaHRtbAogCisjIFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90
IHN1cHBvcnQgZmlsZSBuYW1lcy4KK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVk
aXRhYmxlLWVsZW1lbnQuaHRtbAorCiAjIFRpbWVzIG91dAogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MDYKIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5
LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127257</attachid>
            <date>2012-02-15 15:48:53 -0800</date>
            <delta_ts>2012-02-15 16:43:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78655-20120216084852.patch</filename>
            <type>text/plain</type>
            <size>10521</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1YjJmNDczNzZkNTNm
NGNhZjMzZGY3YzA3ZDM5MGIwY2IxNzA0Mi4uMjhhM2IyMWMwMzZkZWZlMTNlMmI3MjBiZTQxODdm
YTQzMGJmYmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTE1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTWFjXSBQYXN0ZWJv
YXJkTWFjLm1tIGJ1aWxkIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNvZGUgdG8gbWFrZSBhIHBsYWluIHRl
eHQgZm9yIHBhc3RlZCBmaWxlIG5hbWVzLgorICAgICAgICBUaGUgY29kZSBzaG91bGQgcmV0dXJu
IGEgc3RyaW5nIG9mIGNvbmNhdGVuYXRlZCBmaWxlIG5hbWVzLgorCisgICAgICAgIFRlc3Q6IGVk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpwbGFpblRleHQpOgorCiAyMDEyLTAyLTE0ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTWFjXSBQYXN0ZWJvYXJkTWFjLm1tIGJ1
aWxkIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IDZjMzIyMTRjYjM1MjZiY2JkMmVjNmQ1MDA2Yjc4YWEyYWUxMzI1OGYuLmNjZTBjMmE0
MWE2OGFmMTRhMDkyNDhjYzM4ZDhlYTM1MWJlMGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01Niw2ICs1Niw3IEBACiAjaW1wb3J0IDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3
dGYvVW51c2VkUGFyYW0uaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bXBvcnQgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKICNpZiBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKQEAgLTMxOSw3ICszMjAsNyBAQCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5U
ZXh0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgcmV0dXJuIFsoTlNTdHJpbmcgKilwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoTlNTdHJpbmdQ
Ym9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmlj
YWxNYXBwaW5nXTsKICAgICAKICAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJp
bmcgPSBuaWw7Ci0gICAgTlNTdHJpbmcgKnN0cmluZyA9IG5pbDsKKyAgICBOU1N0cmluZyAqc3Ry
aW5nOwogCiAgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKSkp
IHsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+YnVmZmVyRm9yVHlwZShOU1JURkRQYm9hcmRUeXBl
LCBtX3Bhc3RlYm9hcmROYW1lKTsKQEAgLTMzOCwxMSArMzM5LDE1IEBAIFN0cmluZyBQYXN0ZWJv
YXJkOjpwbGFpblRleHQoRnJhbWUqIGZyYW1lKQogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJp
bmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gcGF0
aG5hbWVzOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPmdldFBhdGhuYW1lc0ZvclR5cGUocGF0aG5hbWVzLCBOU0ZpbGVuYW1lc1Bib2FyZFR5cGUs
IG1fcGFzdGVib2FyZE5hbWUpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhdGhu
YW1lcy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIHN0cmluZyA9IFtzdHJpbmcgbGVuZ3RoXSA/
IEAiXG4iICsgcGF0aG5hbWVzW2ldIDogcGF0aG5hbWVzW2ldOwotICAgICAgICBzdHJpbmcgPSBb
c3RyaW5nIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddOwotICAgICAgICBp
ZiAoc3RyaW5nICE9IG5pbCkKLSAgICAgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgICAgIGlm
IChwYXRobmFtZXMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQocGF0aG5hbWVzWzBdKTsKKyAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgcGF0aG5hbWVzLnNpemUoKTsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlxuIiArIHBhdGhuYW1lc1tpXSk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAg
ICAgICByZXR1cm4gW3N0cmluZyBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5n
XTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICBzdHJpbmcgPSBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoTlNVUkxQYm9hcmRUeXBl
LCBtX3Bhc3RlYm9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTM5NmFjYmQ4ZDU2ZGUzZWVhZjQxNzU4ZmFh
ZmNjYzI0YjhmYzYwLi4yYWFkYjljMWMyNDNhMGI0YWRjZTgwZDhlZTEwMTNmMjc5NWQ2Njg3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDItMTUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtNYWNdIFBhc3RlYm9hcmRNYWMubW0gYnVpbGQgZmFp
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGFk
ZGVkIHRlc3QgZHJvcHMgbXVsdGlwbGUgZmlsZXMgb250byBhbiBlZGl0YWJsZSBlbGVtZW50LAor
ICAgICAgICBhbmQgY2hlY2tzIGlmIHRoZSBmaWxlbmFtZXMgYXJlIGluc2VydGVkIGludG8gdGhl
IGVkaXRhYmxlIGVsZW1lbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1m
aWxlcy10by1lZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUtZWxlbWVudC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDoKKwogMjAx
Mi0wMi0xNCAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAg
W2Nocm9taXVtXSBSZWJhc2VsaW5lIEpQRUcgaW1hZ2UgcmVzdWx0cyBhZnRlciByMTA3Mzg5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1l
ZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUxNWQxNWE3YzQ3MGMzNmE0MzQ3M2RmYTYwNmJkNTVjMTA1ZTViZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0
YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitJZiB3ZSBkcmFnIGZp
bGVzIG9udG8gYW4gZWRpdGFibGUgYXJlYSwgdGhlbiB0aGUgZmlsZW5hbWVzIHNob3VsZCBiZSBp
bnNlcnRlZCBpbnRvIHRoZSBlZGl0YWJsZSBhcmVhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZXN1bHQgaXMgIjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2ZvbzwvZGl2PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2JhcjwvZGl2
PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2JhejwvZGl2PiIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1l
ZGl0YWJsZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI0YjIyOTU3YjBkYjNiN2IxZDM1ZWY0
OTFjNjg4MzBkMTJlNDlhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbApAQCAtMCwwICsx
LDM4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9ImVkaXRh
YmxlIiBjb250ZW50RWRpdGFibGU9dHJ1ZSBzdHlsZT0id2lkdGg6MjAwcHg7IGhlaWdodDoyMDBw
eCI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0lmIHdlIGRyYWcgZmlsZXMgb250byBh
biBlZGl0YWJsZSBhcmVhLCB0aGVuIHRoZSBmaWxlbmFtZXMgc2hvdWxkIGJlIGluc2VydGVkIGlu
dG8gdGhlIGVkaXRhYmxlIGFyZWEuJyk7CisKK3ZhciBlZGl0YWJsZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJlZGl0YWJsZSIpOworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGRy
YWdGaWxlc09udG9FZGl0YWJsZShbJ2ZvbycsICdiYXInLCAnYmF6J10pOworICAgIHZhciByZXN1
bHQgPSBlZGl0YWJsZS5pbm5lckhUTUwucmVwbGFjZSgvZmlsZS4qP0xheW91dFRlc3RzL2csICJM
YXlvdXRUZXN0cyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncmVzdWx0JywgJzxkaXY+
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZvbzwvZGl2PjxkaXY+TGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2JhcjwvZGl2PjxkaXY+TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2JhejwvZGl2PicpOworICAgIGVkaXRhYmxlLmlubmVySFRNTCA9ICcnOworfQorCitm
dW5jdGlvbiBtb3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChlbGVtZW50KQoreworICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBjZW50ZXJZKTsKK30K
KworZnVuY3Rpb24gZHJhZ0ZpbGVzT250b0VkaXRhYmxlKGZpbGVzKQoreworICAgIGV2ZW50U2Vu
ZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhmaWxlcyk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVs
ZW1lbnQoZWRpdGFibGUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CmluZGV4IGNhYzFlOWFmZjJkOTFkMTJjODVmMDkwNzM0OGQ5OTkyMjMwY2I0Y2Mu
LmU0YWEwOTYyNmFhZDk2ZWRhMTQxZGEwYjg2YjY4MDM3MGVkNTA5NzggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTgz
OCw2ICs4MzgsOSBAQCBCVUdXSzYxNjExIExJTlVYIFdJTiA6IGVkaXRpbmcvcGFzdGVib2FyZC9p
bnRlcmNoYW5nZS1uZXdsaW5lLTIuaHRtbCA9IFRFWFQKIEJVR1dLNjE2MjQgV0lOIDogZWRpdGlu
Zy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMy5odG1sID0gVEVYVAogQlVHV0s2MTYyNCBXSU4g
OiBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0Lmh0bWwgPSBURVhUCiAKKy8vIFBh
c3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmlsZSBuYW1lcy4KK0JVR1dL
Nzg2NTUgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50
Lmh0bWwgPSBGQUlMCisKIC8vIE5ldyB0ZXN0IGluIHI5MzA2OAogQlVHV0s2NjI2OCBXSU4gTElO
VVggOiBlZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWluZGljYXRvcnMuaHRtbCA9IFRFWFQKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCA3NTkyN2Y2ZmZlYmJjZTU0YmUyNDc1ZGFkZGYx
Y2U5MGZhYTg4NDBiLi44MGU2ODQ3YjkzYTk1YWQ3NDY5NmE2Mzc3MGE4NGZlMmNjMDU4Yjc4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtMTI0OCw2ICsxMjQ4LDkgQEAgZmFzdC9kb20v
V2luZG93L3Nsb3ctdW5sb2FkLWhhbmRsZXItb25seS1mcmFtZS1pcy1zdG9wcGVkLmh0bWwKICMg
VGhlIEVGTCBwb3J0IGhhcyBubyBnbG9iYWwgaGlzdG9yeSBkZWxlZ2F0ZQogaHR0cC90ZXN0cy9n
bG9iYWxoaXN0b3J5CiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9lcyBub3Qgc3VwcG9y
dCBmaWxlIG5hbWVzLgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUt
ZWxlbWVudC5odG1sCisKICMgRmFpbHMgYmVjYXVzZSBNdXRhdGlvbk9ic2VydmVycyBhcmUgbm90
IG5vdGlmaWVkIGF0IGVuZC1vZi10YXNrCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03ODI5MAogZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDY2MDk3YmNkNGZhZjI2NTEwNzVhOWYwMmFi
NDFlYTY4ZmUxY2Y2YTUuLmU0OWNkMjkzYmZjYTZjYTk5MmNhMzM0OGIxODI1ODgwZTA1MTQ5NmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0yOTksNiArMjk5LDkgQEAgZWRpdGluZy9w
YXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1kcm9wLXN0cmluZy5odG1sCiBlZGl0
aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAogZmFzdC9ldmVudHMvZHJh
Zy1jdXN0b21EYXRhLmh0bWwKIAorIyBQYXN0ZUJvYXJkOjpwbGFpblRleHQoKSBkb2VzIG5vdCBz
dXBwb3J0IGZpbGUgbmFtZXMuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0
YWJsZS1lbGVtZW50Lmh0bWwKKwogIyBOZWVkcyBncmFtbWFyIGNoZWNraW5nLgogZWRpdGluZy9z
cGVsbGluZy9tYXJrZXJzLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggOTAzOTg0
YmU0ZGQ4NWY3YzRiMzRkZTgxNTEzNmRlMzM0YmViMjQ1Ny4uMjU2ODFjNzhmYmRjZjE4ZTg2MDhk
NTFmYzhlNDA5YTJiODZiMGE0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC00MTMsNiAr
NDEzLDkgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogZWRp
dGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1kcm9wLWZpbGUuaHRtbAog
ZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZHJhZy1kcm9wLXN0cmluZy5o
dG1sCiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9lcyBub3Qgc3VwcG9ydCBmaWxlIG5h
bWVzLgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUtZWxlbWVudC5o
dG1sCisKICMgTWlzc2luZyBkcmFnICYgZHJvcCBmdW5jdGlvbmFsaXR5IGluIERSVAogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2Ryb3AtaW5wdXR0ZXh0LWFjcXVpcmVzLXN0eWxlLmh0bWwKIGZhc3QvY3Nz
L3VzZXItZHJhZy1ub25lLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggOTljOGI4
YWVhZTI1MmY3ZjJjODIyZGM3YmE3ZmIwOTkxNWUyMWEzZS4uMGVmZWNhNTAzMGUwNGI5NDMxYTJi
YzM3MDhiMzM3NjUwZTAzMzgyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTE1NSw2
ICsxNTUsOSBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2RyYWctZHJvcC1zYW1lLXVuaXF1ZS1vcmln
aW4uaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4MjkK
IGZhc3QvZXZlbnRzL2RyYWctaW1hZ2UtZmlsZW5hbWUuaHRtbAogCisjIFBhc3RlQm9hcmQ6OnBs
YWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmlsZSBuYW1lcy4KK2VkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCiAjIDxyZGFyOi8vcHJvYmxl
bS81NjQzNjc1PiB3aW5kb3cuc2Nyb2xsVG8gc2Nyb2xscyBhIHdpbmRvdyB3aXRoIG5vIHNjcm9s
bGJhcnMKIGZhc3QvZXZlbnRzL2F0dGVtcHQtc2Nyb2xsLXdpdGgtbm8tc2Nyb2xsYmFycy5odG1s
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggNmU5N2M5Mjk0NzM1NjE3MmU2ZmI4MjBi
ZjNjYThiMmQzZWMxMmNjYy4uZWNkMjFiZDA3NzNhNjMzZjI5NWQ5YWZjNWJiN2ZlNTU0MWQ5ZDg3
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTgyMSw2ICs4MjEsOSBAQCBwbGF0Zm9y
bS9tYWMvZmFzdC90ZXh0L3JvdW5kaW5nLWhhY2tzLWV4cGFuc2lvbi5odG1sCiAjIGh0dHA6Ly93
ZWJraXQub3JnL2IvNTg5OTAKIGVkaXRpbmcvdW5kby91bmRvLWlmcmFtZS1sb2NhdGlvbi1jaGFu
Z2UuaHRtbAogCisjIFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQgZmls
ZSBuYW1lcy4KK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1l
bnQuaHRtbAorCiAjIFRpbWVzIG91dAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjM4MDYKIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJy
ZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127274</attachid>
            <date>2012-02-15 16:44:03 -0800</date>
            <delta_ts>2012-02-15 22:15:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78655-20120216094401.patch</filename>
            <type>text/plain</type>
            <size>10357</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI1YjJmNDczNzZkNTNm
NGNhZjMzZGY3YzA3ZDM5MGIwY2IxNzA0Mi4uMjhhM2IyMWMwMzZkZWZlMTNlMmI3MjBiZTQxODdm
YTQzMGJmYmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTE1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTWFjXSBQYXN0ZWJv
YXJkTWFjLm1tIGJ1aWxkIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNvZGUgdG8gbWFrZSBhIHBsYWluIHRl
eHQgZm9yIHBhc3RlZCBmaWxlIG5hbWVzLgorICAgICAgICBUaGUgY29kZSBzaG91bGQgcmV0dXJu
IGEgc3RyaW5nIG9mIGNvbmNhdGVuYXRlZCBmaWxlIG5hbWVzLgorCisgICAgICAgIFRlc3Q6IGVk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQuaHRtbAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpwbGFpblRleHQpOgorCiAyMDEyLTAyLTE0ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTWFjXSBQYXN0ZWJvYXJkTWFjLm1tIGJ1
aWxkIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IDZjMzIyMTRjYjM1MjZiY2JkMmVjNmQ1MDA2Yjc4YWEyYWUxMzI1OGYuLmRkZmYxMjYz
NmRhOWExMTg0ZTEwYjIwZjQ2MGI3NzA0ZGVmZDAzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01Niw2ICs1Niw3IEBACiAjaW1wb3J0IDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3
dGYvVW51c2VkUGFyYW0uaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bXBvcnQgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKICNpZiBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKQEAgLTMxOSw3ICszMjAsNyBAQCBTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5U
ZXh0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgcmV0dXJuIFsoTlNTdHJpbmcgKilwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoTlNTdHJpbmdQ
Ym9hcmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmlj
YWxNYXBwaW5nXTsKICAgICAKICAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJp
bmcgPSBuaWw7Ci0gICAgTlNTdHJpbmcgKnN0cmluZyA9IG5pbDsKKyAgICBOU1N0cmluZyAqc3Ry
aW5nOwogCiAgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKSkp
IHsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+YnVmZmVyRm9yVHlwZShOU1JURkRQYm9hcmRUeXBl
LCBtX3Bhc3RlYm9hcmROYW1lKTsKQEAgLTMzOCwxMSArMzM5LDExIEBAIFN0cmluZyBQYXN0ZWJv
YXJkOjpwbGFpblRleHQoRnJhbWUqIGZyYW1lKQogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJp
bmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gcGF0
aG5hbWVzOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPmdldFBhdGhuYW1lc0ZvclR5cGUocGF0aG5hbWVzLCBOU0ZpbGVuYW1lc1Bib2FyZFR5cGUs
IG1fcGFzdGVib2FyZE5hbWUpOworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF0aG5hbWVzLnNpemUoKTsgaSsrKQotICAgICAg
ICAgICAgc3RyaW5nID0gW3N0cmluZyBsZW5ndGhdID8gQCJcbiIgKyBwYXRobmFtZXNbaV0gOiBw
YXRobmFtZXNbaV07Ci0gICAgICAgIHN0cmluZyA9IFtzdHJpbmcgcHJlY29tcG9zZWRTdHJpbmdX
aXRoQ2Fub25pY2FsTWFwcGluZ107Ci0gICAgICAgIGlmIChzdHJpbmcgIT0gbmlsKQotICAgICAg
ICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGkgPyAiXG4i
ICsgcGF0aG5hbWVzW2ldIDogcGF0aG5hbWVzW2ldKTsKKyAgICAgICAgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpOworICAgICAgICByZXR1cm4gW3N0cmluZyBwcmVjb21wb3NlZFN0cmluZ1dp
dGhDYW5vbmljYWxNYXBwaW5nXTsKICAgICB9CiAgICAgCiAgICAgc3RyaW5nID0gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKE5TVVJMUGJv
YXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWUzOTZhY2JkOGQ1NmRlM2VlYWY0
MTc1OGZhYWZjY2MyNGI4ZmM2MC4uMmFhZGI5YzFjMjQzYTBiNGFkY2U4MGQ4ZWUxMDEzZjI3OTVk
NjY4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTE1ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTWFjXSBQYXN0ZWJvYXJkTWFjLm1tIGJ1
aWxkIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODY1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBhZGRlZCB0ZXN0IGRyb3BzIG11bHRpcGxlIGZpbGVzIG9udG8gYW4gZWRpdGFibGUgZWxl
bWVudCwKKyAgICAgICAgYW5kIGNoZWNrcyBpZiB0aGUgZmlsZW5hbWVzIGFyZSBpbnNlcnRlZCBp
bnRvIHRoZSBlZGl0YWJsZSBlbGVtZW50LgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJk
L2RyYWctZmlsZXMtdG8tZWRpdGFibGUtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVsZW1lbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6
CisKIDIwMTItMDItMTQgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gUmViYXNlbGluZSBKUEVHIGltYWdlIHJlc3VsdHMgYWZ0ZXIgcjEw
NzM4OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmls
ZXMtdG8tZWRpdGFibGUtZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MTVkMTVhN2M0NzBjMzZhNDM0NzNkZmE2MDZiZDU1YzEwNWU1YmY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMt
dG8tZWRpdGFibGUtZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSWYgd2Ug
ZHJhZyBmaWxlcyBvbnRvIGFuIGVkaXRhYmxlIGFyZWEsIHRoZW4gdGhlIGZpbGVuYW1lcyBzaG91
bGQgYmUgaW5zZXJ0ZWQgaW50byB0aGUgZWRpdGFibGUgYXJlYS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICI8ZGl2PkxheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9mb288L2Rpdj48ZGl2PkxheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9i
YXI8L2Rpdj48ZGl2PkxheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9iYXo8L2Rpdj4iCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFi
bGUtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmls
ZXMtdG8tZWRpdGFibGUtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNGIyMjk1N2IwZGIzYjdi
MWQzNWVmNDkxYzY4ODMwZDEyZTQ5YWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlk
PSJlZGl0YWJsZSIgY29udGVudEVkaXRhYmxlPXRydWUgc3R5bGU9IndpZHRoOjIwMHB4OyBoZWln
aHQ6MjAwcHgiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdJZiB3ZSBkcmFnIGZpbGVz
IG9udG8gYW4gZWRpdGFibGUgYXJlYSwgdGhlbiB0aGUgZmlsZW5hbWVzIHNob3VsZCBiZSBpbnNl
cnRlZCBpbnRvIHRoZSBlZGl0YWJsZSBhcmVhLicpOworCit2YXIgZWRpdGFibGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZWRpdGFibGUiKTsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgICBkcmFnRmlsZXNPbnRvRWRpdGFibGUoWydmb28nLCAnYmFyJywgJ2JheiddKTsKKyAgICB2
YXIgcmVzdWx0ID0gZWRpdGFibGUuaW5uZXJIVE1MLnJlcGxhY2UoL2ZpbGUuKj9MYXlvdXRUZXN0
cy9nLCAiTGF5b3V0VGVzdHMiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Jlc3VsdCcs
ICc8ZGl2PkxheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9mb288L2Rpdj48ZGl2PkxheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9iYXI8L2Rpdj48ZGl2PkxheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9iYXo8L2Rpdj4nKTsKKyAgICBlZGl0YWJsZS5pbm5lckhUTUwgPSAnJzsK
K30KKworZnVuY3Rpb24gbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkKK3sKKyAg
ICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGgg
LyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY2VudGVyWCwgY2VudGVy
WSk7Cit9CisKK2Z1bmN0aW9uIGRyYWdGaWxlc09udG9FZGl0YWJsZShmaWxlcykKK3sKKyAgICBl
dmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoZmlsZXMpOworICAgIG1vdmVNb3VzZVRvQ2Vu
dGVyT2ZFbGVtZW50KGVkaXRhYmxlKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCBjYWMxZTlhZmYyZDkxZDEyYzg1ZjA5MDczNDhkOTk5MjIz
MGNiNGNjLi5lNGFhMDk2MjZhYWQ5NmVkYTE0MWRhMGI4NmI2ODAzNzBlZDUwOTc4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CkBAIC04MzgsNiArODM4LDkgQEAgQlVHV0s2MTYxMSBMSU5VWCBXSU4gOiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvaW50ZXJjaGFuZ2UtbmV3bGluZS0yLmh0bWwgPSBURVhUCiBCVUdXSzYxNjI0IFdJTiA6
IGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDMuaHRtbCA9IFRFWFQKIEJVR1dLNjE2
MjQgV0lOIDogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNC5odG1sID0gVEVYVAog
CisvLyBQYXN0ZUJvYXJkOjpwbGFpblRleHQoKSBkb2VzIG5vdCBzdXBwb3J0IGZpbGUgbmFtZXMu
CitCVUdXSzc4NjU1IDogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMtdG8tZWRpdGFibGUt
ZWxlbWVudC5odG1sID0gRkFJTAorCiAvLyBOZXcgdGVzdCBpbiByOTMwNjgKIEJVR1dLNjYyNjgg
V0lOIExJTlVYIDogZWRpdGluZy9kZWxldGluZy9yZWdpb25hbC1pbmRpY2F0b3JzLmh0bWwgPSBU
RVhUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggNzU5MjdmNmZmZWJiY2U1NGJlMjQ3
NWRhZGRmMWNlOTBmYWE4ODQwYi4uODBlNjg0N2I5M2E5NWFkNzQ2OTZhNjM3NzBhODRmZTJjYzA1
OGI3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTEyNDgsNiArMTI0OCw5IEBAIGZh
c3QvZG9tL1dpbmRvdy9zbG93LXVubG9hZC1oYW5kbGVyLW9ubHktZnJhbWUtaXMtc3RvcHBlZC5o
dG1sCiAjIFRoZSBFRkwgcG9ydCBoYXMgbm8gZ2xvYmFsIGhpc3RvcnkgZGVsZWdhdGUKIGh0dHAv
dGVzdHMvZ2xvYmFsaGlzdG9yeQogCisjIFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90
IHN1cHBvcnQgZmlsZSBuYW1lcy4KK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVk
aXRhYmxlLWVsZW1lbnQuaHRtbAorCiAjIEZhaWxzIGJlY2F1c2UgTXV0YXRpb25PYnNlcnZlcnMg
YXJlIG5vdCBub3RpZmllZCBhdCBlbmQtb2YtdGFzawogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTAKIGZhc3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZl
cnkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA2NjA5N2JjZDRmYWYyNjUxMDc1
YTlmMDJhYjQxZWE2OGZlMWNmNmE1Li5lNDljZDI5M2JmY2E2Y2E5OTJjYTMzNDhiMTgyNTg4MGUw
NTE0OTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMjk5LDYgKzI5OSw5IEBAIGVk
aXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWctZHJvcC1zdHJpbmcuaHRt
bAogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKIGZhc3QvZXZl
bnRzL2RyYWctY3VzdG9tRGF0YS5odG1sCiAKKyMgUGFzdGVCb2FyZDo6cGxhaW5UZXh0KCkgZG9l
cyBub3Qgc3VwcG9ydCBmaWxlIG5hbWVzLgorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZmlsZXMt
dG8tZWRpdGFibGUtZWxlbWVudC5odG1sCisKICMgTmVlZHMgZ3JhbW1hciBjaGVja2luZy4KIGVk
aXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDkwMzk4NGJlNGRkODVmN2M0YjM0ZGU4MTUxMzZkZTMzNGJlYjI0NTcuLjI1NjgxYzc4ZmJkY2Yx
OGU4NjA4ZDUxZmM4ZTQwOWEyYjg2YjBhNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
NDEzLDYgKzQxMyw5IEBAIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0
bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWctZHJvcC1maWxl
Lmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWctZHJvcC1z
dHJpbmcuaHRtbAogCisjIFBhc3RlQm9hcmQ6OnBsYWluVGV4dCgpIGRvZXMgbm90IHN1cHBvcnQg
ZmlsZSBuYW1lcy4KK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWZpbGVzLXRvLWVkaXRhYmxlLWVs
ZW1lbnQuaHRtbAorCiAjIE1pc3NpbmcgZHJhZyAmIGRyb3AgZnVuY3Rpb25hbGl0eSBpbiBEUlQK
IGVkaXRpbmcvcGFzdGVib2FyZC9kcm9wLWlucHV0dGV4dC1hY3F1aXJlcy1zdHlsZS5odG1sCiBm
YXN0L2Nzcy91c2VyLWRyYWctbm9uZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4
IDk5YzhiOGFlYWUyNTJmN2YyYzgyMmRjN2JhN2ZiMDk5MTVlMjFhM2UuLjBlZmVjYTUwMzBlMDRi
OTQzMWEyYmMzNzA4YjMzNzY1MGUwMzM4MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBA
IC0xNTUsNiArMTU1LDkgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9kcmFnLWRyb3Atc2FtZS11bmlx
dWUtb3JpZ2luLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYxODI5CiBmYXN0L2V2ZW50cy9kcmFnLWltYWdlLWZpbGVuYW1lLmh0bWwKIAorIyBQYXN0ZUJv
YXJkOjpwbGFpblRleHQoKSBkb2VzIG5vdCBzdXBwb3J0IGZpbGUgbmFtZXMuCitlZGl0aW5nL3Bh
c3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKKwogIyA8cmRhcjov
L3Byb2JsZW0vNTY0MzY3NT4gd2luZG93LnNjcm9sbFRvIHNjcm9sbHMgYSB3aW5kb3cgd2l0aCBu
byBzY3JvbGxiYXJzCiBmYXN0L2V2ZW50cy9hdHRlbXB0LXNjcm9sbC13aXRoLW5vLXNjcm9sbGJh
cnMuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4IDZlOTdjOTI5NDczNTYxNzJl
NmZiODIwYmYzY2E4YjJkM2VjMTJjY2MuLmVjZDIxYmQwNzczYTYzM2YyOTVkOWFmYzViYjdmZTU1
NDFkOWQ4NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBAIC04MjEsNiArODIxLDkgQEAg
cGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9yb3VuZGluZy1oYWNrcy1leHBhbnNpb24uaHRtbAogIyBo
dHRwOi8vd2Via2l0Lm9yZy9iLzU4OTkwCiBlZGl0aW5nL3VuZG8vdW5kby1pZnJhbWUtbG9jYXRp
b24tY2hhbmdlLmh0bWwKIAorIyBQYXN0ZUJvYXJkOjpwbGFpblRleHQoKSBkb2VzIG5vdCBzdXBw
b3J0IGZpbGUgbmFtZXMuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJs
ZS1lbGVtZW50Lmh0bWwKKwogIyBUaW1lcyBvdXQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYzODA2CiBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNo
ZWQtc3VicmVzb3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>