<?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>87154</bug_id>
          
          <creation_ts>2012-05-22 11:54:18 -0700</creation_ts>
          <short_desc>Make the files attribute of HTMLInputElement writable</short_desc>
          <delta_ts>2013-10-03 15:30:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>ian</cc>
    
    <cc>mounir</cc>
    
    <cc>ojan</cc>
    
    <cc>timothy</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>630620</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 11:54:18 -0700</bug_when>
    <thetext>Make the files attribute of HTMLInputElement writable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630623</commentid>
    <comment_count>1</comment_count>
      <attachid>143343</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 11:57:06 -0700</bug_when>
    <thetext>Created attachment 143343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630625</commentid>
    <comment_count>2</comment_count>
      <attachid>143343</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 11:57:20 -0700</bug_when>
    <thetext>Comment on attachment 143343
Patch

still needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630812</commentid>
    <comment_count>3</comment_count>
      <attachid>143374</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 15:18:06 -0700</bug_when>
    <thetext>Created attachment 143374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630830</commentid>
    <comment_count>4</comment_count>
      <attachid>143374</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-22 15:36:25 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

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

&gt; Source/WebCore/html/FileInputType.cpp:224
&gt; +void FileInputType::setFiles(PassRefPtr&lt;FileList&gt; files)

Did you just move this function, or did you change something about it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630834</commentid>
    <comment_count>5</comment_count>
      <attachid>143374</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 15:39:09 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

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

&gt;&gt; Source/WebCore/html/FileInputType.cpp:224
&gt;&gt; +void FileInputType::setFiles(PassRefPtr&lt;FileList&gt; files)
&gt; 
&gt; Did you just move this function, or did you change something about it?

I just moved it. See

&quot;&quot;&quot;
(WebCore::FileInputType::setFiles):
    Pure code move.
&quot;&quot;&quot;

in the ChangeLog. Is it better to leave comments on the diff too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630836</commentid>
    <comment_count>6</comment_count>
      <attachid>143374</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-22 15:40:04 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

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

&gt;&gt; Source/WebCore/html/FileInputType.cpp:224
&gt;&gt; +void FileInputType::setFiles(PassRefPtr&lt;FileList&gt; files)
&gt; 
&gt; Did you just move this function, or did you change something about it?

Let me make a stronger statement. There is no need to move this function. Please don’t move it.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1226
&gt; +    if (files)
&gt; +        m_inputType-&gt;setFiles(files);

Why a null check here but not in FileInputType&apos;s setFiles function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630838</commentid>
    <comment_count>7</comment_count>
      <attachid>143374</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-22 15:40:19 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

Attachment 143374 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12761174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630839</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-22 15:43:07 -0700</bug_when>
    <thetext>&gt; in the ChangeLog. Is it better to leave comments on the diff too?

Nope, the ChangeLog is the right place.  I just failed to read it.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630842</commentid>
    <comment_count>9</comment_count>
      <attachid>143382</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 15:44:15 -0700</bug_when>
    <thetext>Created attachment 143382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630843</commentid>
    <comment_count>10</comment_count>
      <attachid>143374</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 15:45:29 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/html/FileInputType.cpp:224
&gt;&gt;&gt;&gt; +void FileInputType::setFiles(PassRefPtr&lt;FileList&gt; files)
&gt;&gt;&gt; 
&gt;&gt;&gt; Did you just move this function, or did you change something about it?
&gt;&gt; 
&gt;&gt; I just moved it. See
&gt;&gt; 
&gt;&gt; &quot;&quot;&quot;
&gt;&gt; (WebCore::FileInputType::setFiles):
&gt;&gt;     Pure code move.
&gt;&gt; &quot;&quot;&quot;
&gt;&gt; 
&gt;&gt; in the ChangeLog. Is it better to leave comments on the diff too?
&gt; 
&gt; Let me make a stronger statement. There is no need to move this function. Please don’t move it.

Undone.

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1226
&gt;&gt; +        m_inputType-&gt;setFiles(files);
&gt; 
&gt; Why a null check here but not in FileInputType&apos;s setFiles function?

The if here protects the call to FileInputType&apos;s setFiles() function, so if that&apos;s called the pointer has to be NULL. If you prefer, I can check in both places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630846</commentid>
    <comment_count>11</comment_count>
      <attachid>143383</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 15:46:47 -0700</bug_when>
    <thetext>Created attachment 143383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630866</commentid>
    <comment_count>12</comment_count>
      <attachid>143374</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-22 15:59:05 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1226
&gt;&gt;&gt; +        m_inputType-&gt;setFiles(files);
&gt;&gt; 
&gt;&gt; Why a null check here but not in FileInputType&apos;s setFiles function?
&gt; 
&gt; The if here protects the call to FileInputType&apos;s setFiles() function, so if that&apos;s called the pointer has to be NULL. If you prefer, I can check in both places.

I think Darin&apos;s point was to put it in FileInputType&apos;s setFiles (and not here) because that&apos;s where the pointer is actually used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630872</commentid>
    <comment_count>13</comment_count>
      <attachid>143374</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 16:05:26 -0700</bug_when>
    <thetext>Comment on attachment 143374
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1226
&gt;&gt;&gt;&gt; +        m_inputType-&gt;setFiles(files);
&gt;&gt;&gt; 
&gt;&gt;&gt; Why a null check here but not in FileInputType&apos;s setFiles function?
&gt;&gt; 
&gt;&gt; The if here protects the call to FileInputType&apos;s setFiles() function, so if that&apos;s called the pointer has to be NULL. If you prefer, I can check in both places.
&gt; 
&gt; I think Darin&apos;s point was to put it in FileInputType&apos;s setFiles (and not here) because that&apos;s where the pointer is actually used.

Done.

(My reasoning for putting it here: Otherwise, all the InputType subclasses that want to implement setFiles() need to NULL-check (admittedly, at the moment that&apos;s only FileInputType). If the if is here, it&apos;s only in one place. Also, before this patch, FileInputType::setFiles() could never be called with a NULL pointer and I felt maintaining that would be good.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630873</commentid>
    <comment_count>14</comment_count>
      <attachid>143388</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 16:06:12 -0700</bug_when>
    <thetext>Created attachment 143388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630882</commentid>
    <comment_count>15</comment_count>
      <attachid>143388</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-22 16:12:31 -0700</bug_when>
    <thetext>Comment on attachment 143388
Patch

Patch looks good. If you don&apos;t mind, lets allow the whatwg thread a couple days to give time for other browser vendors to voice concerns.

http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-May/036140.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630889</commentid>
    <comment_count>16</comment_count>
      <attachid>143388</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-05-22 16:19:23 -0700</bug_when>
    <thetext>Comment on attachment 143388
Patch

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

&gt; Source/WebCore/html/HTMLInputElement.idl:35
&gt;          readonly attribute HTMLFormElement form;
&gt; -        readonly attribute FileList files;
&gt; +        attribute FileList files;
&gt;          attribute [Reflect, URL] DOMString formAction;

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630893</commentid>
    <comment_count>17</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 16:21:57 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 143388 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143388&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLInputElement.idl:35
&gt; &gt;          readonly attribute HTMLFormElement form;
&gt; &gt; -        readonly attribute FileList files;
&gt; &gt; +        attribute FileList files;
&gt; &gt;          attribute [Reflect, URL] DOMString formAction;
&gt; 
&gt; Why?

From the linked whatwg thread (http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-May/036140.html):

&quot;&quot;&quot;Making the attribute writable would allow setting the files property
of an input element to dataTransfer.files from a drop handler. For
example, I would like to use this to create a larger drop-target for a
file input. Here&apos;s one request for this functionality:
http://stackoverflow.com/questions/8006715/drag-drop-files-into-standard-html-file-input&quot;&quot;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630896</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-05-22 16:24:18 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 143388 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143388&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLInputElement.idl:35
&gt; &gt; &gt;          readonly attribute HTMLFormElement form;
&gt; &gt; &gt; -        readonly attribute FileList files;
&gt; &gt; &gt; +        attribute FileList files;
&gt; &gt; &gt;          attribute [Reflect, URL] DOMString formAction;
&gt; &gt; 
&gt; &gt; Why?
&gt; 
&gt; From the linked whatwg thread (http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-May/036140.html):
&gt; 
&gt; &quot;&quot;&quot;Making the attribute writable would allow setting the files property
&gt; of an input element to dataTransfer.files from a drop handler. For
&gt; example, I would like to use this to create a larger drop-target for a
&gt; file input. Here&apos;s one request for this functionality:
&gt; http://stackoverflow.com/questions/8006715/drag-drop-files-into-standard-html-file-input&quot;&quot;&quot;

I think we don&apos;t have consensus of the spec change yet.  It&apos;s too early to implement it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630899</commentid>
    <comment_count>19</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-22 16:26:06 -0700</bug_when>
    <thetext>Yes, see Ojan&apos;s &quot;If you don&apos;t mind, lets allow the whatwg thread a couple days to give time for other browser vendors to voice concerns.&quot; in comment 15.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630916</commentid>
    <comment_count>20</comment_count>
      <attachid>143388</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-22 16:41:58 -0700</bug_when>
    <thetext>Comment on attachment 143388
Patch

Attachment 143388 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12761192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630932</commentid>
    <comment_count>21</comment_count>
      <attachid>143388</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-22 16:58:26 -0700</bug_when>
    <thetext>Comment on attachment 143388
Patch

Attachment 143388 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12768019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631809</commentid>
    <comment_count>22</comment_count>
      <attachid>143388</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-23 11:00:49 -0700</bug_when>
    <thetext>Comment on attachment 143388
Patch

Lets hold off on landing this till the whatwg discussion settles on what the best thing to expose is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636570</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-29 16:58:23 -0700</bug_when>
    <thetext>Sounds like we should move forward here.  The response on WhatWG has been basically &quot;yes, let&apos;s do this and more.&quot;  We can start with this and then do more later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636572</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-29 16:58:45 -0700</bug_when>
    <thetext>Nico, would you be willing to update the patch so that the mac and win bubbles will be green?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636745</commentid>
    <comment_count>25</comment_count>
      <attachid>144680</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-29 19:24:10 -0700</bug_when>
    <thetext>Created attachment 144680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636747</commentid>
    <comment_count>26</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-29 19:24:54 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Nico, would you be willing to update the patch so that the mac and win bubbles will be green?

I&apos;m giving it a try. If they do become green, someone familiar with the ObjC bindings generator should look at the change to PublicDOMInterfaces.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636748</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 19:25:36 -0700</bug_when>
    <thetext>Please wait for approval from timothy@apple.com (or another member of the Apple Safari Team) before submitting because this patch contains changes to the Apple Mac WebKit.framework public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636755</commentid>
    <comment_count>28</comment_count>
      <attachid>144680</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-05-29 19:32:08 -0700</bug_when>
    <thetext>Comment on attachment 144680
Patch

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

&gt; Source/WebCore/bindings/objc/PublicDOMInterfaces.h:629
&gt; +#if WEBKIT_VERSION_MIN_REQUIRED &gt;= WEBKIT_VERSION_LATEST
&gt; +@property(retain) DOMFileList *files;
&gt; +#else
&gt;  @property(readonly, retain) DOMFileList *files AVAILABLE_IN_WEBKIT_VERSION_4_0;
&gt; +#endif

#ifdefs in this file are not correct. This file is parsed by a build script and not used by a compiler. In this case it is file to just drop the readonly and keep the AVAILABLE_IN_WEBKIT_VERSION_4_0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636756</commentid>
    <comment_count>29</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-05-29 19:33:05 -0700</bug_when>
    <thetext>&quot;it is file&quot; =&gt; &quot;it is fine&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636759</commentid>
    <comment_count>30</comment_count>
      <attachid>144681</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-29 19:36:27 -0700</bug_when>
    <thetext>Created attachment 144681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636762</commentid>
    <comment_count>31</comment_count>
      <attachid>144681</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-29 19:50:00 -0700</bug_when>
    <thetext>Comment on attachment 144681
Patch

Attachment 144681 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12840783</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636764</commentid>
    <comment_count>32</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-29 19:52:06 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 144681 [details])
&gt; Attachment 144681 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/12840783

The error is:

make: *** [JSAudioPannerNode.h] Segmentation fault: 11

I&apos;m not sure if that&apos;s related – is there a way to rerun an ews bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636768</commentid>
    <comment_count>33</comment_count>
      <attachid>144681</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-29 20:07:09 -0700</bug_when>
    <thetext>Comment on attachment 144681
Patch

Attachment 144681 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12852643</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636770</commentid>
    <comment_count>34</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-29 20:10:36 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 144681 [details])
&gt; Attachment 144681 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/12852643

win ews error:

34&gt;c:\cygwin\home\buildbot\WebKit\Tools\TestWebKitAPI\config.h(47) : fatal error C1083: Cannot open include file: &apos;WebKit2/WebKit2.h&apos;: No such file or directory

Looks unrelated as well :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637309</commentid>
    <comment_count>35</comment_count>
      <attachid>144840</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-30 09:35:42 -0700</bug_when>
    <thetext>Created attachment 144840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637348</commentid>
    <comment_count>36</comment_count>
      <attachid>144840</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-30 10:05:28 -0700</bug_when>
    <thetext>Comment on attachment 144840
Patch

Attachment 144840 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12840976</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637370</commentid>
    <comment_count>37</comment_count>
      <attachid>144856</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-30 10:15:27 -0700</bug_when>
    <thetext>Created attachment 144856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637436</commentid>
    <comment_count>38</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-30 11:06:48 -0700</bug_when>
    <thetext>Now with green mac and win bubbles. (The mac bubble went green when I reuploaded the patch without any changes; for the win bubble I needed to add a `#include &quot;FileList.h&quot;` to FileType.cpp -- else cl.exe would complain about PassRefPtr&lt;FileList&gt;.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637579</commentid>
    <comment_count>39</comment_count>
      <attachid>144856</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-30 13:03:42 -0700</bug_when>
    <thetext>Comment on attachment 144856
Patch

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

&gt; Source/WebCore/bindings/objc/PublicDOMInterfaces.h:625
&gt; -@property(readonly, retain) DOMFileList *files AVAILABLE_IN_WEBKIT_VERSION_4_0;
&gt; +@property(retain) DOMFileList *files AVAILABLE_IN_WEBKIT_VERSION_4_0;

I believe this is backwards compatible, so this should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637581</commentid>
    <comment_count>40</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-05-30 13:04:50 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 144856 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144856&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/objc/PublicDOMInterfaces.h:625
&gt; &gt; -@property(readonly, retain) DOMFileList *files AVAILABLE_IN_WEBKIT_VERSION_4_0;
&gt; &gt; +@property(retain) DOMFileList *files AVAILABLE_IN_WEBKIT_VERSION_4_0;
&gt; 
&gt; I believe this is backwards compatible, so this should be fine.

It&apos;s also what TImothy told me to do in comment 28 :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637582</commentid>
    <comment_count>41</comment_count>
      <attachid>144856</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-30 13:04:59 -0700</bug_when>
    <thetext>Comment on attachment 144856
Patch

Looks like Timothy Hatcher has already approved the PublicDOMInterfaces.h part of this change.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637585</commentid>
    <comment_count>42</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-30 13:07:49 -0700</bug_when>
    <thetext>&gt; It&apos;s also what TImothy told me to do in comment 28 :-)

Yeah, I&apos;m just a little slow.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637794</commentid>
    <comment_count>43</comment_count>
      <attachid>144856</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 16:11:01 -0700</bug_when>
    <thetext>Comment on attachment 144856
Patch

Clearing flags on attachment: 144856

Committed r118993: &lt;http://trac.webkit.org/changeset/118993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637795</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 16:11:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935945</commentid>
    <comment_count>45</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2013-10-03 13:06:05 -0700</bug_when>
    <thetext>Is this documented anywhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936006</commentid>
    <comment_count>46</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-10-03 15:30:58 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; Is this documented anywhere?

http://www.chromium.org/developers/web-platform-status/forms
| files property is writable. [M21]

Safari in iOS7 should have this behavior. But I don&apos;t know if it&apos;s documented.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143343</attachid>
            <date>2012-05-22 11:57:06 -0700</date>
            <delta_ts>2012-05-22 15:18:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120522115705.patch</filename>
            <type>text/plain</type>
            <size>8679</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZjY3NjM2NWNiMTYy
N2Q4ZmZiNDdlOTJlNTM4NjYwNmI0ZjA1My4uM2MxZTRkYTYyNDBjN2UwZGE5YzFjMGQ1NGMzMTIw
MDUwMjRjNDgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTA1LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgIFB1cmUgY29kZSBt
b3ZlLgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5oOgorICAgICAgICAoRmlsZUlucHV0
VHlwZSk6CisgICAgICAgIExldCBzZXRGaWxlcygpIG92ZXJ3cml0ZSB0aGUgYmFzZSAgY2xhc3Mn
cyBtZXRob2QuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKToKKyAgICAgICAgQWRkIHNldEZp
bGVzKCkgaW1wbGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUuCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0RmlsZXMpOgorICAgICAg
ICBzZXRGaWxlcygpIGRvZXMgbm90aGluZyBieSBkZWZhdWx0LgorICAgICAgICAqIGh0bWwvSW5w
dXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5cGUpOgorICAgICAgICBBZGQgYSB2aXJ0dWFsIHNl
dEZpbGVzKCkgbWV0aG9kLgorCisyMDEyLTA1LTIyICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBHaXZlIEZpbGVJbnB1dFR5cGUgYSBzZXRGaWxlcygpIG1ldGhv
ZCwgbGV0IERyYWctbi1Ecm9wIGNhbGwgaXQuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NzEzOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcAppbmRleCAyYmFjMDMwMTU2NDc3ZjQ0Yjg1NDdjZDZhOTBiZWMwZDZjMjI0Mzg3Li5kNDA2
NjA5NTI2MjVjNjkwZjI2NWI2MmU4MDBiMmU4M2NiOTY3YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5jcHAKQEAgLTIyMSw2ICsyMjEsNDQgQEAgRmlsZUxpc3QqIEZpbGVJbnB1
dFR5cGU6OmZpbGVzKCkKICAgICByZXR1cm4gbV9maWxlTGlzdC5nZXQoKTsKIH0KIAordm9pZCBG
aWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKK3sKKyAg
ICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQgPSBlbGVtZW50KCk7CisKKyAgICBib29s
IHBhdGhzQ2hhbmdlZCA9IGZhbHNlOworICAgIGlmIChmaWxlcy0+bGVuZ3RoKCkgIT0gbV9maWxl
TGlzdC0+bGVuZ3RoKCkpCisgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CisgICAgZWxzZSB7
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkg
eworICAgICAgICAgICAgaWYgKGZpbGVzLT5pdGVtKGkpLT5wYXRoKCkgIT0gbV9maWxlTGlzdC0+
aXRlbShpKS0+cGF0aCgpKSB7CisgICAgICAgICAgICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KworICAgIG1fZmlsZUxpc3QgPSBmaWxlczsKKworICAgIGlucHV0LT5zZXRGb3JtQ29udHJvbFZh
bHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOworICAgIGlucHV0LT5ub3RpZnlGb3JtU3RhdGVDaGFu
Z2VkKCk7CisgICAgaW5wdXQtPnNldE5lZWRzVmFsaWRpdHlDaGVjaygpOworCisgICAgVmVjdG9y
PFN0cmluZz4gcGF0aHM7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZmlsZUxpc3Qt
Pmxlbmd0aCgpOyArK2kpCisgICAgICAgIHBhdGhzLmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVtKGkp
LT5wYXRoKCkpOworICAgIHJlcXVlc3RJY29uKHBhdGhzKTsKKworICAgIGlmIChpbnB1dC0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgaW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKKworICAgIGlm
IChwYXRoc0NoYW5nZWQpIHsKKyAgICAgICAgLy8gVGhpcyBjYWxsIG1heSBjYXVzZSBkZXN0cnVj
dGlvbiBvZiB0aGlzIGluc3RhbmNlLgorICAgICAgICAvLyBpbnB1dCBpbnN0YW5jZSBpcyBzYWZl
IHNpbmNlIGl0IGlzIHJlZi1jb3VudGVkLgorICAgICAgICBpbnB1dC0+SFRNTEVsZW1lbnQ6OmRp
c3BhdGNoQ2hhbmdlRXZlbnQoKTsKKyAgICB9CisgICAgaW5wdXQtPnNldENoYW5nZWRTaW5jZUxh
c3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNlKTsKK30KKwogYm9vbCBGaWxlSW5wdXRUeXBl
OjpjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIC8vIEZvciBzZWN1cml0
eSByZWFzb25zLCB3ZSBkb24ndCBhbGxvdyBzZXR0aW5nIHRoZSBmaWxlbmFtZSwgYnV0IHdlIGRv
IGFsbG93IGNsZWFyaW5nIGl0LgpAQCAtMzE4LDQ0ICszNTYsNiBAQCB2b2lkIEZpbGVJbnB1dFR5
cGU6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKICAgICAgICAgY2hy
b21lLT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCBuZXdGaWxlSWNvbkxvYWRlcigpKTsKIH0KIAot
dm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykK
LXsKLSAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQgPSBlbGVtZW50KCk7Ci0KLSAg
ICBib29sIHBhdGhzQ2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChmaWxlcy0+bGVuZ3RoKCkgIT0g
bV9maWxlTGlzdC0+bGVuZ3RoKCkpCi0gICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7Ci0gICAg
ZWxzZSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7
ICsraSkgewotICAgICAgICAgICAgaWYgKGZpbGVzLT5pdGVtKGkpLT5wYXRoKCkgIT0gbV9maWxl
TGlzdC0+aXRlbShpKS0+cGF0aCgpKSB7Ci0gICAgICAgICAgICAgICAgcGF0aHNDaGFuZ2VkID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIH0KLQotICAgIG1fZmlsZUxpc3QgPSBmaWxlczsKLQotICAgIGlucHV0LT5zZXRGb3JtQ29u
dHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwotICAgIGlucHV0LT5ub3RpZnlGb3JtU3Rh
dGVDaGFuZ2VkKCk7Ci0gICAgaW5wdXQtPnNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwotCi0gICAg
VmVjdG9yPFN0cmluZz4gcGF0aHM7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZmls
ZUxpc3QtPmxlbmd0aCgpOyArK2kpCi0gICAgICAgIHBhdGhzLmFwcGVuZChtX2ZpbGVMaXN0LT5p
dGVtKGkpLT5wYXRoKCkpOwotICAgIHJlcXVlc3RJY29uKHBhdGhzKTsKLQotICAgIGlmIChpbnB1
dC0+cmVuZGVyZXIoKSkKLSAgICAgICAgaW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKLQot
ICAgIGlmIChwYXRoc0NoYW5nZWQpIHsKLSAgICAgICAgLy8gVGhpcyBjYWxsIG1heSBjYXVzZSBk
ZXN0cnVjdGlvbiBvZiB0aGlzIGluc3RhbmNlLgotICAgICAgICAvLyBpbnB1dCBpbnN0YW5jZSBp
cyBzYWZlIHNpbmNlIGl0IGlzIHJlZi1jb3VudGVkLgotICAgICAgICBpbnB1dC0+SFRNTEVsZW1l
bnQ6OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKTsKLSAgICB9Ci0gICAgaW5wdXQtPnNldENoYW5nZWRT
aW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNlKTsKLX0KLQogdm9pZCBGaWxlSW5w
dXRUeXBlOjpmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIGZp
bGVzKQogewogICAgIHNldEZpbGVzKGNyZWF0ZUZpbGVMaXN0KGZpbGVzKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IDMxZDA5YjRkMWY0M2FhZWNhZDJhY2UyNjhhNDk1YTQ1
ODg2OTZjZWYuLjFmOWZiY2UzOWU4NWRkMzQ4MjExMmIxODVkMTQyMWMxMGNlNjIzODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGNhbkNoYW5nZUZyb21Bbm90aGVyVHlwZSgpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIE9WRVJSSURFOyAvLyBDaGVja2VkIGZpcnN0
LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgogICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CkBAIC03NCw3ICs3NSw2IEBAIHByaXZhdGU6
CiAgICAgLy8gRmlsZUljb25Mb2FkZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+KSBPVkVSUklERTsKIAotICAg
IHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pOwogICAgIFBhc3NSZWZQdHI8Rmls
ZUxpc3Q+IGNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYg
ZmlsZXMpIGNvbnN0OwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgIHZvaWQgcmVj
ZWl2ZURyb3BGb3JEaXJlY3RvcnlVcGxvYWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDQ3OGRlNDM4ZGZjOGI0ZjVk
NmQ3ODJiMGU3NDIzZmY5YmMzMzg4YjYuLjZlZDNiNDBlZTE1NzAzYTRiNjVjNmI5ZDQwZDc2YTJj
YTljZmE2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAt
MTIyMCw2ICsxMjIwLDEyIEBAIEZpbGVMaXN0KiBIVE1MSW5wdXRFbGVtZW50OjpmaWxlcygpCiAg
ICAgcmV0dXJuIG1faW5wdXRUeXBlLT5maWxlcygpOwogfQogCit2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQoreworICAgIGlmIChmaWxl
cykKKyAgICAgICAgbV9pbnB1dFR5cGUtPnNldEZpbGVzKGZpbGVzKTsKK30KKwogdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpyZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMpCiB7CiAgICAgbV9pbnB1dFR5cGUtPnJlY2VpdmVEcm9wcGVkRmlsZXMoZmlsZW5h
bWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNjlkMGYxN2Q2
MTRmYTU4MWZkNmNkYmZjNThkZmZiMTU1OWM0YzBiZC4uYjU0ZjYxYTcxOTkyZDY3NzBjNzIzZTBl
YzIzMjE0YTVkZmNhODViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
QEAgLTIwOSw2ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wg
PSB0cnVlKTsKIAogICAgIEZpbGVMaXN0KiBmaWxlcygpOworICAgIHZvaWQgc2V0RmlsZXMoUGFz
c1JlZlB0cjxGaWxlTGlzdD4pOwogICAgIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpOwogICAgIEljb24qIGljb24oKSBjb25zdDsKICAgICAvLyBUaGVzZSBm
dW5jdGlvbnMgYXJlIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgaW5wdXQgYWN0aXZlIGR1cmluZyBh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBjY2E0MDM2NWY2
YzBkNTEzNTQ3OTE2MmZmZjViZjRhZjI5NDQ2ZTEwLi5lMzI2Y2U3YmUyNjFlMDgwMTMzNzkzYmEy
YTY1MDg2NTkxYjA1YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKQEAgLTMxLDcgKzMxLDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBkaXJOYW1lOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJv
b2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1l
bnQgZm9ybTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOworICAg
ICAgICBhdHRyaWJ1dGUgRmlsZUxpc3QgZmlsZXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dCwgVVJMXSBET01TdHJpbmcgZm9ybUFjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZm9ybUVuY3R5cGU7CiAgICAgICAgIGF0dHJpYnV0
ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNTZhN2FhMTM3MWQ2MGJlMTVlNDY2MjA3NTgxMTM3YWUy
NzY5NGNlZS4uODBiMDgzN2EwOTVjMTUwM2QzNDU5YTlmMjVkZTM3MzI2Zjk0MjdlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTc3LDYgKzU3NywxMCBAQCBGaWxlTGlzdCogSW5w
dXRUeXBlOjpmaWxlcygpCiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgSW5wdXRUeXBlOjpzZXRG
aWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PikKK3sKK30KKwogYm9vbCBJbnB1dFR5cGU6OmdldFR5
cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmgKaW5kZXggNTQxNjdmM2U0NTljOWFmM2Y0MWQzOWQ3YjFmOGIyMjQwYWM2MDMw
Mi4uMzY1OGIzOTMxNzdjYTcxZDJkNDIwMTYxMWEwNjZkYmU0NDgwYTEzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCkBAIC0yMjgsNiArMjI4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsTW92ZVRvTmV3T3duZXJEb2N1bWVudCgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRS
ZXNwZWN0QWxpZ25BdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgdmly
dHVhbCB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAg
ICB2aXJ0dWFsIEljb24qIGljb24oKSBjb25zdDsKICAgICAvLyBTaG91bGQgcmV0dXJuIHRydWUg
aWYgdGhlIGNvcnJlc3BvbmRpbmcgcmVuZGVyZXIgZm9yIGEgdHlwZSBjYW4gZGlzcGxheSBhIHN1
Z2dlc3RlZCB2YWx1ZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143374</attachid>
            <date>2012-05-22 15:18:06 -0700</date>
            <delta_ts>2012-05-22 16:05:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120522151805.patch</filename>
            <type>text/plain</type>
            <size>11842</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZjY3NjM2NWNiMTYy
N2Q4ZmZiNDdlOTJlNTM4NjYwNmI0ZjA1My4uMDllODRkYjZhZjk5MWY2YmUwMGZhYzc4MzJhZDk2
NWNhYTQ5OWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTA1LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICAgICBQdXJlIGNv
ZGUgbW92ZS4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJ
bnB1dFR5cGUpOgorICAgICAgICAgICAgTGV0IHNldEZpbGVzKCkgb3ZlcndyaXRlIHRoZSBiYXNl
ICBjbGFzcydzIG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAg
ICAgQWRkIHNldEZpbGVzKCkgaW1wbGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUu
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0Rmls
ZXMpOgorICAgICAgICAgICAgc2V0RmlsZXMoKSBkb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC4KKyAg
ICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoSW5wdXRUeXBlKToKKyAgICAgICAg
ICAgIEFkZCBhIHZpcnR1YWwgc2V0RmlsZXMoKSBtZXRob2QuCisKKzIwMTItMDUtMjIgIE5pY28g
V2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEdpdmUgRmlsZUlucHV0VHlw
ZSBhIHNldEZpbGVzKCkgbWV0aG9kLCBsZXQgRHJhZy1uLURyb3AgY2FsbCBpdC4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MTM5CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDJiYWMwMzAxNTY0NzdmNDRiODU0N2NkNmE5
MGJlYzBkNmMyMjQzODcuLmQ0MDY2MDk1MjYyNWM2OTBmMjY1YjYyZTgwMGIyZTgzY2I5NjdhNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjIxLDYgKzIyMSw0NCBA
QCBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiBtX2ZpbGVMaXN0
LmdldCgpOwogfQogCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8Rmls
ZUxpc3Q+IGZpbGVzKQoreworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IGVs
ZW1lbnQoKTsKKworICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKGZpbGVz
LT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAgICAgICAgcGF0aHNDaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICBlbHNlIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZp
bGVzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoZmlsZXMtPml0ZW0oaSktPnBh
dGgoKSAhPSBtX2ZpbGVMaXN0LT5pdGVtKGkpLT5wYXRoKCkpIHsKKyAgICAgICAgICAgICAgICBw
YXRoc0NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfQorCisgICAgbV9maWxlTGlzdCA9IGZpbGVzOworCisgICAgaW5w
dXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CisgICAgaW5wdXQt
Pm5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoKTsKKyAgICBpbnB1dC0+c2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBwYXRoczsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9maWxlTGlzdC0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgcGF0aHMuYXBwZW5k
KG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAgcmVxdWVzdEljb24ocGF0aHMpOwor
CisgICAgaWYgKGlucHV0LT5yZW5kZXJlcigpKQorICAgICAgICBpbnB1dC0+cmVuZGVyZXIoKS0+
cmVwYWludCgpOworCisgICAgaWYgKHBhdGhzQ2hhbmdlZCkgeworICAgICAgICAvLyBUaGlzIGNh
bGwgbWF5IGNhdXNlIGRlc3RydWN0aW9uIG9mIHRoaXMgaW5zdGFuY2UuCisgICAgICAgIC8vIGlu
cHV0IGluc3RhbmNlIGlzIHNhZmUgc2luY2UgaXQgaXMgcmVmLWNvdW50ZWQuCisgICAgICAgIGlu
cHV0LT5IVE1MRWxlbWVudDo6ZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOworICAgIH0KKyAgICBpbnB1
dC0+c2V0Q2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoZmFsc2UpOworfQor
CiBib29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7
CiAgICAgLy8gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIHdlIGRvbid0IGFsbG93IHNldHRpbmcgdGhl
IGZpbGVuYW1lLCBidXQgd2UgZG8gYWxsb3cgY2xlYXJpbmcgaXQuCkBAIC0zMTgsNDQgKzM1Niw2
IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhdGhzKQogICAgICAgICBjaHJvbWUtPmxvYWRJY29uRm9yRmlsZXMocGF0aHMsIG5ld0ZpbGVJ
Y29uTG9hZGVyKCkpOwogfQogCi12b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzKQotewotICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1
dCA9IGVsZW1lbnQoKTsKLQotICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFsc2U7Ci0gICAgaWYg
KGZpbGVzLT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKLSAgICAgICAgcGF0aHND
aGFuZ2VkID0gdHJ1ZTsKLSAgICBlbHNlIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZpbGVzLT5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoZmlsZXMtPml0ZW0o
aSktPnBhdGgoKSAhPSBtX2ZpbGVMaXN0LT5pdGVtKGkpLT5wYXRoKCkpIHsKLSAgICAgICAgICAg
ICAgICBwYXRoc0NoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9maWxlTGlzdCA9IGZpbGVzOwotCi0g
ICAgaW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7Ci0gICAg
aW5wdXQtPm5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoKTsKLSAgICBpbnB1dC0+c2V0TmVlZHNWYWxp
ZGl0eUNoZWNrKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBwYXRoczsKLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9maWxlTGlzdC0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgcGF0aHMu
YXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7Ci0gICAgcmVxdWVzdEljb24ocGF0
aHMpOwotCi0gICAgaWYgKGlucHV0LT5yZW5kZXJlcigpKQotICAgICAgICBpbnB1dC0+cmVuZGVy
ZXIoKS0+cmVwYWludCgpOwotCi0gICAgaWYgKHBhdGhzQ2hhbmdlZCkgewotICAgICAgICAvLyBU
aGlzIGNhbGwgbWF5IGNhdXNlIGRlc3RydWN0aW9uIG9mIHRoaXMgaW5zdGFuY2UuCi0gICAgICAg
IC8vIGlucHV0IGluc3RhbmNlIGlzIHNhZmUgc2luY2UgaXQgaXMgcmVmLWNvdW50ZWQuCi0gICAg
ICAgIGlucHV0LT5IVE1MRWxlbWVudDo6ZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwotICAgIH0KLSAg
ICBpbnB1dC0+c2V0Q2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoZmFsc2Up
OwotfQotCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxl
Q2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiB7CiAgICAgc2V0RmlsZXMoY3JlYXRlRmlsZUxpc3Qo
ZmlsZXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggMzFkMDliNGQxZjQz
YWFlY2FkMmFjZTI2OGE0OTVhNDU4ODY5NmNlZi4uMWY5ZmJjZTM5ZTg1ZGQzNDgyMTEyYjE4NWQx
NDIxYzEwY2U2MjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTU4LDYg
KzU4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2hhbmdlRnJvbUFub3RoZXJUeXBl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJ
REU7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1
ZSBhdHRyaWJ1dGUuCiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKQEAgLTc0
LDcgKzc1LDYgQEAgcHJpdmF0ZToKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1l
bnRhdGlvbi4KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNv
bj4pIE9WRVJSSURFOwogCi0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7
CiAgICAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykgY29uc3Q7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9V
UExPQUQpCiAgICAgdm9pZCByZWNlaXZlRHJvcEZvckRpcmVjdG9yeVVwbG9hZChjb25zdCBWZWN0
b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggNDc4ZGU0MzhkZmM4YjRmNWQ2ZDc4MmIwZTc0MjNmZjliYzMzODhiNi4uNmVkM2I0MGVlMTU3
MDNhNGI2NWM2YjlkNDBkNzZhMmNhOWNmYTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0xMjIwLDYgKzEyMjAsMTIgQEAgRmlsZUxpc3QqIEhUTUxJbnB1
dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAK
K3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmls
ZXMpCit7CisgICAgaWYgKGZpbGVzKQorICAgICAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoZmls
ZXMpOworfQorCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKIHsKICAgICBtX2lucHV0VHlwZS0+cmVjZWl2
ZURyb3BwZWRGaWxlcyhmaWxlbmFtZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAppbmRleCA2OWQwZjE3ZDYxNGZhNTgxZmQ2Y2RiZmM1OGRmZmIxNTU5YzRjMGJkLi5iNTRm
NjFhNzE5OTJkNjc3MGM3MjNlMGVjMjMyMTRhNWRmY2E4NWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjA5LDYgKzIwOSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEF1dG9maWxsZWQoYm9vbCA9IHRydWUpOwogCiAgICAgRmlsZUxpc3QqIGZpbGVzKCk7Cisg
ICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgdm9pZCByZWNlaXZl
RHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgSWNvbiogaWNvbigpIGNv
bnN0OwogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZCBmb3IgcmVuZGVyaW5nIHRoZSBp
bnB1dCBhY3RpdmUgZHVyaW5nIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCmluZGV4IGNjYTQwMzY1ZjZjMGQ1MTM1NDc5MTYyZmZmNWJmNGFmMjk0NDZlMTAuLmUzMjZj
ZTdiZTI2MWUwODAxMzM3OTNiYTJhNjUwODY1OTFiMDVjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMzEsNyArMzEsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGRpck5hbWU7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RmlsZUxpc3QgZmlsZXM7CisgICAgICAgIGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxlczsKICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBmb3JtQWN0aW9uOwogICAgICAg
ICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtRW5jdHlw
ZTsKICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcg
Zm9ybU1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA1NmE3YWExMzcxZDYw
YmUxNWU0NjYyMDc1ODExMzdhZTI3Njk0Y2VlLi44MGIwODM3YTA5NWMxNTAzZDM0NTlhOWYyNWRl
MzczMjZmOTQyN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01NzcsNiArNTc3
LDEwIEBAIEZpbGVMaXN0KiBJbnB1dFR5cGU6OmZpbGVzKCkKICAgICByZXR1cm4gMDsKIH0KIAor
dm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KQoreworfQorCiBi
b29sIElucHV0VHlwZTo6Z2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikKIHsKICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1NDE2N2YzZTQ1OWM5YWYzZjQx
ZDM5ZDdiMWY4YjIyNDBhYzYwMzAyLi4zNjU4YjM5MzE3N2NhNzFkMmQ0MjAxNjExYTA2NmRiZTQ0
ODBhMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwg
RmlsZUxpc3QqIGZpbGVzKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8
RmlsZUxpc3Q+KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpOwogICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIC8v
IFNob3VsZCByZXR1cm4gdHJ1ZSBpZiB0aGUgY29ycmVzcG9uZGluZyByZW5kZXJlciBmb3IgYSB0
eXBlIGNhbiBkaXNwbGF5IGEgc3VnZ2VzdGVkIHZhbHVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY1N2Q2MDg2YTkxODI2MDNkNDAzMzZiODFkMzQxZTM3ZDVmNmYy
ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQt
ZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IGRyb3Bz
IGZpbGVzIGhlcmUKKworUEFTUzogMSBmaWxlIGFmdGVyIGRyYWcKK1BBU1M6IHdyaXRpbmcgbm9u
ZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGhhZCBubyBlZmZlY3QKK1BBU1M6IHdyaXRpbmcgZW1wdHkg
c3RyaW5nIHRvIHZhbHVlIGNsZWFyZWQgZmlsZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzYwYzdiOGZkNzY3NzVhMmY5ODRhZThiNmY3Mzc2OWQ0Y2Y0M2I1NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVzLmh0
bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRp
diBpZD0iZHJvcHRhcmdldCI+VGVzdCBkcm9wcyBmaWxlcyBoZXJlPC9kaXY+Cis8Zm9ybT4KKzxp
bnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlcyIgaWQ9ImZpbGVzIj4KKzwvZm9ybT4KKzxwcmUg
aWQ9J291dHB1dCc+PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gb25JbnB1
dEZpbGVDaGFuZ2UoKQoreworICAgIHZhciBmaWxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJmaWxlcyIpLmZpbGVzOworICAgIGlmIChmaWxlcy5sZW5ndGggIT0gMSkKKyAgICAgICAgbG9n
KCJGQUlMOiBFeHBlY3RlZCAxIGZpbGUgYWZ0ZXIgZHJhZy4iKQorICAgIGVsc2UKKyAgICAgICAg
bG9nKCJQQVNTOiAxIGZpbGUgYWZ0ZXIgZHJhZyIpOworCisgICAgZG9TdHJpbmdUZXN0KCk7CisK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZURyYWdPdmVyKGUp
IHsKKyAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30K
KworZnVuY3Rpb24gaGFuZGxlRHJvcChlKSB7CisgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAg
ICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVz
IikuZmlsZXMgPSBlLmRhdGFUcmFuc2Zlci5maWxlczsKK30KKwordmFyIGRyb3B0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcHRhcmdldCcpOworZHJvcHRhcmdldC5hZGRFdmVu
dExpc3RlbmVyKCdkcmFnb3ZlcicsIGhhbmRsZURyYWdPdmVyLCBmYWxzZSk7Citkcm9wdGFyZ2V0
LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBoYW5kbGVEcm9wLCBmYWxzZSk7CisKK2Z1bmN0aW9u
IGRvVGVzdChmaWxlTGlzdCkKK3sKKyAgICAvLyBUaGlzIGRyb3BzIGZpbGVzIG9uIGEgZGl2LCB3
aGljaCBjb3BpZXMgdGhlbSB0byB0aGUgaW5wdXQgZWxlbWVudCwgd2hvc2UKKyAgICAvLyBjYWxs
YmFjayBjYWxscyBub3RpZnlEb25lKCkuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZp
bGVzIikub25jaGFuZ2UgPSBvbklucHV0RmlsZUNoYW5nZTsKKyAgICB2YXIgZmkgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKTsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRo
RmlsZXMoWycuLi9yZXNvdXJjZXMvdGVzdC50eHQnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oZHJvcHRhcmdldC5vZmZzZXRMZWZ0ICsgMTAsIGRyb3B0YXJnZXQub2Zmc2V0VG9wICsg
ZHJvcHRhcmdldC5vZmZzZXRIZWlnaHQgLyAyKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Cit9CisKK2Z1bmN0aW9uIGRvU3RyaW5nVGVzdCgpCit7CisgICAgdmFyIGZpbGVzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIik7CisgICAgZmlsZXMuZmlsZXMgPSAiZm9vIjsgIC8v
IFNob3VsZG4ndCBjcmFzaC4KKworICAgIGZpbGVzLnZhbHVlID0gImZvbyI7ICAvLyBTaG91bGQg
ZG8gbm90aGluZy4KKyAgICBpZiAoZmlsZXMuZmlsZXMubGVuZ3RoID4gMCkKKyAgICAgICAgbG9n
KCJQQVNTOiB3cml0aW5nIG5vbmVtcHR5IHN0cmluZyB0byB2YWx1ZSBoYWQgbm8gZWZmZWN0Iik7
CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUw6IHdyaXRpbmcgbm9uZW1wdHkgc3RyaW5nIHRv
IHZhbHVlIGNsZWFyZWQgZWxlbWVudHMiKTsKKworICAgIGZpbGVzLnZhbHVlID0gIiI7CisgICAg
aWYgKGZpbGVzLmZpbGVzLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgbG9nKCJQQVNTOiB3cml0aW5n
IGVtcHR5IHN0cmluZyB0byB2YWx1ZSBjbGVhcmVkIGZpbGVzIik7CisgICAgZWxzZQorICAgICAg
ICBsb2coIkZBSUw6IHdyaXRpbmcgZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGRpZCBub3QgY2xlYXIg
ZmlsZXMiKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBk
b1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143382</attachid>
            <date>2012-05-22 15:44:15 -0700</date>
            <delta_ts>2012-05-22 15:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120522154414.patch</filename>
            <type>text/plain</type>
            <size>8803</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZjY3NjM2NWNiMTYy
N2Q4ZmZiNDdlOTJlNTM4NjYwNmI0ZjA1My4uMDllODRkYjZhZjk5MWY2YmUwMGZhYzc4MzJhZDk2
NWNhYTQ5OWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTA1LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICAgICBQdXJlIGNv
ZGUgbW92ZS4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJ
bnB1dFR5cGUpOgorICAgICAgICAgICAgTGV0IHNldEZpbGVzKCkgb3ZlcndyaXRlIHRoZSBiYXNl
ICBjbGFzcydzIG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAg
ICAgQWRkIHNldEZpbGVzKCkgaW1wbGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUu
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0Rmls
ZXMpOgorICAgICAgICAgICAgc2V0RmlsZXMoKSBkb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC4KKyAg
ICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoSW5wdXRUeXBlKToKKyAgICAgICAg
ICAgIEFkZCBhIHZpcnR1YWwgc2V0RmlsZXMoKSBtZXRob2QuCisKKzIwMTItMDUtMjIgIE5pY28g
V2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEdpdmUgRmlsZUlucHV0VHlw
ZSBhIHNldEZpbGVzKCkgbWV0aG9kLCBsZXQgRHJhZy1uLURyb3AgY2FsbCBpdC4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MTM5CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggMzFkMDliNGQxZjQzYWFlY2FkMmFjZTI2OGE0OTVh
NDU4ODY5NmNlZi4uMWY5ZmJjZTM5ZTg1ZGQzNDgyMTEyYjE4NWQxNDIxYzEwY2U2MjM4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuQ2hhbmdlRnJvbUFub3RoZXJUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJREU7IC8vIENoZWNrZWQgZmly
c3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCiAgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKQEAgLTc0LDcgKzc1LDYgQEAgcHJpdmF0
ZToKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIE9WRVJSSURFOwogCi0g
ICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgUGFzc1JlZlB0cjxG
aWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
JiBmaWxlcykgY29uc3Q7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgdm9pZCBy
ZWNlaXZlRHJvcEZvckRpcmVjdG9yeVVwbG9hZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNDc4ZGU0MzhkZmM4YjRm
NWQ2ZDc4MmIwZTc0MjNmZjliYzMzODhiNi4uNmVkM2I0MGVlMTU3MDNhNGI2NWM2YjlkNDBkNzZh
MmNhOWNmYTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBA
IC0xMjIwLDYgKzEyMjAsMTIgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit7CisgICAgaWYgKGZp
bGVzKQorICAgICAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOworfQorCiB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGZpbGVuYW1lcykKIHsKICAgICBtX2lucHV0VHlwZS0+cmVjZWl2ZURyb3BwZWRGaWxlcyhmaWxl
bmFtZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA2OWQwZjE3
ZDYxNGZhNTgxZmQ2Y2RiZmM1OGRmZmIxNTU5YzRjMGJkLi5iNTRmNjFhNzE5OTJkNjc3MGM3MjNl
MGVjMjMyMTRhNWRmY2E4NWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtMjA5LDYgKzIwOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1dG9maWxsZWQoYm9v
bCA9IHRydWUpOwogCiAgICAgRmlsZUxpc3QqIGZpbGVzKCk7CisgICAgdm9pZCBzZXRGaWxlcyhQ
YXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIC8vIFRoZXNl
IGZ1bmN0aW9ucyBhcmUgdXNlZCBmb3IgcmVuZGVyaW5nIHRoZSBpbnB1dCBhY3RpdmUgZHVyaW5n
IGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGNjYTQwMzY1
ZjZjMGQ1MTM1NDc5MTYyZmZmNWJmNGFmMjk0NDZlMTAuLmUzMjZjZTdiZTI2MWUwODAxMzM3OTNi
YTJhNjUwODY1OTFiMDVjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbApAQCAtMzEsNyArMzEsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIGRpck5hbWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
Ym9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxl
bWVudCBmb3JtOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmlsZUxpc3QgZmlsZXM7Cisg
ICAgICAgIGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxlczsKICAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0LCBVUkxdIERPTVN0cmluZyBmb3JtQWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtRW5jdHlwZTsKICAgICAgICAgYXR0cmli
dXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZm9ybU1ldGhvZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA1NmE3YWExMzcxZDYwYmUxNWU0NjYyMDc1ODExMzdh
ZTI3Njk0Y2VlLi44MGIwODM3YTA5NWMxNTAzZDM0NTlhOWYyNWRlMzczMjZmOTQyN2U5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01NzcsNiArNTc3LDEwIEBAIEZpbGVMaXN0KiBJ
bnB1dFR5cGU6OmZpbGVzKCkKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBJbnB1dFR5cGU6OnNl
dEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KQoreworfQorCiBib29sIElucHV0VHlwZTo6Z2V0
VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaAppbmRleCA1NDE2N2YzZTQ1OWM5YWYzZjQxZDM5ZDdiMWY4YjIyNDBhYzYw
MzAyLi4zNjU4YjM5MzE3N2NhNzFkMmQ0MjAxNjExYTA2NmRiZTQ0ODBhMTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCk7
CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwog
ICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIC8vIFNob3VsZCByZXR1cm4gdHJ1
ZSBpZiB0aGUgY29ycmVzcG9uZGluZyByZW5kZXJlciBmb3IgYSB0eXBlIGNhbiBkaXNwbGF5IGEg
c3VnZ2VzdGVkIHZhbHVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxl
L2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY1N2Q2MDg2YTkxODI2MDNkNDAzMzZiODFkMzQxZTM3ZDVmNmYyZWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IGRyb3BzIGZpbGVzIGhlcmUKKworUEFT
UzogMSBmaWxlIGFmdGVyIGRyYWcKK1BBU1M6IHdyaXRpbmcgbm9uZW1wdHkgc3RyaW5nIHRvIHZh
bHVlIGhhZCBubyBlZmZlY3QKK1BBU1M6IHdyaXRpbmcgZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGNs
ZWFyZWQgZmlsZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lu
cHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9p
bnB1dC1maWxlLXdyaXRlLWZpbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwYzdiOGZkNzY3NzVhMmY5
ODRhZThiNmY3Mzc2OWQ0Y2Y0M2I1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVzLmh0bWwKQEAgLTAsMCArMSw4NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0iZHJvcHRhcmdldCI+
VGVzdCBkcm9wcyBmaWxlcyBoZXJlPC9kaXY+Cis8Zm9ybT4KKzxpbnB1dCB0eXBlPSJmaWxlIiBu
YW1lPSJmaWxlcyIgaWQ9ImZpbGVzIj4KKzwvZm9ybT4KKzxwcmUgaWQ9J291dHB1dCc+PC9wcmU+
CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnb3V0cHV0JykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gb25JbnB1dEZpbGVDaGFuZ2UoKQorewor
ICAgIHZhciBmaWxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpLmZpbGVzOwor
ICAgIGlmIChmaWxlcy5sZW5ndGggIT0gMSkKKyAgICAgICAgbG9nKCJGQUlMOiBFeHBlY3RlZCAx
IGZpbGUgYWZ0ZXIgZHJhZy4iKQorICAgIGVsc2UKKyAgICAgICAgbG9nKCJQQVNTOiAxIGZpbGUg
YWZ0ZXIgZHJhZyIpOworCisgICAgZG9TdHJpbmdUZXN0KCk7CisKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZURyYWdPdmVyKGUpIHsKKyAgICBlLnN0b3BQcm9w
YWdhdGlvbigpOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30KKworZnVuY3Rpb24gaGFuZGxl
RHJvcChlKSB7CisgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICBlLnByZXZlbnREZWZhdWx0
KCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikuZmlsZXMgPSBlLmRhdGFU
cmFuc2Zlci5maWxlczsKK30KKwordmFyIGRyb3B0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZHJvcHRhcmdldCcpOworZHJvcHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3Zl
cicsIGhhbmRsZURyYWdPdmVyLCBmYWxzZSk7Citkcm9wdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIo
J2Ryb3AnLCBoYW5kbGVEcm9wLCBmYWxzZSk7CisKK2Z1bmN0aW9uIGRvVGVzdChmaWxlTGlzdCkK
K3sKKyAgICAvLyBUaGlzIGRyb3BzIGZpbGVzIG9uIGEgZGl2LCB3aGljaCBjb3BpZXMgdGhlbSB0
byB0aGUgaW5wdXQgZWxlbWVudCwgd2hvc2UKKyAgICAvLyBjYWxsYmFjayBjYWxscyBub3RpZnlE
b25lKCkuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikub25jaGFuZ2UgPSBv
bklucHV0RmlsZUNoYW5nZTsKKyAgICB2YXIgZmkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZmlsZXMiKTsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWycuLi9yZXNvdXJj
ZXMvdGVzdC50eHQnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJvcHRhcmdldC5v
ZmZzZXRMZWZ0ICsgMTAsIGRyb3B0YXJnZXQub2Zmc2V0VG9wICsgZHJvcHRhcmdldC5vZmZzZXRI
ZWlnaHQgLyAyKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGRv
U3RyaW5nVGVzdCgpCit7CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImZpbGVzIik7CisgICAgZmlsZXMuZmlsZXMgPSAiZm9vIjsgIC8vIFNob3VsZG4ndCBjcmFzaC4K
KworICAgIGZpbGVzLnZhbHVlID0gImZvbyI7ICAvLyBTaG91bGQgZG8gbm90aGluZy4KKyAgICBp
ZiAoZmlsZXMuZmlsZXMubGVuZ3RoID4gMCkKKyAgICAgICAgbG9nKCJQQVNTOiB3cml0aW5nIG5v
bmVtcHR5IHN0cmluZyB0byB2YWx1ZSBoYWQgbm8gZWZmZWN0Iik7CisgICAgZWxzZQorICAgICAg
ICBsb2coIkZBSUw6IHdyaXRpbmcgbm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGNsZWFyZWQgZWxl
bWVudHMiKTsKKworICAgIGZpbGVzLnZhbHVlID0gIiI7CisgICAgaWYgKGZpbGVzLmZpbGVzLmxl
bmd0aCA9PT0gMCkKKyAgICAgICAgbG9nKCJQQVNTOiB3cml0aW5nIGVtcHR5IHN0cmluZyB0byB2
YWx1ZSBjbGVhcmVkIGZpbGVzIik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUw6IHdyaXRp
bmcgZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGRpZCBub3QgY2xlYXIgZmlsZXMiKTsKK30KKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBkb1Rlc3QoKTsKK30KKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143383</attachid>
            <date>2012-05-22 15:46:47 -0700</date>
            <delta_ts>2012-05-22 16:06:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120522154647.patch</filename>
            <type>text/plain</type>
            <size>8694</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZjY3NjM2NWNiMTYy
N2Q4ZmZiNDdlOTJlNTM4NjYwNmI0ZjA1My4uMzQyNzQ1MTc1ZWZkZGRiOTMzMWI4MGJjODcyNzdm
NDZhZWQ2MjRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEyLTA1LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5oOgorICAgICAgICAo
RmlsZUlucHV0VHlwZSk6CisgICAgICAgICAgICBMZXQgc2V0RmlsZXMoKSBvdmVyd3JpdGUgdGhl
IGJhc2UgIGNsYXNzJ3MgbWV0aG9kLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyk6CisgICAg
ICAgICAgICBBZGQgc2V0RmlsZXMoKSBpbXBsZW1lbnRhdGlvbiwgZGVsZWdhdGUgdG8gaW5wdXQg
dHlwZS4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxJ
bnB1dEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpz
ZXRGaWxlcyk6CisgICAgICAgICAgICBzZXRGaWxlcygpIGRvZXMgbm90aGluZyBieSBkZWZhdWx0
LgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5cGUpOgorICAg
ICAgICAgICAgQWRkIGEgdmlydHVhbCBzZXRGaWxlcygpIG1ldGhvZC4KKworMjAxMi0wNS0yMiAg
TmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgR2l2ZSBGaWxlSW5w
dXRUeXBlIGEgc2V0RmlsZXMoKSBtZXRob2QsIGxldCBEcmFnLW4tRHJvcCBjYWxsIGl0LgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxMzkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAppbmRleCAzMWQwOWI0ZDFmNDNhYWVjYWQyYWNlMjY4
YTQ5NWE0NTg4Njk2Y2VmLi4xZjlmYmNlMzllODVkZDM0ODIxMTJiMTg1ZDE0MjFjMTBjZTYyMzgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNTgsNiArNTgsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBjYW5DaGFuZ2VGcm9tQW5vdGhlclR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVSUklERTsgLy8gQ2hlY2tl
ZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwpAQCAtNzQsNyArNzUsNiBAQCBw
cml2YXRlOgogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgT1ZFUlJJREU7
CiAKLSAgICB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKICAgICBQYXNzUmVm
UHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxl
SW5mbz4mIGZpbGVzKSBjb25zdDsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKICAgICB2
b2lkIHJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA0NzhkZTQzOGRm
YzhiNGY1ZDZkNzgyYjBlNzQyM2ZmOWJjMzM4OGI2Li42ZWQzYjQwZWUxNTcwM2E0YjY1YzZiOWQ0
MGQ3NmEyY2E5Y2ZhNjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTEyMjAsNiArMTIyMCwxMiBAQCBGaWxlTGlzdCogSFRNTElucHV0RWxlbWVudDo6Zmls
ZXMoKQogICAgIHJldHVybiBtX2lucHV0VHlwZS0+ZmlsZXMoKTsKIH0KIAordm9pZCBIVE1MSW5w
dXRFbGVtZW50OjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKK3sKKyAgICBp
ZiAoZmlsZXMpCisgICAgICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhmaWxlcyk7Cit9CisKIHZv
aWQgSFRNTElucHV0RWxlbWVudDo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzKQogewogICAgIG1faW5wdXRUeXBlLT5yZWNlaXZlRHJvcHBlZEZpbGVz
KGZpbGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDY5
ZDBmMTdkNjE0ZmE1ODFmZDZjZGJmYzU4ZGZmYjE1NTljNGMwYmQuLmI1NGY2MWE3MTk5MmQ2Nzcw
YzcyM2UwZWMyMzIxNGE1ZGZjYTg1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCkBAIC0yMDksNiArMjA5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b2ZpbGxl
ZChib29sID0gdHJ1ZSk7CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsKKyAgICB2b2lkIHNldEZp
bGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKICAgICB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8g
VGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIGlucHV0IGFjdGl2ZSBk
dXJpbmcgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggY2Nh
NDAzNjVmNmMwZDUxMzU0NzkxNjJmZmY1YmY0YWYyOTQ0NmUxMC4uZTMyNmNlN2JlMjYxZTA4MDEz
Mzc5M2JhMmE2NTA4NjU5MWIwNWM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaWRsCkBAIC0zMSw3ICszMSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZGlyTmFtZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBib29sZWFuIGRpc2FibGVkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZv
cm1FbGVtZW50IGZvcm07Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxl
czsKKyAgICAgICAgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOwogICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtTWV0aG9kOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDU2YTdhYTEzNzFkNjBiZTE1ZTQ2NjIwNzU4
MTEzN2FlMjc2OTRjZWUuLjgwYjA4MzdhMDk1YzE1MDNkMzQ1OWE5ZjI1ZGUzNzMyNmY5NDI3ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTU3Nyw2ICs1NzcsMTAgQEAgRmlsZUxp
c3QqIElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiAwOwogfQogCit2b2lkIElucHV0VHlw
ZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pCit7Cit9CisKIGJvb2wgSW5wdXRUeXBl
OjpnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKQogewogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDU0MTY3ZjNlNDU5YzlhZjNmNDFkMzlkN2IxZjhiMjI0
MGFjNjAzMDIuLjM2NThiMzkzMTc3Y2E3MWQyZDQyMDE2MTFhMDY2ZGJlNDQ4MGExMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjI4LDYgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbE1vdmVUb05ld093bmVyRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmls
ZXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pOwog
ICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik7CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8gU2hvdWxkIHJldHVy
biB0cnVlIGlmIHRoZSBjb3JyZXNwb25kaW5nIHJlbmRlcmVyIGZvciBhIHR5cGUgY2FuIGRpc3Bs
YXkgYSBzdWdnZXN0ZWQgdmFsdWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjU3ZDYwODZhOTE4MjYwM2Q0MDMzNmI4MWQzNDFlMzdkNWY2ZjJlZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZp
bGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgZHJvcHMgZmlsZXMgaGVyZQor
CitQQVNTOiAxIGZpbGUgYWZ0ZXIgZHJhZworUEFTUzogd3JpdGluZyBub25lbXB0eSBzdHJpbmcg
dG8gdmFsdWUgaGFkIG5vIGVmZmVjdAorUEFTUzogd3JpdGluZyBlbXB0eSBzdHJpbmcgdG8gdmFs
dWUgY2xlYXJlZCBmaWxlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zp
bGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
aWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjBjN2I4ZmQ3Njc3
NWEyZjk4NGFlOGI2ZjczNzY5ZDRjZjQzYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApAQCAtMCwwICsx
LDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJkcm9wdGFy
Z2V0Ij5UZXN0IGRyb3BzIGZpbGVzIGhlcmU8L2Rpdj4KKzxmb3JtPgorPGlucHV0IHR5cGU9ImZp
bGUiIG5hbWU9ImZpbGVzIiBpZD0iZmlsZXMiPgorPC9mb3JtPgorPHByZSBpZD0nb3V0cHV0Jz48
L3ByZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlvbiBvbklucHV0RmlsZUNoYW5nZSgp
Cit7CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikuZmls
ZXM7CisgICAgaWYgKGZpbGVzLmxlbmd0aCAhPSAxKQorICAgICAgICBsb2coIkZBSUw6IEV4cGVj
dGVkIDEgZmlsZSBhZnRlciBkcmFnLiIpCisgICAgZWxzZQorICAgICAgICBsb2coIlBBU1M6IDEg
ZmlsZSBhZnRlciBkcmFnIik7CisKKyAgICBkb1N0cmluZ1Rlc3QoKTsKKworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlRHJhZ092ZXIoZSkgeworICAgIGUuc3Rv
cFByb3BhZ2F0aW9uKCk7CisgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQorCitmdW5jdGlvbiBo
YW5kbGVEcm9wKGUpIHsKKyAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIGUucHJldmVudERl
ZmF1bHQoKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5maWxlcyA9IGUu
ZGF0YVRyYW5zZmVyLmZpbGVzOworfQorCit2YXIgZHJvcHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkcm9wdGFyZ2V0Jyk7Citkcm9wdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2Ry
YWdvdmVyJywgaGFuZGxlRHJhZ092ZXIsIGZhbHNlKTsKK2Ryb3B0YXJnZXQuYWRkRXZlbnRMaXN0
ZW5lcignZHJvcCcsIGhhbmRsZURyb3AsIGZhbHNlKTsKKworZnVuY3Rpb24gZG9UZXN0KGZpbGVM
aXN0KQoreworICAgIC8vIFRoaXMgZHJvcHMgZmlsZXMgb24gYSBkaXYsIHdoaWNoIGNvcGllcyB0
aGVtIHRvIHRoZSBpbnB1dCBlbGVtZW50LCB3aG9zZQorICAgIC8vIGNhbGxiYWNrIGNhbGxzIG5v
dGlmeURvbmUoKS4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5vbmNoYW5n
ZSA9IG9uSW5wdXRGaWxlQ2hhbmdlOworICAgIHZhciBmaSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJmaWxlcyIpOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJy4uL3Jl
c291cmNlcy90ZXN0LnR4dCddKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wdGFy
Z2V0Lm9mZnNldExlZnQgKyAxMCwgZHJvcHRhcmdldC5vZmZzZXRUb3AgKyBkcm9wdGFyZ2V0Lm9m
ZnNldEhlaWdodCAvIDIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rp
b24gZG9TdHJpbmdUZXN0KCkKK3sKKyAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmlsZXMiKTsKKyAgICBmaWxlcy5maWxlcyA9ICJmb28iOyAgLy8gU2hvdWxkbid0IGNy
YXNoLgorCisgICAgZmlsZXMudmFsdWUgPSAiZm9vIjsgIC8vIFNob3VsZCBkbyBub3RoaW5nLgor
ICAgIGlmIChmaWxlcy5maWxlcy5sZW5ndGggPiAwKQorICAgICAgICBsb2coIlBBU1M6IHdyaXRp
bmcgbm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGhhZCBubyBlZmZlY3QiKTsKKyAgICBlbHNlCisg
ICAgICAgIGxvZygiRkFJTDogd3JpdGluZyBub25lbXB0eSBzdHJpbmcgdG8gdmFsdWUgY2xlYXJl
ZCBlbGVtZW50cyIpOworCisgICAgZmlsZXMudmFsdWUgPSAiIjsKKyAgICBpZiAoZmlsZXMuZmls
ZXMubGVuZ3RoID09PSAwKQorICAgICAgICBsb2coIlBBU1M6IHdyaXRpbmcgZW1wdHkgc3RyaW5n
IHRvIHZhbHVlIGNsZWFyZWQgZmlsZXMiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTDog
d3JpdGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUgZGlkIG5vdCBjbGVhciBmaWxlcyIpOworfQor
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGRvVGVzdCgpOworfQor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143388</attachid>
            <date>2012-05-22 16:06:12 -0700</date>
            <delta_ts>2012-05-29 19:24:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120522160611.patch</filename>
            <type>text/plain</type>
            <size>9318</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmZjY3NjM2NWNiMTYy
N2Q4ZmZiNDdlOTJlNTM4NjYwNmI0ZjA1My4uMmVlZmFiYzk5ZjQxNWJjMDhkZmM3OGI3N2Y3ZWRh
Y2M0Y2I1ZDU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTA1LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAorICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChGaWxlSW5wdXRUeXBlKToKKyAgICAgICAgICAgIEFkZCBhIE5VTEwgY2hlY2sgdG8gc2V0Rmls
ZXMoKS4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1
dFR5cGUpOgorICAgICAgICAgICAgTGV0IHNldEZpbGVzKCkgb3ZlcndyaXRlIHRoZSBiYXNlICBj
bGFzcydzIG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAgICAg
QWRkIHNldEZpbGVzKCkgaW1wbGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUuCisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVt
ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0RmlsZXMp
OgorICAgICAgICAgICAgc2V0RmlsZXMoKSBkb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC4KKyAgICAg
ICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoSW5wdXRUeXBlKToKKyAgICAgICAgICAg
IEFkZCBhIHZpcnR1YWwgc2V0RmlsZXMoKSBtZXRob2QuCisKKzIwMTItMDUtMjIgIE5pY28gV2Vi
ZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEdpdmUgRmlsZUlucHV0VHlwZSBh
IHNldEZpbGVzKCkgbWV0aG9kLCBsZXQgRHJhZy1uLURyb3AgY2FsbCBpdC4KICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MTM5CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDJiYWMwMzAxNTY0NzdmNDRiODU0N2NkNmE5MGJl
YzBkNmMyMjQzODcuLjcyYjY3NTY5MWQ5YjZmMmU1NGMzZmZjZDdkZTQ5ODM3MjRmN2E0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMzIwLDYgKzMyMCw5IEBAIHZv
aWQgRmlsZUlucHV0VHlwZTo6cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhz
KQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZp
bGVzKQogeworICAgIGlmICghZmlsZXMpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IGVsZW1lbnQoKTsKIAogICAgIGJvb2wgcGF0aHNDaGFu
Z2VkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IDMxZDA5YjRk
MWY0M2FhZWNhZDJhY2UyNjhhNDk1YTQ1ODg2OTZjZWYuLjFmOWZiY2UzOWU4NWRkMzQ4MjExMmIx
ODVkMTQyMWMxMGNlNjIzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC01
OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNhbkNoYW5nZUZyb21Bbm90aGVy
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIE9W
RVJSSURFOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUg
dmFsdWUgYXR0cmlidXRlLgogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CkBA
IC03NCw3ICs3NSw2IEBAIHByaXZhdGU6CiAgICAgLy8gRmlsZUljb25Mb2FkZXJDbGllbnQgaW1w
bGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRy
PEljb24+KSBPVkVSUklERTsKIAotICAgIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOwogICAgIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpIGNvbnN0OwogI2lmIEVOQUJMRShESVJFQ1RP
UllfVVBMT0FEKQogICAgIHZvaWQgcmVjZWl2ZURyb3BGb3JEaXJlY3RvcnlVcGxvYWQoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IDQ3OGRlNDM4ZGZjOGI0ZjVkNmQ3ODJiMGU3NDIzZmY5YmMzMzg4YjYuLjFjNDgyYWYz
ZDU3Nzk5MmVmMTA3MTUxZTU0NWRiYzc2NTdhN2NjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTIyMCw2ICsxMjIwLDExIEBAIEZpbGVMaXN0KiBIVE1M
SW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5maWxlcygpOwog
fQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+
IGZpbGVzKQoreworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhmaWxlcyk7Cit9CisKIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzKQogewogICAgIG1faW5wdXRUeXBlLT5yZWNlaXZlRHJvcHBlZEZpbGVzKGZp
bGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDY5ZDBm
MTdkNjE0ZmE1ODFmZDZjZGJmYzU4ZGZmYjE1NTljNGMwYmQuLmI1NGY2MWE3MTk5MmQ2NzcwYzcy
M2UwZWMyMzIxNGE1ZGZjYTg1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yMDksNiArMjA5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b2ZpbGxlZChi
b29sID0gdHJ1ZSk7CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsKKyAgICB2b2lkIHNldEZpbGVz
KFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKICAgICB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIGlucHV0IGFjdGl2ZSBkdXJp
bmcgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggY2NhNDAz
NjVmNmMwZDUxMzU0NzkxNjJmZmY1YmY0YWYyOTQ0NmUxMC4uZTMyNmNlN2JlMjYxZTA4MDEzMzc5
M2JhMmE2NTA4NjU5MWIwNWM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsCkBAIC0zMSw3ICszMSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgZGlyTmFtZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBib29sZWFuIGRpc2FibGVkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1F
bGVtZW50IGZvcm07Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxlczsK
KyAgICAgICAgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOwogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOwogICAgICAgICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtTWV0aG9kOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDU2YTdhYTEzNzFkNjBiZTE1ZTQ2NjIwNzU4MTEz
N2FlMjc2OTRjZWUuLjgwYjA4MzdhMDk1YzE1MDNkMzQ1OWE5ZjI1ZGUzNzMyNmY5NDI3ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTU3Nyw2ICs1NzcsMTAgQEAgRmlsZUxpc3Qq
IElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiAwOwogfQogCit2b2lkIElucHV0VHlwZTo6
c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pCit7Cit9CisKIGJvb2wgSW5wdXRUeXBlOjpn
ZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oCmluZGV4IDU0MTY3ZjNlNDU5YzlhZjNmNDFkMzlkN2IxZjhiMjI0MGFj
NjAzMDIuLjM2NThiMzkzMTc3Y2E3MWQyZDQyMDE2MTFhMDY2ZGJlNDQ4MGExMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaApAQCAtMjI4LDYgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbE1vdmVUb05ld093bmVyRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pOwogICAg
IHZpcnR1YWwgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7
CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8gU2hvdWxkIHJldHVybiB0
cnVlIGlmIHRoZSBjb3JyZXNwb25kaW5nIHJlbmRlcmVyIGZvciBhIHR5cGUgY2FuIGRpc3BsYXkg
YSBzdWdnZXN0ZWQgdmFsdWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zp
bGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjU3ZDYwODZhOTE4MjYwM2Q0MDMzNmI4MWQzNDFlMzdkNWY2ZjJlZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgZHJvcHMgZmlsZXMgaGVyZQorCitQ
QVNTOiAxIGZpbGUgYWZ0ZXIgZHJhZworUEFTUzogd3JpdGluZyBub25lbXB0eSBzdHJpbmcgdG8g
dmFsdWUgaGFkIG5vIGVmZmVjdAorUEFTUzogd3JpdGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUg
Y2xlYXJlZCBmaWxlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUv
aW5wdXQtZmlsZS13cml0ZS1maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxl
L2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjBjN2I4ZmQ3Njc3NWEy
Zjk4NGFlOGI2ZjczNzY5ZDRjZjQzYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApAQCAtMCwwICsxLDg1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJkcm9wdGFyZ2V0
Ij5UZXN0IGRyb3BzIGZpbGVzIGhlcmU8L2Rpdj4KKzxmb3JtPgorPGlucHV0IHR5cGU9ImZpbGUi
IG5hbWU9ImZpbGVzIiBpZD0iZmlsZXMiPgorPC9mb3JtPgorPHByZSBpZD0nb3V0cHV0Jz48L3By
ZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlvbiBvbklucHV0RmlsZUNoYW5nZSgpCit7
CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikuZmlsZXM7
CisgICAgaWYgKGZpbGVzLmxlbmd0aCAhPSAxKQorICAgICAgICBsb2coIkZBSUw6IEV4cGVjdGVk
IDEgZmlsZSBhZnRlciBkcmFnLiIpCisgICAgZWxzZQorICAgICAgICBsb2coIlBBU1M6IDEgZmls
ZSBhZnRlciBkcmFnIik7CisKKyAgICBkb1N0cmluZ1Rlc3QoKTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlRHJhZ092ZXIoZSkgeworICAgIGUuc3RvcFBy
b3BhZ2F0aW9uKCk7CisgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQorCitmdW5jdGlvbiBoYW5k
bGVEcm9wKGUpIHsKKyAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIGUucHJldmVudERlZmF1
bHQoKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5maWxlcyA9IGUuZGF0
YVRyYW5zZmVyLmZpbGVzOworfQorCit2YXIgZHJvcHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkcm9wdGFyZ2V0Jyk7Citkcm9wdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdv
dmVyJywgaGFuZGxlRHJhZ092ZXIsIGZhbHNlKTsKK2Ryb3B0YXJnZXQuYWRkRXZlbnRMaXN0ZW5l
cignZHJvcCcsIGhhbmRsZURyb3AsIGZhbHNlKTsKKworZnVuY3Rpb24gZG9UZXN0KGZpbGVMaXN0
KQoreworICAgIC8vIFRoaXMgZHJvcHMgZmlsZXMgb24gYSBkaXYsIHdoaWNoIGNvcGllcyB0aGVt
IHRvIHRoZSBpbnB1dCBlbGVtZW50LCB3aG9zZQorICAgIC8vIGNhbGxiYWNrIGNhbGxzIG5vdGlm
eURvbmUoKS4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5vbmNoYW5nZSA9
IG9uSW5wdXRGaWxlQ2hhbmdlOworICAgIHZhciBmaSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJmaWxlcyIpOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJy4uL3Jlc291
cmNlcy90ZXN0LnR4dCddKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wdGFyZ2V0
Lm9mZnNldExlZnQgKyAxMCwgZHJvcHRhcmdldC5vZmZzZXRUb3AgKyBkcm9wdGFyZ2V0Lm9mZnNl
dEhlaWdodCAvIDIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24g
ZG9TdHJpbmdUZXN0KCkKK3sKKyAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZmlsZXMiKTsKKyAgICBmaWxlcy5maWxlcyA9ICJmb28iOyAgLy8gU2hvdWxkbid0IGNyYXNo
LgorCisgICAgZmlsZXMudmFsdWUgPSAiZm9vIjsgIC8vIFNob3VsZCBkbyBub3RoaW5nLgorICAg
IGlmIChmaWxlcy5maWxlcy5sZW5ndGggPiAwKQorICAgICAgICBsb2coIlBBU1M6IHdyaXRpbmcg
bm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGhhZCBubyBlZmZlY3QiKTsKKyAgICBlbHNlCisgICAg
ICAgIGxvZygiRkFJTDogd3JpdGluZyBub25lbXB0eSBzdHJpbmcgdG8gdmFsdWUgY2xlYXJlZCBl
bGVtZW50cyIpOworCisgICAgZmlsZXMudmFsdWUgPSAiIjsKKyAgICBpZiAoZmlsZXMuZmlsZXMu
bGVuZ3RoID09PSAwKQorICAgICAgICBsb2coIlBBU1M6IHdyaXRpbmcgZW1wdHkgc3RyaW5nIHRv
IHZhbHVlIGNsZWFyZWQgZmlsZXMiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTDogd3Jp
dGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUgZGlkIG5vdCBjbGVhciBmaWxlcyIpOworfQorCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGRvVGVzdCgpOworfQorCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144680</attachid>
            <date>2012-05-29 19:24:10 -0700</date>
            <delta_ts>2012-05-29 19:36:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120529192409.patch</filename>
            <type>text/plain</type>
            <size>10230</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNhZTM5YzFjNWQ4MjFm
ODcxMTVhZjQ2NjVkZTRiMTkyZTFkNWYzNy4uMDNiOTVkYzEwOGE0MzcxMzI2OWJiNDNjMDI5NWM5
ZWM5NDUzMmYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTI5ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNl
cy5oOgorICAgICAgICAgICAgTWFyayBmaWxlcyBwcm9wZXJ0eSBhcyB3cml0YWJsZSBpbiBsYXRl
c3QgQVBJIHZlcnNpb24uCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKEZpbGVJbnB1dFR5cGUpOgorICAgICAgICAgICAgQWRkIGEgTlVMTCBjaGVjayB0byBzZXRG
aWxlcygpLgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5oOgorICAgICAgICAoRmlsZUlu
cHV0VHlwZSk6CisgICAgICAgICAgICBMZXQgc2V0RmlsZXMoKSBvdmVyd3JpdGUgdGhlIGJhc2Ug
IGNsYXNzJ3MgbWV0aG9kLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyk6CisgICAgICAgICAg
ICBBZGQgc2V0RmlsZXMoKSBpbXBsZW1lbnRhdGlvbiwgZGVsZWdhdGUgdG8gaW5wdXQgdHlwZS4K
KyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxJbnB1dEVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpzZXRGaWxl
cyk6CisgICAgICAgICAgICBzZXRGaWxlcygpIGRvZXMgbm90aGluZyBieSBkZWZhdWx0LgorICAg
ICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5cGUpOgorICAgICAgICAg
ICAgQWRkIGEgdmlydHVhbCBzZXRGaWxlcygpIG1ldGhvZC4KKwogMjAxMi0wNS0yOSAgU2NvdHQg
R3JhaGFtICA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHdhcm5pbmcgaW4g
cHJlcHJvY2Vzc2luZyBTb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJyb3IuaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCmluZGV4IDlk
NjUyMWU4NDRjYzgwODVjNmE4YTg5ZDQ4NWRjYTQ5Mjk4Mjc1YjcuLmRmZGI3M2IzMWI1ZmU3NDky
NmFkMTg4MGEwZTU4NWJmOGY4Y2U4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCkBAIC02MjIsNyArNjIyLDExIEBACiBAcHJv
cGVydHkgQk9PTCBhdXRvZm9jdXMgQVZBSUxBQkxFX0lOX1dFQktJVF9WRVJTSU9OXzRfMDsKIEBw
cm9wZXJ0eSBCT09MIG11bHRpcGxlIEFWQUlMQUJMRV9JTl9XRUJLSVRfVkVSU0lPTl80XzA7CiBA
cHJvcGVydHkocmVhZG9ubHkpIEJPT0wgd2lsbFZhbGlkYXRlIEFWQUlMQUJMRV9JTl9XRUJLSVRf
VkVSU0lPTl80XzA7CisjaWYgV0VCS0lUX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IFdFQktJVF9W
RVJTSU9OX0xBVEVTVAorQHByb3BlcnR5KHJldGFpbikgRE9NRmlsZUxpc3QgKmZpbGVzOworI2Vs
c2UKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01GaWxlTGlzdCAqZmlsZXMgQVZBSUxB
QkxFX0lOX1dFQktJVF9WRVJTSU9OXzRfMDsKKyNlbmRpZgogLSAodm9pZClzZWxlY3Q7CiAtICh2
b2lkKWNsaWNrOwogLSAodm9pZClzZXRTZWxlY3Rpb25SYW5nZTooaW50KXN0YXJ0IGVuZDooaW50
KWVuZCBBVkFJTEFCTEVfV0VCS0lUX1ZFUlNJT05fM18wX0FORF9MQVRFUjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDJiYWMwMzAxNTY0NzdmNDRiODU0N2NkNmE5MGJl
YzBkNmMyMjQzODcuLjcyYjY3NTY5MWQ5YjZmMmU1NGMzZmZjZDdkZTQ5ODM3MjRmN2E0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMzIwLDYgKzMyMCw5IEBAIHZv
aWQgRmlsZUlucHV0VHlwZTo6cmVxdWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhz
KQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZp
bGVzKQogeworICAgIGlmICghZmlsZXMpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBpbnB1dCA9IGVsZW1lbnQoKTsKIAogICAgIGJvb2wgcGF0aHNDaGFu
Z2VkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IDMxZDA5YjRk
MWY0M2FhZWNhZDJhY2UyNjhhNDk1YTQ1ODg2OTZjZWYuLjFmOWZiY2UzOWU4NWRkMzQ4MjExMmIx
ODVkMTQyMWMxMGNlNjIzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC01
OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNhbkNoYW5nZUZyb21Bbm90aGVy
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIE9W
RVJSSURFOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUg
dmFsdWUgYXR0cmlidXRlLgogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CkBA
IC03NCw3ICs3NSw2IEBAIHByaXZhdGU6CiAgICAgLy8gRmlsZUljb25Mb2FkZXJDbGllbnQgaW1w
bGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRy
PEljb24+KSBPVkVSUklERTsKIAotICAgIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOwogICAgIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpIGNvbnN0OwogI2lmIEVOQUJMRShESVJFQ1RP
UllfVVBMT0FEKQogICAgIHZvaWQgcmVjZWl2ZURyb3BGb3JEaXJlY3RvcnlVcGxvYWQoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IDM5NTBjZDBhNzhhY2E0MTNlNGExYjY4MjQyMjcwYWFjNTE3YWU0MzEuLjkyNDhmMGJj
Mjc5MmRhMzZjODZmNTJjNWFmZGEzYmMyOGFiMjkxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTIyMCw2ICsxMjIwLDExIEBAIEZpbGVMaXN0KiBIVE1M
SW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5maWxlcygpOwog
fQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+
IGZpbGVzKQoreworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhmaWxlcyk7Cit9CisKIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzKQogewogICAgIG1faW5wdXRUeXBlLT5yZWNlaXZlRHJvcHBlZEZpbGVzKGZp
bGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDU2YTg2
NDEzZWQ4MDRjNjM0YjExNDM1NjZkNGJjYmJkZTBmMTUzNTIuLjk3NTZlNGZjNDA5NzAzZWNiZjM3
N2NjMDIxNWZjMWQwMDZiOTllYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yMTEsNiArMjExLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b2ZpbGxlZChi
b29sID0gdHJ1ZSk7CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsKKyAgICB2b2lkIHNldEZpbGVz
KFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKICAgICB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIGlucHV0IGFjdGl2ZSBkdXJp
bmcgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggY2NhNDAz
NjVmNmMwZDUxMzU0NzkxNjJmZmY1YmY0YWYyOTQ0NmUxMC4uZTMyNmNlN2JlMjYxZTA4MDEzMzc5
M2JhMmE2NTA4NjU5MWIwNWM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsCkBAIC0zMSw3ICszMSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgZGlyTmFtZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBib29sZWFuIGRpc2FibGVkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1F
bGVtZW50IGZvcm07Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxlczsK
KyAgICAgICAgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOwogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOwogICAgICAgICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtTWV0aG9kOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDMwMThkYzExMmFjYTQ1OWRiMTk0OWYzNTkzNWVk
OThiOTU4N2RiMWUuLjVkMDk0YjUzNjgzOGRiMGUxNjU4OTFjNjUwYTkzY2RjZTU0NmI2NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTU3Nyw2ICs1NzcsMTAgQEAgRmlsZUxpc3Qq
IElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiAwOwogfQogCit2b2lkIElucHV0VHlwZTo6
c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pCit7Cit9CisKIGJvb2wgSW5wdXRUeXBlOjpn
ZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oCmluZGV4IDllYjExOWNlMjkwZDZkNTQxNmNkNTRiYWVmYmE1MzcxNmE1
ZTAzZDQuLjgzZWZiZGViZTk2NGVlNjBmOGFmZTczYjk2NjQxZGJlNWQyNjVlZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaApAQCAtMjI5LDYgKzIyOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbE1vdmVUb05ld093bmVyRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pOwogICAg
IHZpcnR1YWwgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7
CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8gU2hvdWxkIHJldHVybiB0
cnVlIGlmIHRoZSBjb3JyZXNwb25kaW5nIHJlbmRlcmVyIGZvciBhIHR5cGUgY2FuIGRpc3BsYXkg
YSBzdWdnZXN0ZWQgdmFsdWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zp
bGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjU3ZDYwODZhOTE4MjYwM2Q0MDMzNmI4MWQzNDFlMzdkNWY2ZjJlZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgZHJvcHMgZmlsZXMgaGVyZQorCitQ
QVNTOiAxIGZpbGUgYWZ0ZXIgZHJhZworUEFTUzogd3JpdGluZyBub25lbXB0eSBzdHJpbmcgdG8g
dmFsdWUgaGFkIG5vIGVmZmVjdAorUEFTUzogd3JpdGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUg
Y2xlYXJlZCBmaWxlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUv
aW5wdXQtZmlsZS13cml0ZS1maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxl
L2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjBjN2I4ZmQ3Njc3NWEy
Zjk4NGFlOGI2ZjczNzY5ZDRjZjQzYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApAQCAtMCwwICsxLDg1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJkcm9wdGFyZ2V0
Ij5UZXN0IGRyb3BzIGZpbGVzIGhlcmU8L2Rpdj4KKzxmb3JtPgorPGlucHV0IHR5cGU9ImZpbGUi
IG5hbWU9ImZpbGVzIiBpZD0iZmlsZXMiPgorPC9mb3JtPgorPHByZSBpZD0nb3V0cHV0Jz48L3By
ZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlvbiBvbklucHV0RmlsZUNoYW5nZSgpCit7
CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikuZmlsZXM7
CisgICAgaWYgKGZpbGVzLmxlbmd0aCAhPSAxKQorICAgICAgICBsb2coIkZBSUw6IEV4cGVjdGVk
IDEgZmlsZSBhZnRlciBkcmFnLiIpCisgICAgZWxzZQorICAgICAgICBsb2coIlBBU1M6IDEgZmls
ZSBhZnRlciBkcmFnIik7CisKKyAgICBkb1N0cmluZ1Rlc3QoKTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlRHJhZ092ZXIoZSkgeworICAgIGUuc3RvcFBy
b3BhZ2F0aW9uKCk7CisgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworfQorCitmdW5jdGlvbiBoYW5k
bGVEcm9wKGUpIHsKKyAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgIGUucHJldmVudERlZmF1
bHQoKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5maWxlcyA9IGUuZGF0
YVRyYW5zZmVyLmZpbGVzOworfQorCit2YXIgZHJvcHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkcm9wdGFyZ2V0Jyk7Citkcm9wdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdv
dmVyJywgaGFuZGxlRHJhZ092ZXIsIGZhbHNlKTsKK2Ryb3B0YXJnZXQuYWRkRXZlbnRMaXN0ZW5l
cignZHJvcCcsIGhhbmRsZURyb3AsIGZhbHNlKTsKKworZnVuY3Rpb24gZG9UZXN0KGZpbGVMaXN0
KQoreworICAgIC8vIFRoaXMgZHJvcHMgZmlsZXMgb24gYSBkaXYsIHdoaWNoIGNvcGllcyB0aGVt
IHRvIHRoZSBpbnB1dCBlbGVtZW50LCB3aG9zZQorICAgIC8vIGNhbGxiYWNrIGNhbGxzIG5vdGlm
eURvbmUoKS4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5vbmNoYW5nZSA9
IG9uSW5wdXRGaWxlQ2hhbmdlOworICAgIHZhciBmaSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJmaWxlcyIpOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJy4uL3Jlc291
cmNlcy90ZXN0LnR4dCddKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wdGFyZ2V0
Lm9mZnNldExlZnQgKyAxMCwgZHJvcHRhcmdldC5vZmZzZXRUb3AgKyBkcm9wdGFyZ2V0Lm9mZnNl
dEhlaWdodCAvIDIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24g
ZG9TdHJpbmdUZXN0KCkKK3sKKyAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZmlsZXMiKTsKKyAgICBmaWxlcy5maWxlcyA9ICJmb28iOyAgLy8gU2hvdWxkbid0IGNyYXNo
LgorCisgICAgZmlsZXMudmFsdWUgPSAiZm9vIjsgIC8vIFNob3VsZCBkbyBub3RoaW5nLgorICAg
IGlmIChmaWxlcy5maWxlcy5sZW5ndGggPiAwKQorICAgICAgICBsb2coIlBBU1M6IHdyaXRpbmcg
bm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGhhZCBubyBlZmZlY3QiKTsKKyAgICBlbHNlCisgICAg
ICAgIGxvZygiRkFJTDogd3JpdGluZyBub25lbXB0eSBzdHJpbmcgdG8gdmFsdWUgY2xlYXJlZCBl
bGVtZW50cyIpOworCisgICAgZmlsZXMudmFsdWUgPSAiIjsKKyAgICBpZiAoZmlsZXMuZmlsZXMu
bGVuZ3RoID09PSAwKQorICAgICAgICBsb2coIlBBU1M6IHdyaXRpbmcgZW1wdHkgc3RyaW5nIHRv
IHZhbHVlIGNsZWFyZWQgZmlsZXMiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTDogd3Jp
dGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUgZGlkIG5vdCBjbGVhciBmaWxlcyIpOworfQorCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGRvVGVzdCgpOworfQorCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144681</attachid>
            <date>2012-05-29 19:36:27 -0700</date>
            <delta_ts>2012-05-30 09:35:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120529193626.patch</filename>
            <type>text/plain</type>
            <size>10168</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNhZTM5YzFjNWQ4MjFm
ODcxMTVhZjQ2NjVkZTRiMTkyZTFkNWYzNy4uNTkwMTBkOWU2ZjI3M2EyY2JiYjNjODU5ZDI2ZWZh
YzlhNTU4YTk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTI5ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNl
cy5oOgorICAgICAgICAgICAgUmVtb3ZlIHJlYWRvbmx5IG9uIGZpbGVzIHByb3BlcnR5LgorICAg
ICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToK
KyAgICAgICAgICAgIEFkZCBhIE5VTEwgY2hlY2sgdG8gc2V0RmlsZXMoKS4KKyAgICAgICAgKiBo
dG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1dFR5cGUpOgorICAgICAgICAg
ICAgTGV0IHNldEZpbGVzKCkgb3ZlcndyaXRlIHRoZSBiYXNlICBjbGFzcydzIG1ldGhvZC4KKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAgICAgQWRkIHNldEZpbGVzKCkgaW1w
bGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUuCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0RmlsZXMpOgorICAgICAgICAgICAgc2V0
RmlsZXMoKSBkb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5oOgorICAgICAgICAoSW5wdXRUeXBlKToKKyAgICAgICAgICAgIEFkZCBhIHZpcnR1YWwgc2V0
RmlsZXMoKSBtZXRob2QuCisKIDIwMTItMDUtMjkgIFNjb3R0IEdyYWhhbSAgPHNjb3R0bWdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEZpeCB3YXJuaW5nIGluIHByZXByb2Nlc3NpbmcgU291cmNl
L1dlYkNvcmUvZG9tL0RPTUVycm9yLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAppbmRleCA5ZDY1MjFlODQ0Y2M4MDg1YzZhOGE4
OWQ0ODVkY2E0OTI5ODI3NWI3Li5kYzczZGQ0YWJkNTg4OTQ2MjE3MWFkZjYyYjNjMGQyNzgyZmE1
NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUlu
dGVyZmFjZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUlu
dGVyZmFjZXMuaApAQCAtNjIyLDcgKzYyMiw3IEBACiBAcHJvcGVydHkgQk9PTCBhdXRvZm9jdXMg
QVZBSUxBQkxFX0lOX1dFQktJVF9WRVJTSU9OXzRfMDsKIEBwcm9wZXJ0eSBCT09MIG11bHRpcGxl
IEFWQUlMQUJMRV9JTl9XRUJLSVRfVkVSU0lPTl80XzA7CiBAcHJvcGVydHkocmVhZG9ubHkpIEJP
T0wgd2lsbFZhbGlkYXRlIEFWQUlMQUJMRV9JTl9XRUJLSVRfVkVSU0lPTl80XzA7Ci1AcHJvcGVy
dHkocmVhZG9ubHksIHJldGFpbikgRE9NRmlsZUxpc3QgKmZpbGVzIEFWQUlMQUJMRV9JTl9XRUJL
SVRfVkVSU0lPTl80XzA7CitAcHJvcGVydHkocmV0YWluKSBET01GaWxlTGlzdCAqZmlsZXMgQVZB
SUxBQkxFX0lOX1dFQktJVF9WRVJTSU9OXzRfMDsKIC0gKHZvaWQpc2VsZWN0OwogLSAodm9pZClj
bGljazsKIC0gKHZvaWQpc2V0U2VsZWN0aW9uUmFuZ2U6KGludClzdGFydCBlbmQ6KGludCllbmQg
QVZBSUxBQkxFX1dFQktJVF9WRVJTSU9OXzNfMF9BTkRfTEFURVI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcAppbmRleCAyYmFjMDMwMTU2NDc3ZjQ0Yjg1NDdjZDZhOTBiZWMwZDZj
MjI0Mzg3Li43MmI2NzU2OTFkOWI2ZjJlNTRjM2ZmY2Q3ZGU0OTgzNzI0ZjdhNDhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTMyMCw2ICszMjAsOSBAQCB2b2lkIEZp
bGVJbnB1dFR5cGU6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKIAog
dm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykK
IHsKKyAgICBpZiAoIWZpbGVzKQorICAgICAgICByZXR1cm47CisKICAgICBSZWZQdHI8SFRNTElu
cHV0RWxlbWVudD4gaW5wdXQgPSBlbGVtZW50KCk7CiAKICAgICBib29sIHBhdGhzQ2hhbmdlZCA9
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAppbmRleCAzMWQwOWI0ZDFmNDNh
YWVjYWQyYWNlMjY4YTQ5NWE0NTg4Njk2Y2VmLi4xZjlmYmNlMzllODVkZDM0ODIxMTJiMTg1ZDE0
MjFjMTBjZTYyMzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNTgsNiAr
NTgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjYW5DaGFuZ2VGcm9tQW5vdGhlclR5cGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVSUklE
RTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVl
IGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwpAQCAtNzQs
NyArNzUsNiBAQCBwcml2YXRlOgogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVu
dGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29u
PikgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsK
ICAgICBQYXNzUmVmUHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8Rmls
ZUNob29zZXJGaWxlSW5mbz4mIGZpbGVzKSBjb25zdDsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQ
TE9BRCkKICAgICB2b2lkIHJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRl
eCAzOTUwY2QwYTc4YWNhNDEzZTRhMWI2ODI0MjI3MGFhYzUxN2FlNDMxLi45MjQ4ZjBiYzI3OTJk
YTM2Yzg2ZjUyYzVhZmRhM2JjMjhhYjI5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTEyMjAsNiArMTIyMCwxMSBAQCBGaWxlTGlzdCogSFRNTElucHV0
RWxlbWVudDo6ZmlsZXMoKQogICAgIHJldHVybiBtX2lucHV0VHlwZS0+ZmlsZXMoKTsKIH0KIAor
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxl
cykKK3sKKyAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOworfQorCiB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZp
bGVuYW1lcykKIHsKICAgICBtX2lucHV0VHlwZS0+cmVjZWl2ZURyb3BwZWRGaWxlcyhmaWxlbmFt
ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA1NmE4NjQxM2Vk
ODA0YzYzNGIxMTQzNTY2ZDRiY2JiZGUwZjE1MzUyLi45NzU2ZTRmYzQwOTcwM2VjYmYzNzdjYzAy
MTVmYzFkMDA2Yjk5ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApA
QCAtMjExLDYgKzIxMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1dG9maWxsZWQoYm9vbCA9
IHRydWUpOwogCiAgICAgRmlsZUxpc3QqIGZpbGVzKCk7CisgICAgdm9pZCBzZXRGaWxlcyhQYXNz
UmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jik7CiAgICAgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIC8vIFRoZXNlIGZ1
bmN0aW9ucyBhcmUgdXNlZCBmb3IgcmVuZGVyaW5nIHRoZSBpbnB1dCBhY3RpdmUgZHVyaW5nIGEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGNjYTQwMzY1ZjZj
MGQ1MTM1NDc5MTYyZmZmNWJmNGFmMjk0NDZlMTAuLmUzMjZjZTdiZTI2MWUwODAxMzM3OTNiYTJh
NjUwODY1OTFiMDVjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bApAQCAtMzEsNyArMzEsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIGRpck5hbWU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9v
bGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVu
dCBmb3JtOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmlsZUxpc3QgZmlsZXM7CisgICAg
ICAgIGF0dHJpYnV0ZSBGaWxlTGlzdCBmaWxlczsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
LCBVUkxdIERPTVN0cmluZyBmb3JtQWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtRW5jdHlwZTsKICAgICAgICAgYXR0cmlidXRl
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZm9ybU1ldGhvZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcAppbmRleCAzMDE4ZGMxMTJhY2E0NTlkYjE5NDlmMzU5MzVlZDk4Yjk1
ODdkYjFlLi41ZDA5NGI1MzY4MzhkYjBlMTY1ODkxYzY1MGE5M2NkY2U1NDZiNjUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01NzcsNiArNTc3LDEwIEBAIEZpbGVMaXN0KiBJbnB1
dFR5cGU6OmZpbGVzKCkKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBJbnB1dFR5cGU6OnNldEZp
bGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KQoreworfQorCiBib29sIElucHV0VHlwZTo6Z2V0VHlw
ZVNwZWNpZmljVmFsdWUoU3RyaW5nJikKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuaAppbmRleCA5ZWIxMTljZTI5MGQ2ZDU0MTZjZDU0YmFlZmJhNTM3MTZhNWUwM2Q0
Li44M2VmYmRlYmU5NjRlZTYwZjhhZmU3M2I5NjY0MWRiZTVkMjY1ZWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJl
c3BlY3RBbGlnbkF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAg
IHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIC8vIFNob3VsZCByZXR1cm4gdHJ1ZSBp
ZiB0aGUgY29ycmVzcG9uZGluZyByZW5kZXJlciBmb3IgYSB0eXBlIGNhbiBkaXNwbGF5IGEgc3Vn
Z2VzdGVkIHZhbHVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lu
cHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1
N2Q2MDg2YTkxODI2MDNkNDAzMzZiODFkMzQxZTM3ZDVmNmYyZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IGRyb3BzIGZpbGVzIGhlcmUKKworUEFTUzog
MSBmaWxlIGFmdGVyIGRyYWcKK1BBU1M6IHdyaXRpbmcgbm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVl
IGhhZCBubyBlZmZlY3QKK1BBU1M6IHdyaXRpbmcgZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGNsZWFy
ZWQgZmlsZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0
LWZpbGUtd3JpdGUtZmlsZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1
dC1maWxlLXdyaXRlLWZpbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwYzdiOGZkNzY3NzVhMmY5ODRh
ZThiNmY3Mzc2OWQ0Y2Y0M2I1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0iZHJvcHRhcmdldCI+VGVz
dCBkcm9wcyBmaWxlcyBoZXJlPC9kaXY+Cis8Zm9ybT4KKzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1l
PSJmaWxlcyIgaWQ9ImZpbGVzIj4KKzwvZm9ybT4KKzxwcmUgaWQ9J291dHB1dCc+PC9wcmU+CisK
KzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3V0cHV0JykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gb25JbnB1dEZpbGVDaGFuZ2UoKQoreworICAg
IHZhciBmaWxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpLmZpbGVzOworICAg
IGlmIChmaWxlcy5sZW5ndGggIT0gMSkKKyAgICAgICAgbG9nKCJGQUlMOiBFeHBlY3RlZCAxIGZp
bGUgYWZ0ZXIgZHJhZy4iKQorICAgIGVsc2UKKyAgICAgICAgbG9nKCJQQVNTOiAxIGZpbGUgYWZ0
ZXIgZHJhZyIpOworCisgICAgZG9TdHJpbmdUZXN0KCk7CisKKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZURyYWdPdmVyKGUpIHsKKyAgICBlLnN0b3BQcm9wYWdh
dGlvbigpOworICAgIGUucHJldmVudERlZmF1bHQoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlRHJv
cChlKSB7CisgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICBlLnByZXZlbnREZWZhdWx0KCk7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikuZmlsZXMgPSBlLmRhdGFUcmFu
c2Zlci5maWxlczsKK30KKwordmFyIGRyb3B0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZHJvcHRhcmdldCcpOworZHJvcHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3Zlcics
IGhhbmRsZURyYWdPdmVyLCBmYWxzZSk7Citkcm9wdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2Ry
b3AnLCBoYW5kbGVEcm9wLCBmYWxzZSk7CisKK2Z1bmN0aW9uIGRvVGVzdChmaWxlTGlzdCkKK3sK
KyAgICAvLyBUaGlzIGRyb3BzIGZpbGVzIG9uIGEgZGl2LCB3aGljaCBjb3BpZXMgdGhlbSB0byB0
aGUgaW5wdXQgZWxlbWVudCwgd2hvc2UKKyAgICAvLyBjYWxsYmFjayBjYWxscyBub3RpZnlEb25l
KCkuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIikub25jaGFuZ2UgPSBvbklu
cHV0RmlsZUNoYW5nZTsKKyAgICB2YXIgZmkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmls
ZXMiKTsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWycuLi9yZXNvdXJjZXMv
dGVzdC50eHQnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZHJvcHRhcmdldC5vZmZz
ZXRMZWZ0ICsgMTAsIGRyb3B0YXJnZXQub2Zmc2V0VG9wICsgZHJvcHRhcmdldC5vZmZzZXRIZWln
aHQgLyAyKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGRvU3Ry
aW5nVGVzdCgpCit7CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZp
bGVzIik7CisgICAgZmlsZXMuZmlsZXMgPSAiZm9vIjsgIC8vIFNob3VsZG4ndCBjcmFzaC4KKwor
ICAgIGZpbGVzLnZhbHVlID0gImZvbyI7ICAvLyBTaG91bGQgZG8gbm90aGluZy4KKyAgICBpZiAo
ZmlsZXMuZmlsZXMubGVuZ3RoID4gMCkKKyAgICAgICAgbG9nKCJQQVNTOiB3cml0aW5nIG5vbmVt
cHR5IHN0cmluZyB0byB2YWx1ZSBoYWQgbm8gZWZmZWN0Iik7CisgICAgZWxzZQorICAgICAgICBs
b2coIkZBSUw6IHdyaXRpbmcgbm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGNsZWFyZWQgZWxlbWVu
dHMiKTsKKworICAgIGZpbGVzLnZhbHVlID0gIiI7CisgICAgaWYgKGZpbGVzLmZpbGVzLmxlbmd0
aCA9PT0gMCkKKyAgICAgICAgbG9nKCJQQVNTOiB3cml0aW5nIGVtcHR5IHN0cmluZyB0byB2YWx1
ZSBjbGVhcmVkIGZpbGVzIik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUw6IHdyaXRpbmcg
ZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGRpZCBub3QgY2xlYXIgZmlsZXMiKTsKK30KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBkb1Rlc3QoKTsKK30KKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144840</attachid>
            <date>2012-05-30 09:35:42 -0700</date>
            <delta_ts>2012-05-30 10:15:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120530093541.patch</filename>
            <type>text/plain</type>
            <size>10211</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4ZjEzNDIyMmE3M2Rl
MWRmMDA4MzEzYjJlOTE3M2FlZGU0Njk0My4uYjViMjgyZTg3MjAxMWU2NGYxM2UzNDYwOWY3NTdi
NmY1YTc4ZmIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTMwICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNl
cy5oOgorICAgICAgICAgICAgUmVtb3ZlIHJlYWRvbmx5IG9uIGZpbGVzIHByb3BlcnR5LgorICAg
ICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToK
KyAgICAgICAgICAgIEFkZCBhIE5VTEwgY2hlY2sgdG8gc2V0RmlsZXMoKS4KKyAgICAgICAgKiBo
dG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1dFR5cGUpOgorICAgICAgICAg
ICAgTGV0IHNldEZpbGVzKCkgb3ZlcndyaXRlIHRoZSBiYXNlICBjbGFzcydzIG1ldGhvZC4KKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAgICAgQWRkIHNldEZpbGVzKCkgaW1w
bGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUuCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0RmlsZXMpOgorICAgICAgICAgICAgc2V0
RmlsZXMoKSBkb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5oOgorICAgICAgICAoSW5wdXRUeXBlKToKKyAgICAgICAgICAgIEFkZCBhIHZpcnR1YWwgc2V0
RmlsZXMoKSBtZXRob2QuCisKIDIwMTItMDUtMzAgIFBldGVyIFJ5YmluICA8cGV0ZXIucnliaW5A
Z21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc2FibGUgRXhhY3RseUludCBm
ZWF0dXJlIGluIEluc3BlY3RvclR5cGVCdWlsZGVyIHNpbmNlIGl0IGJyZWFrcyByZWxlYXNlIFdp
bmRvd3MgNyBXSzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVi
bGljRE9NSW50ZXJmYWNlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNE
T01JbnRlcmZhY2VzLmgKaW5kZXggOWQ2NTIxZTg0NGNjODA4NWM2YThhODlkNDg1ZGNhNDkyOTgy
NzViNy4uZGM3M2RkNGFiZDU4ODk0NjIxNzFhZGY2MmIzYzBkMjc4MmZhNTU1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKQEAg
LTYyMiw3ICs2MjIsNyBAQAogQHByb3BlcnR5IEJPT0wgYXV0b2ZvY3VzIEFWQUlMQUJMRV9JTl9X
RUJLSVRfVkVSU0lPTl80XzA7CiBAcHJvcGVydHkgQk9PTCBtdWx0aXBsZSBBVkFJTEFCTEVfSU5f
V0VCS0lUX1ZFUlNJT05fNF8wOwogQHByb3BlcnR5KHJlYWRvbmx5KSBCT09MIHdpbGxWYWxpZGF0
ZSBBVkFJTEFCTEVfSU5fV0VCS0lUX1ZFUlNJT05fNF8wOwotQHByb3BlcnR5KHJlYWRvbmx5LCBy
ZXRhaW4pIERPTUZpbGVMaXN0ICpmaWxlcyBBVkFJTEFCTEVfSU5fV0VCS0lUX1ZFUlNJT05fNF8w
OworQHByb3BlcnR5KHJldGFpbikgRE9NRmlsZUxpc3QgKmZpbGVzIEFWQUlMQUJMRV9JTl9XRUJL
SVRfVkVSU0lPTl80XzA7CiAtICh2b2lkKXNlbGVjdDsKIC0gKHZvaWQpY2xpY2s7CiAtICh2b2lk
KXNldFNlbGVjdGlvblJhbmdlOihpbnQpc3RhcnQgZW5kOihpbnQpZW5kIEFWQUlMQUJMRV9XRUJL
SVRfVkVSU0lPTl8zXzBfQU5EX0xBVEVSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggMmJhYzAzMDE1NjQ3N2Y0NGI4NTQ3Y2Q2YTkwYmVjMGQ2YzIyNDM4Ny4uNzJiNjc1
NjkxZDliNmYyZTU0YzNmZmNkN2RlNDk4MzcyNGY3YTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC0zMjAsNiArMzIwLDkgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAKIHZvaWQgRmlsZUlucHV0
VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiB7CisgICAgaWYgKCFm
aWxlcykKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0ID0gZWxlbWVudCgpOwogCiAgICAgYm9vbCBwYXRoc0NoYW5nZWQgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggMzFkMDliNGQxZjQzYWFlY2FkMmFjZTI2OGE0
OTVhNDU4ODY5NmNlZi4uMWY5ZmJjZTM5ZTg1ZGQzNDgyMTEyYjE4NWQxNDIxYzEwY2U2MjM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2hhbmdlRnJvbUFub3RoZXJUeXBlKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJREU7IC8vIENoZWNrZWQg
Zmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKQEAgLTc0LDcgKzc1LDYgQEAgcHJp
dmF0ZToKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIE9WRVJSSURFOwog
Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgUGFzc1JlZlB0
cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUlu
Zm8+JiBmaWxlcykgY29uc3Q7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgdm9p
ZCByZWNlaXZlRHJvcEZvckRpcmVjdG9yeVVwbG9hZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNDNkZTgxZmY5YzVl
ODIzZTM0Njk1NzdmOWI5NWY5YzNlMjQ4NjQxYy4uMDk3ODRiMTE1ZTg3MWU4YTcxYzhkYWQyNGM0
OGRhODhmNTFlY2JjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CkBAIC0xMjIwLDYgKzEyMjAsMTEgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVz
KCkKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKK3ZvaWQgSFRNTElucHV0
RWxlbWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit7CisgICAgbV9p
bnB1dFR5cGUtPnNldEZpbGVzKGZpbGVzKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpy
ZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiB7CiAg
ICAgbV9pbnB1dFR5cGUtPnJlY2VpdmVEcm9wcGVkRmlsZXMoZmlsZW5hbWVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZDYzYTgzY2JmMTExNzFiOTRmMzY5N2M5
YmVhZDhlZjljMTA4MDZiNy4uZTI4YjM0NDAxZGE5YWU3Y2VlMWFkYzI2MWYwMmQ5M2IyYTI1NjJm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIxMSw2ICsyMTEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wgPSB0cnVlKTsKIAogICAg
IEZpbGVMaXN0KiBmaWxlcygpOworICAgIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOwogICAgIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYp
OwogICAgIEljb24qIGljb24oKSBjb25zdDsKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIHVz
ZWQgZm9yIHJlbmRlcmluZyB0aGUgaW5wdXQgYWN0aXZlIGR1cmluZyBhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBjY2E0MDM2NWY2YzBkNTEzNTQ3OTE2MmZm
ZjViZjRhZjI5NDQ2ZTEwLi5lMzI2Y2U3YmUyNjFlMDgwMTMzNzkzYmEyYTY1MDg2NTkxYjA1YzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTMxLDcgKzMx
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBkaXJOYW1lOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOworICAgICAgICBhdHRyaWJ1dGUg
RmlsZUxpc3QgZmlsZXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJp
bmcgZm9ybUFjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgZm9ybUVuY3R5cGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAKaW5kZXggMzAxOGRjMTEyYWNhNDU5ZGIxOTQ5ZjM1OTM1ZWQ5OGI5NTg3ZGIxZS4uNWQwOTRi
NTM2ODM4ZGIwZTE2NTg5MWM2NTBhOTNjZGNlNTQ2YjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcApAQCAtNTc3LDYgKzU3NywxMCBAQCBGaWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygp
CiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRy
PEZpbGVMaXN0PikKK3sKK30KKwogYm9vbCBJbnB1dFR5cGU6OmdldFR5cGVTcGVjaWZpY1ZhbHVl
KFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5k
ZXggOWViMTE5Y2UyOTBkNmQ1NDE2Y2Q1NGJhZWZiYTUzNzE2YTVlMDNkNC4uODNlZmJkZWJlOTY0
ZWU2MGY4YWZlNzNiOTY2NDFkYmU1ZDI2NWVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBA
IC0yMjksNiArMjI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92ZVRvTmV3
T3duZXJEb2N1bWVudCgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0QWxpZ25BdHRy
aWJ1dGUoKTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2Vp
dmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICB2aXJ0dWFsIEljb24q
IGljb24oKSBjb25zdDsKICAgICAvLyBTaG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIGNvcnJlc3Bv
bmRpbmcgcmVuZGVyZXIgZm9yIGEgdHlwZSBjYW4gZGlzcGxheSBhIHN1Z2dlc3RlZCB2YWx1ZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRl
LWZpbGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1m
aWxlLXdyaXRlLWZpbGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTdkNjA4NmE5MTgyNjAz
ZDQwMzM2YjgxZDM0MWUzN2Q1ZjZmMmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorVGVzdCBkcm9wcyBmaWxlcyBoZXJlCisKK1BBU1M6IDEgZmlsZSBhZnRlciBk
cmFnCitQQVNTOiB3cml0aW5nIG5vbmVtcHR5IHN0cmluZyB0byB2YWx1ZSBoYWQgbm8gZWZmZWN0
CitQQVNTOiB3cml0aW5nIGVtcHR5IHN0cmluZyB0byB2YWx1ZSBjbGVhcmVkIGZpbGVzCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXdyaXRlLWZp
bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1m
aWxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MGM3YjhmZDc2Nzc1YTJmOTg0YWU4YjZmNzM3NjlkNGNm
NDNiNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5w
dXQtZmlsZS13cml0ZS1maWxlcy5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImRyb3B0YXJnZXQiPlRlc3QgZHJvcHMgZmlsZXMg
aGVyZTwvZGl2PgorPGZvcm0+Cis8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZXMiIGlkPSJm
aWxlcyI+Cis8L2Zvcm0+Cis8cHJlIGlkPSdvdXRwdXQnPjwvcHJlPgorCis8c2NyaXB0PgorZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1
dCcpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7
Cit9CisKK2Z1bmN0aW9uIG9uSW5wdXRGaWxlQ2hhbmdlKCkKK3sKKyAgICB2YXIgZmlsZXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5maWxlczsKKyAgICBpZiAoZmlsZXMubGVu
Z3RoICE9IDEpCisgICAgICAgIGxvZygiRkFJTDogRXhwZWN0ZWQgMSBmaWxlIGFmdGVyIGRyYWcu
IikKKyAgICBlbHNlCisgICAgICAgIGxvZygiUEFTUzogMSBmaWxlIGFmdGVyIGRyYWciKTsKKwor
ICAgIGRvU3RyaW5nVGVzdCgpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5j
dGlvbiBoYW5kbGVEcmFnT3ZlcihlKSB7CisgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICBl
LnByZXZlbnREZWZhdWx0KCk7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZURyb3AoZSkgeworICAgIGUu
c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpLmZpbGVzID0gZS5kYXRhVHJhbnNmZXIuZmlsZXM7Cit9
CisKK3ZhciBkcm9wdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Ryb3B0YXJnZXQn
KTsKK2Ryb3B0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBoYW5kbGVEcmFnT3Zl
ciwgZmFsc2UpOworZHJvcHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgaGFuZGxlRHJv
cCwgZmFsc2UpOworCitmdW5jdGlvbiBkb1Rlc3QoZmlsZUxpc3QpCit7CisgICAgLy8gVGhpcyBk
cm9wcyBmaWxlcyBvbiBhIGRpdiwgd2hpY2ggY29waWVzIHRoZW0gdG8gdGhlIGlucHV0IGVsZW1l
bnQsIHdob3NlCisgICAgLy8gY2FsbGJhY2sgY2FsbHMgbm90aWZ5RG9uZSgpLgorICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpLm9uY2hhbmdlID0gb25JbnB1dEZpbGVDaGFuZ2U7
CisgICAgdmFyIGZpID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIik7CisgICAgZXZl
bnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsnLi4vcmVzb3VyY2VzL3Rlc3QudHh0J10pOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRyb3B0YXJnZXQub2Zmc2V0TGVmdCArIDEwLCBk
cm9wdGFyZ2V0Lm9mZnNldFRvcCArIGRyb3B0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiBkb1N0cmluZ1Rlc3QoKQorewor
ICAgIHZhciBmaWxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpOworICAgIGZp
bGVzLmZpbGVzID0gImZvbyI7ICAvLyBTaG91bGRuJ3QgY3Jhc2guCisKKyAgICBmaWxlcy52YWx1
ZSA9ICJmb28iOyAgLy8gU2hvdWxkIGRvIG5vdGhpbmcuCisgICAgaWYgKGZpbGVzLmZpbGVzLmxl
bmd0aCA+IDApCisgICAgICAgIGxvZygiUEFTUzogd3JpdGluZyBub25lbXB0eSBzdHJpbmcgdG8g
dmFsdWUgaGFkIG5vIGVmZmVjdCIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMOiB3cml0
aW5nIG5vbmVtcHR5IHN0cmluZyB0byB2YWx1ZSBjbGVhcmVkIGVsZW1lbnRzIik7CisKKyAgICBm
aWxlcy52YWx1ZSA9ICIiOworICAgIGlmIChmaWxlcy5maWxlcy5sZW5ndGggPT09IDApCisgICAg
ICAgIGxvZygiUEFTUzogd3JpdGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUgY2xlYXJlZCBmaWxl
cyIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMOiB3cml0aW5nIGVtcHR5IHN0cmluZyB0
byB2YWx1ZSBkaWQgbm90IGNsZWFyIGZpbGVzIik7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgZG9UZXN0KCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144856</attachid>
            <date>2012-05-30 10:15:27 -0700</date>
            <delta_ts>2012-05-30 16:11:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87154-20120530101525.patch</filename>
            <type>text/plain</type>
            <size>10425</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4ZjEzNDIyMmE3M2Rl
MWRmMDA4MzEzYjJlOTE3M2FlZGU0Njk0My4uYjViMjgyZTg3MjAxMWU2NGYxM2UzNDYwOWY3NTdi
NmY1YTc4ZmIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTMwICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHRoZSBmaWxlcyBh
dHRyaWJ1dGUgb2YgSFRNTElucHV0RWxlbWVudCB3cml0YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxNTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aGF0d2cgdGhyZWFkOgorICAgICAgICBodHRw
Oi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAxMi1NYXkv
MDM2MTQwLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNl
cy5oOgorICAgICAgICAgICAgUmVtb3ZlIHJlYWRvbmx5IG9uIGZpbGVzIHByb3BlcnR5LgorICAg
ICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToK
KyAgICAgICAgICAgIEFkZCBhIE5VTEwgY2hlY2sgdG8gc2V0RmlsZXMoKS4KKyAgICAgICAgKiBo
dG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1dFR5cGUpOgorICAgICAgICAg
ICAgTGV0IHNldEZpbGVzKCkgb3ZlcndyaXRlIHRoZSBiYXNlICBjbGFzcydzIG1ldGhvZC4KKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAgICAgQWRkIHNldEZpbGVzKCkgaW1w
bGVtZW50YXRpb24sIGRlbGVnYXRlIHRvIGlucHV0IHR5cGUuCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c2V0RmlsZXMpOgorICAgICAgICAgICAgc2V0
RmlsZXMoKSBkb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5oOgorICAgICAgICAoSW5wdXRUeXBlKToKKyAgICAgICAgICAgIEFkZCBhIHZpcnR1YWwgc2V0
RmlsZXMoKSBtZXRob2QuCisKIDIwMTItMDUtMzAgIFBldGVyIFJ5YmluICA8cGV0ZXIucnliaW5A
Z21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc2FibGUgRXhhY3RseUludCBm
ZWF0dXJlIGluIEluc3BlY3RvclR5cGVCdWlsZGVyIHNpbmNlIGl0IGJyZWFrcyByZWxlYXNlIFdp
bmRvd3MgNyBXSzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVi
bGljRE9NSW50ZXJmYWNlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNE
T01JbnRlcmZhY2VzLmgKaW5kZXggOWQ2NTIxZTg0NGNjODA4NWM2YThhODlkNDg1ZGNhNDkyOTgy
NzViNy4uZGM3M2RkNGFiZDU4ODk0NjIxNzFhZGY2MmIzYzBkMjc4MmZhNTU1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKQEAg
LTYyMiw3ICs2MjIsNyBAQAogQHByb3BlcnR5IEJPT0wgYXV0b2ZvY3VzIEFWQUlMQUJMRV9JTl9X
RUJLSVRfVkVSU0lPTl80XzA7CiBAcHJvcGVydHkgQk9PTCBtdWx0aXBsZSBBVkFJTEFCTEVfSU5f
V0VCS0lUX1ZFUlNJT05fNF8wOwogQHByb3BlcnR5KHJlYWRvbmx5KSBCT09MIHdpbGxWYWxpZGF0
ZSBBVkFJTEFCTEVfSU5fV0VCS0lUX1ZFUlNJT05fNF8wOwotQHByb3BlcnR5KHJlYWRvbmx5LCBy
ZXRhaW4pIERPTUZpbGVMaXN0ICpmaWxlcyBBVkFJTEFCTEVfSU5fV0VCS0lUX1ZFUlNJT05fNF8w
OworQHByb3BlcnR5KHJldGFpbikgRE9NRmlsZUxpc3QgKmZpbGVzIEFWQUlMQUJMRV9JTl9XRUJL
SVRfVkVSU0lPTl80XzA7CiAtICh2b2lkKXNlbGVjdDsKIC0gKHZvaWQpY2xpY2s7CiAtICh2b2lk
KXNldFNlbGVjdGlvblJhbmdlOihpbnQpc3RhcnQgZW5kOihpbnQpZW5kIEFWQUlMQUJMRV9XRUJL
SVRfVkVSU0lPTl8zXzBfQU5EX0xBVEVSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggMmJhYzAzMDE1NjQ3N2Y0NGI4NTQ3Y2Q2YTkwYmVjMGQ2YzIyNDM4Ny4uNzJiNjc1
NjkxZDliNmYyZTU0YzNmZmNkN2RlNDk4MzcyNGY3YTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC0zMjAsNiArMzIwLDkgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAKIHZvaWQgRmlsZUlucHV0
VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiB7CisgICAgaWYgKCFm
aWxlcykKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0ID0gZWxlbWVudCgpOwogCiAgICAgYm9vbCBwYXRoc0NoYW5nZWQgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggMzFkMDliNGQxZjQzYWFlY2FkMmFjZTI2OGE0
OTVhNDU4ODY5NmNlZi4uMWY5ZmJjZTM5ZTg1ZGQzNDgyMTEyYjE4NWQxNDIxYzEwY2U2MjM4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2hhbmdlRnJvbUFub3RoZXJUeXBlKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgT1ZFUlJJREU7IC8vIENoZWNrZWQg
Zmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKQEAgLTc0LDcgKzc1LDYgQEAgcHJp
dmF0ZToKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIE9WRVJSSURFOwog
Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CiAgICAgUGFzc1JlZlB0
cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUlu
Zm8+JiBmaWxlcykgY29uc3Q7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgdm9p
ZCByZWNlaXZlRHJvcEZvckRpcmVjdG9yeVVwbG9hZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNDNkZTgxZmY5YzVl
ODIzZTM0Njk1NzdmOWI5NWY5YzNlMjQ4NjQxYy4uMDk3ODRiMTE1ZTg3MWU4YTcxYzhkYWQyNGM0
OGRhODhmNTFlY2JjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CkBAIC0xMjIwLDYgKzEyMjAsMTEgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVz
KCkKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKK3ZvaWQgSFRNTElucHV0
RWxlbWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit7CisgICAgbV9p
bnB1dFR5cGUtPnNldEZpbGVzKGZpbGVzKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpy
ZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiB7CiAg
ICAgbV9pbnB1dFR5cGUtPnJlY2VpdmVEcm9wcGVkRmlsZXMoZmlsZW5hbWVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZDYzYTgzY2JmMTExNzFiOTRmMzY5N2M5
YmVhZDhlZjljMTA4MDZiNy4uZTI4YjM0NDAxZGE5YWU3Y2VlMWFkYzI2MWYwMmQ5M2IyYTI1NjJm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIxMSw2ICsyMTEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wgPSB0cnVlKTsKIAogICAg
IEZpbGVMaXN0KiBmaWxlcygpOworICAgIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOwogICAgIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYp
OwogICAgIEljb24qIGljb24oKSBjb25zdDsKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIHVz
ZWQgZm9yIHJlbmRlcmluZyB0aGUgaW5wdXQgYWN0aXZlIGR1cmluZyBhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBjY2E0MDM2NWY2YzBkNTEzNTQ3OTE2MmZm
ZjViZjRhZjI5NDQ2ZTEwLi5lMzI2Y2U3YmUyNjFlMDgwMTMzNzkzYmEyYTY1MDg2NTkxYjA1YzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTMxLDcgKzMx
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBkaXJOYW1lOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOworICAgICAgICBhdHRyaWJ1dGUg
RmlsZUxpc3QgZmlsZXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJp
bmcgZm9ybUFjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgZm9ybUVuY3R5cGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAKaW5kZXggMzAxOGRjMTEyYWNhNDU5ZGIxOTQ5ZjM1OTM1ZWQ5OGI5NTg3ZGIxZS4uZTkxOTYw
ZDQwZWZmYWY5MTA1NTc4YzgzYjA2ZjdjM2M4N2M1NGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGVJbnB1dFR5cGUuaCIKKyNp
bmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTU3
Nyw2ICs1NzgsMTAgQEAgRmlsZUxpc3QqIElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiAw
OwogfQogCit2b2lkIElucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pCit7
Cit9CisKIGJvb2wgSW5wdXRUeXBlOjpnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKQogewog
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDllYjExOWNlMjkw
ZDZkNTQxNmNkNTRiYWVmYmE1MzcxNmE1ZTAzZDQuLjgzZWZiZGViZTk2NGVlNjBmOGFmZTczYjk2
NjQxZGJlNWQyNjVlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjI5LDYgKzIyOSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbE1vdmVUb05ld093bmVyRG9jdW1lbnQo
KTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAg
dmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFz
c1JlZlB0cjxGaWxlTGlzdD4pOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlRHJvcHBlZEZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29uc3Q7
CiAgICAgLy8gU2hvdWxkIHJldHVybiB0cnVlIGlmIHRoZSBjb3JyZXNwb25kaW5nIHJlbmRlcmVy
IGZvciBhIHR5cGUgY2FuIGRpc3BsYXkgYSBzdWdnZXN0ZWQgdmFsdWUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxl
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3ZDYwODZhOTE4MjYwM2Q0MDMzNmI4MWQzNDFl
MzdkNWY2ZjJlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmls
ZS9pbnB1dC1maWxlLXdyaXRlLWZpbGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rl
c3QgZHJvcHMgZmlsZXMgaGVyZQorCitQQVNTOiAxIGZpbGUgYWZ0ZXIgZHJhZworUEFTUzogd3Jp
dGluZyBub25lbXB0eSBzdHJpbmcgdG8gdmFsdWUgaGFkIG5vIGVmZmVjdAorUEFTUzogd3JpdGlu
ZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUgY2xlYXJlZCBmaWxlcworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1maWxlcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NjBjN2I4ZmQ3Njc3NWEyZjk4NGFlOGI2ZjczNzY5ZDRjZjQzYjU2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUt
ZmlsZXMuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkcm9wdGFyZ2V0Ij5UZXN0IGRyb3BzIGZpbGVzIGhlcmU8L2Rpdj4KKzxm
b3JtPgorPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGVzIiBpZD0iZmlsZXMiPgorPC9mb3Jt
PgorPHByZSBpZD0nb3V0cHV0Jz48L3ByZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNz
YWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlv
biBvbklucHV0RmlsZUNoYW5nZSgpCit7CisgICAgdmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImZpbGVzIikuZmlsZXM7CisgICAgaWYgKGZpbGVzLmxlbmd0aCAhPSAxKQorICAg
ICAgICBsb2coIkZBSUw6IEV4cGVjdGVkIDEgZmlsZSBhZnRlciBkcmFnLiIpCisgICAgZWxzZQor
ICAgICAgICBsb2coIlBBU1M6IDEgZmlsZSBhZnRlciBkcmFnIik7CisKKyAgICBkb1N0cmluZ1Rl
c3QoKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlRHJh
Z092ZXIoZSkgeworICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZS5wcmV2ZW50RGVmYXVs
dCgpOworfQorCitmdW5jdGlvbiBoYW5kbGVEcm9wKGUpIHsKKyAgICBlLnN0b3BQcm9wYWdhdGlv
bigpOworICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZmlsZXMiKS5maWxlcyA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzOworfQorCit2YXIgZHJvcHRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcm9wdGFyZ2V0Jyk7Citkcm9wdGFyZ2V0
LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgaGFuZGxlRHJhZ092ZXIsIGZhbHNlKTsKK2Ry
b3B0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIGhhbmRsZURyb3AsIGZhbHNlKTsKKwor
ZnVuY3Rpb24gZG9UZXN0KGZpbGVMaXN0KQoreworICAgIC8vIFRoaXMgZHJvcHMgZmlsZXMgb24g
YSBkaXYsIHdoaWNoIGNvcGllcyB0aGVtIHRvIHRoZSBpbnB1dCBlbGVtZW50LCB3aG9zZQorICAg
IC8vIGNhbGxiYWNrIGNhbGxzIG5vdGlmeURvbmUoKS4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmlsZXMiKS5vbmNoYW5nZSA9IG9uSW5wdXRGaWxlQ2hhbmdlOworICAgIHZhciBmaSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpOworICAgIGV2ZW50U2VuZGVyLmJlZ2lu
RHJhZ1dpdGhGaWxlcyhbJy4uL3Jlc291cmNlcy90ZXN0LnR4dCddKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhkcm9wdGFyZ2V0Lm9mZnNldExlZnQgKyAxMCwgZHJvcHRhcmdldC5vZmZz
ZXRUb3AgKyBkcm9wdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDIpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKK30KKworZnVuY3Rpb24gZG9TdHJpbmdUZXN0KCkKK3sKKyAgICB2YXIgZmlsZXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKTsKKyAgICBmaWxlcy5maWxlcyA9ICJm
b28iOyAgLy8gU2hvdWxkbid0IGNyYXNoLgorCisgICAgZmlsZXMudmFsdWUgPSAiZm9vIjsgIC8v
IFNob3VsZCBkbyBub3RoaW5nLgorICAgIGlmIChmaWxlcy5maWxlcy5sZW5ndGggPiAwKQorICAg
ICAgICBsb2coIlBBU1M6IHdyaXRpbmcgbm9uZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGhhZCBubyBl
ZmZlY3QiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTDogd3JpdGluZyBub25lbXB0eSBz
dHJpbmcgdG8gdmFsdWUgY2xlYXJlZCBlbGVtZW50cyIpOworCisgICAgZmlsZXMudmFsdWUgPSAi
IjsKKyAgICBpZiAoZmlsZXMuZmlsZXMubGVuZ3RoID09PSAwKQorICAgICAgICBsb2coIlBBU1M6
IHdyaXRpbmcgZW1wdHkgc3RyaW5nIHRvIHZhbHVlIGNsZWFyZWQgZmlsZXMiKTsKKyAgICBlbHNl
CisgICAgICAgIGxvZygiRkFJTDogd3JpdGluZyBlbXB0eSBzdHJpbmcgdG8gdmFsdWUgZGlkIG5v
dCBjbGVhciBmaWxlcyIpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgIGRvVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>