<?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>86129</bug_id>
          
          <creation_ts>2012-05-10 12:47:09 -0700</creation_ts>
          <short_desc>[BlackBerry] Enable the Fullscreen API</short_desc>
          <delta_ts>2012-11-02 12:38:57 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>CLOSED</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>0</everconfirmed>
          <reporter name="Max Feil">mfeil</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonathan.dong.webkit</cc>
    
    <cc>pnormand</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620877</commentid>
    <comment_count>0</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-10 12:47:09 -0700</bug_when>
    <thetext>This patch enables the new document-based Fullscreen API. The ENABLE(FULLSCREEN_API) is already enabled in the BlackBerry WebKit build. My patch turns fullscreen on in the page settings by default and implements the missing ChromeClientBlackBerry::{supports,enter,exit}FullScreenForElement() member functions.

The intent of this patch is to support certain web sites such as:
http://m.youtube.com/?tsp=1&amp;layout=tablet&amp;player=desktop
http://videojs.com
These web sites use Javascript to call webkitRequestFullScreen() on a div element.

It is also the intent of this patch to allow HTML5 video elements to use the Fullscreen API when webkitEnterFullScreen() is called on them and there is no native fullscreen widget. I am maintaining backward compatibility with the existing native fullscreen mechanism where the Browser chrome implements the entire fullscreen video widget. In order to be able to check this at runtime, I am plumbing through the existing &quot;fullScreenVideoCapable&quot; that QNXStageWebView has always been sending.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620948</commentid>
    <comment_count>1</comment_count>
      <attachid>141247</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-10 14:09:49 -0700</bug_when>
    <thetext>Created attachment 141247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620957</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 14:14:45 -0700</bug_when>
    <thetext>Attachment 141247 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/ChangeLog:54:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620974</commentid>
    <comment_count>3</comment_count>
      <attachid>141247</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-10 14:21:22 -0700</bug_when>
    <thetext>Comment on attachment 141247
Patch

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

&gt; Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp:724
&gt; +bool ChromeClientBlackBerry::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard)
&gt; +{
&gt; +    return !withKeyboard;
&gt; +}

Keep in mind that, with the latest W3C specification and the related APIs, keyboard access is always requested.  It is of course your port&apos;s prerogative, but with this in place this function will always return false when someone calls element-&gt;webkitRequestFullscreen(). (As opposed to element-&gt;webkitRequestFullScreen().)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620983</commentid>
    <comment_count>4</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-10 14:28:39 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Keep in mind that, with the latest W3C specification and the related APIs, keyboard access is always requested.  It is of course your port&apos;s prerogative, but with this in place this function will always return false when someone calls element-&gt;webkitRequestFullscreen(). (As opposed to element-&gt;webkitRequestFullScreen().)

I simply took that line from the Gtk port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620993</commentid>
    <comment_count>5</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-10 14:35:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 141247 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; Source/WebCore/ChangeLog:54:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
&gt; Total errors found: 1 in 8 files

Apparently in explaining why there are no new tests I&apos;m not allowed to use the phrase &quot;no new tests&quot;. So instead of saying &quot;There are no new tests because...&quot; I will say &quot;There are no new dog kennels because...&quot;. I had no idea Mr. Lambert was a WebKit contributor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621011</commentid>
    <comment_count>6</comment_count>
      <attachid>141265</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-10 14:43:26 -0700</bug_when>
    <thetext>Created attachment 141265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621015</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-10 14:44:53 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Keep in mind that, with the latest W3C specification and the related APIs, keyboard access is always requested.  It is of course your port&apos;s prerogative, but with this in place this function will always return false when someone calls element-&gt;webkitRequestFullscreen(). (As opposed to element-&gt;webkitRequestFullScreen().)
&gt; 
&gt; I simply took that line from the Gtk port.

The GTK port probably implemented that function before the new W3C APIs were added.  I&apos;m not saying you should change your port&apos;s behavior, but I just wanted to make you aware of it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621017</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-05-10 14:45:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Apparently in explaining why there are no new tests I&apos;m not allowed to use the phrase &quot;no new tests&quot;. So instead of saying &quot;There are no new tests because...&quot; I will say &quot;There are no new dog kennels because...&quot;. I had no idea Mr. Lambert was a WebKit contributor.

Or you could lose the snark and file a bug against the style checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621027</commentid>
    <comment_count>9</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-10 14:50:11 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Or you could lose the snark and file a bug against the style checker.

Sorry. My attempt at humour. Won&apos;t make sense to people not familiar with Monty Python. Look up &quot;Monty Python mattress&quot; on YouTube :)

The style checker is fine, by the way. My first patch picked up the wrong Changelogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621638</commentid>
    <comment_count>10</comment_count>
      <attachid>141265</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-11 07:34:04 -0700</bug_when>
    <thetext>Comment on attachment 141265
Patch

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

Looks good, can be improved some more.

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:128
&gt; +            element-&gt;exitFullscreen();

You could combine:
if (HTMLMediaElement* element = static_cast&lt;HTMLMediaElement*&gt;(m_webCorePlayer-&gt;mediaPlayerClient()))
  element-&gt;exitFullscreen();

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:129
&gt;      }

Is it possible to have a test for this or is an existing test covering it?

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6017
&gt; +    coreSettings-&gt;setFullScreenEnabled(true);

Do we want to turn it off at any time? Is it setting dependent?

&gt; Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp:740
&gt; +        // This is where we would hide the browser&apos;s chrome if we wanted to

Lacks period at end.

&gt; Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp:749
&gt; +        // The Browser chrome has its own fullscreen video widget

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp:753
&gt; +        // if hidden above

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621835</commentid>
    <comment_count>11</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-11 11:33:46 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; You could combine:
&gt; if (HTMLMediaElement* element = static_cast&lt;HTMLMediaElement*&gt;(m_webCorePlayer-&gt;mediaPlayerClient()))
&gt;   element-&gt;exitFullscreen();

I took your suggestion and made this minor change for my next patch.

&gt; &gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:129
&gt; &gt;      }
&gt; 
&gt; Is it possible to have a test for this or is an existing test covering it?

This is just a null pointer check to avoid a seg fault upon Browser shutdown. I don&apos;t think most null pointer checks need a Layout test.

&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:6017
&gt; &gt; +    coreSettings-&gt;setFullScreenEnabled(true);
&gt; 
&gt; Do we want to turn it off at any time? Is it setting dependent?

It is not setting dependent. I can&apos;t think of a reason to ever disable fullscreen elements in a document. The web page can disallow fullscreen per frame/iframe, as per the Fullscreen API spec.

&gt; Lacks period at end.

I fixed the missing periods at the end of my single sentence comments. Will be in my next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621926</commentid>
    <comment_count>12</comment_count>
      <attachid>141483</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-11 13:25:17 -0700</bug_when>
    <thetext>Created attachment 141483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622346</commentid>
    <comment_count>13</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-12 08:15:23 -0700</bug_when>
    <thetext>
&gt; &gt; Is it possible to have a test for this or is an existing test covering it?
&gt; 
&gt; This is just a null pointer check to avoid a seg fault upon Browser shutdown. I don&apos;t think most null pointer checks need a Layout test.

That is an invalid assumption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622359</commentid>
    <comment_count>14</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-12 08:45:46 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; This is just a null pointer check to avoid a seg fault upon Browser shutdown. I don&apos;t think most null pointer checks need a Layout test.
&gt; 
&gt; That is an invalid assumption.

Can you give more details, Antonio? There are many thousands of null pointer checks in WebKit code. For example, lines like this are extremely common:

if (!page() || !page()-&gt;settings()-&gt;fullScreenEnabled())
    break;

Often there are multiple tests per line. Null checks can be considered a good, preventive coding practice. Are you saying that each individual null check needs its own layout test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622449</commentid>
    <comment_count>15</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-12 19:39:51 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; This is just a null pointer check to avoid a seg fault upon Browser shutdown. I don&apos;t think most null pointer checks need a Layout test.
&gt; &gt; 
&gt; &gt; That is an invalid assumption.
&gt; 
&gt; Can you give more details, Antonio? There are many thousands of null pointer checks in WebKit code. For example, lines like this are extremely common:
&gt; 
&gt; if (!page() || !page()-&gt;settings()-&gt;fullScreenEnabled())
&gt;     break;
&gt; 
&gt; Often there are multiple tests per line. Null checks can be considered a good, preventive coding practice. Are you saying that each individual null check needs its own layout test?

Many existing null-checks came with layout tests, that is what I am saying. If you are fixing a crash with a null check, you can in many cases test it.

Shutdown is a particular situation where null-checks can be more easily accepted without a test.

Otherwise, the author has to say why it is not possible to come up with a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623540</commentid>
    <comment_count>16</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-14 18:23:07 -0700</bug_when>
    <thetext>Since this is a shutdown case, can this particular null check be r+&apos;d without a test? I am trying to get this bug committed so that other related problems can be filed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624049</commentid>
    <comment_count>17</comment_count>
      <attachid>141483</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-15 07:13:51 -0700</bug_when>
    <thetext>Comment on attachment 141483
Patch

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

We sure can review it. I have a question, a suggestion and a nitpick :)

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:127
&gt;      if (isFullscreen()) {
&gt; -        HTMLMediaElement* element = static_cast&lt;HTMLMediaElement*&gt;(m_webCorePlayer-&gt;mediaPlayerClient());
&gt; -        element-&gt;exitFullscreen();
&gt; +        if (HTMLMediaElement* element = static_cast&lt;HTMLMediaElement*&gt;(m_webCorePlayer-&gt;mediaPlayerClient()))
&gt; +            element-&gt;exitFullscreen();

I still think it would have to be done on a separate patch. Jer?

&gt; Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp:724
&gt; +#if ENABLE(FULLSCREEN_API)
&gt; +bool ChromeClientBlackBerry::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard)
&gt; +{
&gt; +    return !withKeyboard;
&gt; +}

I reviewed a patch for the EFL port implementation of FULLSCREEN and they are simply ignoring this &apos;withKeyboard&apos; parameter, and making use of &apos;element&apos; for everything.

could you explain me the difference, Max?

&gt; Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.h:130
&gt; +    virtual bool supportsFullScreenForElement(const Element*, bool);

we could name this bool parameter, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624155</commentid>
    <comment_count>18</comment_count>
      <attachid>141483</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-05-15 08:57:42 -0700</bug_when>
    <thetext>Comment on attachment 141483
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:127
&gt;&gt;  MediaPlayerPrivate::~MediaPlayerPrivate()
&gt;&gt;  {
&gt;&gt;      if (isFullscreen()) {
&gt;&gt; -        HTMLMediaElement* element = static_cast&lt;HTMLMediaElement*&gt;(m_webCorePlayer-&gt;mediaPlayerClient());
&gt;&gt; -        element-&gt;exitFullscreen();
&gt;&gt; +        if (HTMLMediaElement* element = static_cast&lt;HTMLMediaElement*&gt;(m_webCorePlayer-&gt;mediaPlayerClient()))
&gt;&gt; +            element-&gt;exitFullscreen();
&gt; 
&gt; I still think it would have to be done on a separate patch. Jer?

I agree.  A testcase would be helpful as well.  Also, I realize this code was already here, but since you&apos;re in here... :)

If you need to pass a message up to the HTMLMediaElement, Instead of casting the client pointer to an HTMLMediaElement, you should define a new pure virtual function of MediaPlayerClient, like:

virtual void mediaPlayerExitFullscreen() = 0;

...And override it in HTMLMediaElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624237</commentid>
    <comment_count>19</comment_count>
      <attachid>141994</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-15 10:30:53 -0700</bug_when>
    <thetext>Created attachment 141994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624243</commentid>
    <comment_count>20</comment_count>
      <attachid>141994</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-15 10:32:05 -0700</bug_when>
    <thetext>Comment on attachment 141994
Patch

I have separated out the WebCore change into https://bugs.webkit.org/show_bug.cgi?id=86494

Hopefully there is nothing preventing this patch from getting an r+ now :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624254</commentid>
    <comment_count>21</comment_count>
      <attachid>142000</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-15 10:41:56 -0700</bug_when>
    <thetext>Created attachment 142000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624255</commentid>
    <comment_count>22</comment_count>
      <attachid>142000</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-15 10:42:38 -0700</bug_when>
    <thetext>Comment on attachment 142000
Patch

Included Antonio&apos;s nit pick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624261</commentid>
    <comment_count>23</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-15 10:50:12 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; I still think it would have to be done on a separate patch. Jer?

Separate bug created: https://bugs.webkit.org/show_bug.cgi?id=86494

&gt; I reviewed a patch for the EFL port implementation of FULLSCREEN and they are simply ignoring this &apos;withKeyboard&apos; parameter, and making use of &apos;element&apos; for everything.
&gt; 
&gt; could you explain me the difference, Max?

As far as I know, this just restricts support of fullscreen elements to cases not requiring keyboard input. It also matches the current code in the EFL and GTK ports. As pointed out by Jer in comment #3, this is changing soon so I will revisit this as needed.

&gt; we could name this bool parameter, I think.

Done in latest patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624523</commentid>
    <comment_count>24</comment_count>
      <attachid>142000</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-15 13:54:31 -0700</bug_when>
    <thetext>Comment on attachment 142000
Patch

Clearing flags on attachment: 142000

Committed r117148: &lt;http://trac.webkit.org/changeset/117148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624524</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-15 13:54:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624546</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-15 14:14:24 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; All reviewed patches have been landed.  Closing bug.

Seems like this patch broke GTK,

#0  0x00007f9928b55f60 in WebCore::Frame::settings() const () from /home/slave/webkitgtk/gtk-linux-64-release/build/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#0  0x00007f9928b55f60 in WebCore::Frame::settings() const () from /home/slave/webkitgtk/gtk-linux-64-release/build/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#1  0x00007f99287aeeb1 in WebCore::DOMImplementation::createDocument(WTF::String const&amp;, WebCore::Frame*, WebCore::KURL const&amp;, bool) () from /home/slave/webkitgtk/gtk-linux-64-release/build/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#2  0x00007f9928f9c185 in WebCore::DOMParser::parseFromString(WTF::String const&amp;, WTF::String const&amp;) () from /home/slave/webkitgtk/gtk-linux-64-release/build/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0
#3  0x00007f99290dda46 in WebCore::jsDOMParserPrototypeFunctionParseFromString(JSC::ExecState*) () from /home/slave/webkitgtk/gtk-linux-64-release/build/WebKitBuild/Release/.libs/libwebkitgtk-3.0.so.0

I&apos;ll provide more details once the Debug bot builds this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624575</commentid>
    <comment_count>27</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-15 14:32:16 -0700</bug_when>
    <thetext>Hum sorry for the noise, I guess this patch is not the culprit, really being Blackberry-specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757473</commentid>
    <comment_count>28</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-11-02 12:38:57 -0700</bug_when>
    <thetext>Closing bug for patch that landed a long time ago.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141247</attachid>
            <date>2012-05-10 14:09:49 -0700</date>
            <delta_ts>2012-05-10 14:43:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86129-20120510170948.patch</filename>
            <type>text/plain</type>
            <size>13921</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMxYWIxNzkyYzk3N2Vm
MzViZWM5Mjc1ZTkwYTAxMzIzYjMzZGM1ZS4uN2I1NzllMzg3M2MyYjkxYjg3Y2RmNDQ4ZTdlODBj
YzZlMGE0NDc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTEwICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
OgorCisgICAgICAgIDIwMTItMDUtMDkgIE1heCBGZWlsICA8bWZlaWxAcmltLmNvbT4KKworICAg
ICAgICAgICAgICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgbmV3IGRvY3VtZW50LWJhc2VkIEZ1
bGxzY3JlZW4gQVBJLgorICAgICAgICAgICAgICAgIFRoZSBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
IGlzIGFscmVhZHkgZW5hYmxlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICBCbGFja0JlcnJ5IFdl
YktpdCBidWlsZC4gTXkgcGF0Y2ggdHVybnMgZnVsbHNjcmVlbiBvbgorICAgICAgICAgICAgICAg
IGluIHRoZSBwYWdlIHNldHRpbmdzIGJ5IGRlZmF1bHQgYW5kIGltcGxlbWVudHMgdGhlIG1pc3Np
bmcKKyAgICAgICAgICAgICAgICBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp7c3VwcG9ydHMsZW50
ZXIsZXhpdH1GdWxsU2NyZWVuRm9yRWxlbWVudCgpCisgICAgICAgICAgICAgICAgbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgICAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmRpZENoYW5nZVNldHRpbmdzKToKKyAg
ICAgICAgICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6
OnN0YW5kYXJkU2V0dGluZ3MpOgorICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlNldHRpbmdzOjpmdWxsU2NyZWVuVmlkZW9DYXBhYmxlKToKKyAgICAgICAgICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RnVsbFNjcmVlblZpZGVvQ2FwYWJs
ZSk6CisgICAgICAgICAgICAgICAgKiBBcGkvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgICAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQpOgorICAgICAgICAgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5
OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAgICAgICAgIChDaHJvbWVD
bGllbnRCbGFja0JlcnJ5KToKKworICAgICAgICBTb3VyY2UvV2ViQ29yZToKKworICAgICAgICAy
MDEyLTA1LTA5ICBNYXggRmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgICAgICAgICBJ
IGFtIHBsdW1iaW5nIHRocm91Z2ggdGhlIGV4aXN0aW5nICJmdWxsU2NyZWVuVmlkZW9DYXBhYmxl
IgorICAgICAgICAgICAgICAgIHRoYXQgUU5YU3RhZ2VXZWJWaWV3IGhhcyBhbHdheXMgYmVlbiBz
ZW5kaW5nIHRvIGFsbG93IHRoZQorICAgICAgICAgICAgICAgIHByZXNlbmNlIG9mIGEgbmF0aXZl
IGZ1bGxzY3JlZW4gdmlkZW8gcGxheWVyIHRvIGJlIGNoZWNrZWQuCisKKyAgICAgICAgICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAgICAgICAgIE5vIG5ldyB0
ZXN0cy4gVGVzdCBjb3ZlcmFnZSBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaXMgYWxyZWFkeQorICAg
ICAgICAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBwYXRjaCBpcyBzaW1wbHkgdHVybmluZyBpdCBv
biBpbiB0aGUgQmxhY2tCZXJyeQorICAgICAgICAgICAgICAgIHBvcnQuCisKKyAgICAgICAgICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxh
Y2tCZXJyeS5jcHA6CisgICAgICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6CisKKyAgICAgICAgW0JsYWNrQmVycnldIEVuYWJsZSB0
aGUgRnVsbHNjcmVlbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKToKKwog
MjAxMi0wNS0xMCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IEZpeCBNZWRpYUhpbnRzIHBhcnNpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IGFmMDhkNzZhZWJhZjY3ZDc4ZmNlNjk5MzQ4NzIzZjNlYzI2
N2IxNmEuLjY2ZWI2MDdhZDVkYzEzNmEwODk3YWI2N2YxMGRjNWMzNTVkZTI3NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTA1LTEwICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
OgorCisgICAgICAgIDIwMTItMDUtMDkgIE1heCBGZWlsICA8bWZlaWxAcmltLmNvbT4KKworICAg
ICAgICAgICAgICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgbmV3IGRvY3VtZW50LWJhc2VkIEZ1
bGxzY3JlZW4gQVBJLgorICAgICAgICAgICAgICAgIFRoZSBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
IGlzIGFscmVhZHkgZW5hYmxlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICBCbGFja0JlcnJ5IFdl
YktpdCBidWlsZC4gTXkgcGF0Y2ggdHVybnMgZnVsbHNjcmVlbiBvbgorICAgICAgICAgICAgICAg
IGluIHRoZSBwYWdlIHNldHRpbmdzIGJ5IGRlZmF1bHQgYW5kIGltcGxlbWVudHMgdGhlIG1pc3Np
bmcKKyAgICAgICAgICAgICAgICBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp7c3VwcG9ydHMsZW50
ZXIsZXhpdH1GdWxsU2NyZWVuRm9yRWxlbWVudCgpCisgICAgICAgICAgICAgICAgbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgICAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmRpZENoYW5nZVNldHRpbmdzKToKKyAg
ICAgICAgICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6
OnN0YW5kYXJkU2V0dGluZ3MpOgorICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlNldHRpbmdzOjpmdWxsU2NyZWVuVmlkZW9DYXBhYmxlKToKKyAgICAgICAgICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RnVsbFNjcmVlblZpZGVvQ2FwYWJs
ZSk6CisgICAgICAgICAgICAgICAgKiBBcGkvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgICAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQpOgorICAgICAgICAgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5
OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAgICAgICAgIChDaHJvbWVD
bGllbnRCbGFja0JlcnJ5KToKKworICAgICAgICBTb3VyY2UvV2ViQ29yZToKKworICAgICAgICAy
MDEyLTA1LTA5ICBNYXggRmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgICAgICAgICBJ
IGFtIHBsdW1iaW5nIHRocm91Z2ggdGhlIGV4aXN0aW5nICJmdWxsU2NyZWVuVmlkZW9DYXBhYmxl
IgorICAgICAgICAgICAgICAgIHRoYXQgUU5YU3RhZ2VXZWJWaWV3IGhhcyBhbHdheXMgYmVlbiBz
ZW5kaW5nIHRvIGFsbG93IHRoZQorICAgICAgICAgICAgICAgIHByZXNlbmNlIG9mIGEgbmF0aXZl
IGZ1bGxzY3JlZW4gdmlkZW8gcGxheWVyIHRvIGJlIGNoZWNrZWQuCisKKyAgICAgICAgICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAgICAgICAgIE5vIG5ldyB0
ZXN0cy4gVGVzdCBjb3ZlcmFnZSBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaXMgYWxyZWFkeQorICAg
ICAgICAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBwYXRjaCBpcyBzaW1wbHkgdHVybmluZyBpdCBv
biBpbiB0aGUgQmxhY2tCZXJyeQorICAgICAgICAgICAgICAgIHBvcnQuCisKKyAgICAgICAgICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxh
Y2tCZXJyeS5jcHA6CisgICAgICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6CisKKyAgICAgICAgW0JsYWNrQmVycnldIEVuYWJsZSB0
aGUgRnVsbHNjcmVlbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlOjpkaWRDaGFuZ2VTZXR0aW5ncyk6CisgICAgICAgICogQXBpL1dlYlNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlNldHRpbmdzOjpzdGFuZGFyZFNldHRpbmdzKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViU2V0dGluZ3M6OmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RnVsbFNjcmVlblZpZGVvQ2FwYWJs
ZSk6CisgICAgICAgICogQXBpL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRC
bGFja0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEJs
YWNrQmVycnkpOgorCiAyMDEyLTA1LTEwICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+
CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFzc2VydGlvbnMgYW5kIGFzc3VtcHRpb25zIGluIEJh
Y2tpbmdTdG9yZUNsaWVudCBhcm91bmQgbV9mcmFtZSBhbmQgbV9mcmFtZS0+dmlldygpIGFyZSBp
bnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5
LmNwcAppbmRleCAzMGRlMGQzZjdkY2U0ODc4MzRlNzQ3NTBlMWUyYjAyZmNjNjllYTY2Li5lNDI1
MjA0ZWJjYzg1ZTAyYTkxZWY2ZDVkOGVhZTgyNTkzNDM4NGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJs
YWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTEyNCw3ICsxMjQsOCBA
QCBNZWRpYVBsYXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUoKQogewogICAgIGlmIChp
c0Z1bGxzY3JlZW4oKSkgewogICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG1fd2ViQ29yZVBsYXllci0+bWVkaWFQbGF5ZXJD
bGllbnQoKSk7Ci0gICAgICAgIGVsZW1lbnQtPmV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIGlm
IChlbGVtZW50KQorICAgICAgICAgICAgZWxlbWVudC0+ZXhpdEZ1bGxzY3JlZW4oKTsKICAgICB9
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFJlbW92ZSBtZWRpYSBw
bGF5ZXIgZnJvbSBwbGF0Zm9ybSBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuY3BwCmluZGV4IGIxMjU1ZDFiYTJhODk4YTVhYjBiNjQzYjM2MDNkOTlhYmEyMzVjMTAu
LjgwMGUwOTI2ODk5M2FlZGU3MTdjYWJmZTlmMzY4YTQyMmZlMTA0MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMTIzLDcgKzEyMyw2IEBACiAjaW5jbHVk
ZSAicnVudGltZV9yb290LmgiCiAKICNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIgogI2VuZGlmCkBAIC02MDEzLDYgKzYwMTIsMTEgQEAg
dm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZGlkQ2hhbmdlU2V0dGluZ3MoV2ViU2V0dGluZ3MqIHdlYlNl
dHRpbmdzKQogICAgIFdlYlNvY2tldDo6c2V0SXNBdmFpbGFibGUod2ViU2V0dGluZ3MtPmFyZVdl
YlNvY2tldHNFbmFibGVkKCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CisgICAgLy8gVGhpcyBhbGxvd3MgSmF2YXNjcmlwdCB0byBjYWxsIHdlYmtpdFJlcXVlc3RGdWxs
U2NyZWVuKCkgb24gYW4gZWxlbWVudC4KKyAgICBjb3JlU2V0dGluZ3MtPnNldEZ1bGxTY3JlZW5F
bmFibGVkKHRydWUpOworI2VuZGlmCisKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVGTE9XKQogICAg
IGNvcmVTZXR0aW5ncy0+c2V0VGV4dFJlZmxvd0VuYWJsZWQod2ViU2V0dGluZ3MtPnRleHRSZWZs
b3dNb2RlKCkgPT0gV2ViU2V0dGluZ3M6OlRleHRSZWZsb3dFbmFibGVkKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcAppbmRleCBhOTk2N2U5
YWQ5YThhZGVmZTdhNWJkYjAzM2Y1NDc5NzI4MmMyMDRhLi45N2NhMTFhOWU4NWFhMDgyNTc2OGI4
YTM5NWZlMjAxZmIzZmY5MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlNldHRpbmdzLmNwcApAQCAtNTQsNiArNTQsNyBAQCBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgQmxhY2tCZXJyeVVzZXJBZ2VudFN0cmluZywgKCJCbGFja0JlcnJ5VXNlckFnZW50U3RyaQog
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVycnlVc2VyU2NhbGFibGVFbmFibGVk
LCAoIkJsYWNrQmVycnlVc2VyU2NhbGFibGVFbmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIEJsYWNrQmVycnlWaWV3cG9ydFdpZHRoLCAoIkJsYWNrQmVycnlWaWV3cG9ydFdp
ZHRoIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVycnlab29tVG9GaXRP
bkxvYWRFbmFibGVkLCAoIkJsYWNrQmVycnlab29tVG9GaXRPbkxvYWRFbmFibGVkIikpOworREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBhYmxl
LCAoIkJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBhYmxlIikpOwogREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgKCJTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgV2ViS2l0RGF0YWJhc2VQ
YXRoLCAoIldlYktpdERhdGFiYXNlUGF0aCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBXZWJLaXREYXRhYmFzZXNFbmFibGVkLCAoIldlYktpdERhdGFiYXNlc0VuYWJsZWQiKSk7CkBA
IC0xNjIsNiArMTYzLDcgQEAgV2ViU2V0dGluZ3MqIFdlYlNldHRpbmdzOjpzdGFuZGFyZFNldHRp
bmdzKCkKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlVc2VX
ZWJLaXRDYWNoZSwgdHJ1ZSk7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihC
bGFja0JlcnJ5VXNlclNjYWxhYmxlRW5hYmxlZCwgdHJ1ZSk7CiAgICAgc2V0dGluZ3MtPm1fcHJp
dmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5Wm9vbVRvRml0T25Mb2FkRW5hYmxlZCwgdHJ1ZSk7
CisgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5RnVsbFNjcmVl
blZpZGVvQ2FwYWJsZSwgZmFsc2UpOwogCiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0SW50
ZWdlcihXZWJLaXREZWZhdWx0Rm9udFNpemUsIDE2KTsKICAgICBzZXR0aW5ncy0+bV9wcml2YXRl
LT5zZXRJbnRlZ2VyKFdlYktpdERlZmF1bHRGaXhlZEZvbnRTaXplLCAxMyk7CkBAIC03NTMsNSAr
NzU1LDE1IEBAIHZvaWQgV2ViU2V0dGluZ3M6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChi
b29sIGVuYWJsZSkKICAgICBtX3ByaXZhdGUtPnNldEJvb2xlYW4oU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkLCBlbmFibGUpOwogfQogCitib29sIFdlYlNldHRpbmdzOjpmdWxsU2NyZWVuVmlkZW9D
YXBhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5nZXRCb29sZWFuKEJsYWNr
QmVycnlGdWxsU2NyZWVuVmlkZW9DYXBhYmxlKTsKK30KKwordm9pZCBXZWJTZXR0aW5nczo6c2V0
RnVsbFNjcmVlblZpZGVvQ2FwYWJsZShib29sIGVuYWJsZSkKK3sKKyAgICBtX3ByaXZhdGUtPnNl
dEJvb2xlYW4oQmxhY2tCZXJyeUZ1bGxTY3JlZW5WaWRlb0NhcGFibGUsIGVuYWJsZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5oCmluZGV4IDVhMjMzNmZmY2Y4YjFm
ZGI3ZTczM2Q2ZDNlZTlhM2YwNzRkM2QxZDMuLjRjMTg0YjVjMzkwMzBlZTgxNGNmNWI3OWQyYmEy
ZWRjZGU1ZTQ1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdz
LmgKQEAgLTIyMCw2ICsyMjAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
KGJvb2wpOwogCisgICAgYm9vbCBmdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgY29uc3Q7CisgICAg
dm9pZCBzZXRGdWxsU2NyZWVuVmlkZW9DYXBhYmxlKGJvb2wpOworCiBwcml2YXRlOgogICAgIFdl
YlNldHRpbmdzUHJpdmF0ZSogbV9wcml2YXRlOwogICAgIFdlYlNldHRpbmdzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZGY4OWFhNTJhNzZiYmMyOGMyODllYTVm
NTgwYTFkMTFjNmQ4YWQzMi4uZjYxMTQzMTY3ODZmYmE2Y2VhYTkzY2ZmOTU4ZjUzNTMzZGM4NDQx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNzE3LDYgKzcxNyw0
NSBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShO
b2RlKiBub2RlKQogICAgIG1fd2ViUGFnZVByaXZhdGUtPmV4aXRGdWxsc2NyZWVuRm9yTm9kZShu
b2RlKTsKIH0KIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK2Jvb2wgQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpF
bGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKK3sKKyAgICByZXR1cm4gIXdpdGhL
ZXlib2FyZDsKK30KKwordm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7
CisgICAgaWYgKHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCkgJiYgbV93ZWJQYWdl
UHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpKSB7CisgICAg
ICAgIC8vIFRoZSBCcm93c2VyIGNocm9tZSBoYXMgaXRzIG93biBmdWxsc2NyZWVuIHZpZGVvIHdp
ZGdldCBpdCB3YW50cyB0bworICAgICAgICAvLyB1c2UsIGFuZCB0aGlzIGlzIGEgdmlkZW8gZWxl
bWVudC4gVGhlIG9ubHkgcmVhc29uIHRoYXQKKyAgICAgICAgLy8gd2Via2l0V2lsbEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoKSBhbmQKKyAgICAgICAgLy8gd2Via2l0RGlkRW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudCgpIGFyZSBzdGlsbCBjYWxsZWQgaW4gdGhpcyBjYXNlCisgICAgICAgIC8v
IGlzIHNvIHRoYXQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KCkgZ2V0cyBjYWxsZWQgbGF0ZXIu
CisgICAgICAgIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gTm8gZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQgaGFzIGJlZW4gbWFkZSBhdmFp
bGFibGUgYnkgdGhlIEJyb3dzZXIKKyAgICAgICAgLy8gY2hyb21lLCBvciB0aGlzIGlzIG5vdCBh
IHZpZGVvIGVsZW1lbnQuIFRoZSB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbgorICAgICAgICAvLyBK
YXZhc2NyaXB0IGNhbGwgaXMgb2Z0ZW4gbWFkZSBvbiBhIGRpdiBlbGVtZW50LgorICAgICAgICAv
LyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxkIGhpZGUgdGhlIGJyb3dzZXIncyBjaHJvbWUgaWYgd2Ug
d2FudGVkIHRvCisgICAgfQorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1l
bnQpCit7CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBpZiAoc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShl
bGVtZW50KSAmJiBtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlk
ZW9DYXBhYmxlKCkpIHsKKyAgICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3du
IGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0CisgICAgICAgIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShl
bGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxk
IHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKKyAgICAgICAgLy8gaWYgaGlkZGVuIGFib3Zl
CisgICAgfQorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdFQkdMKQogdm9p
ZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0V2ViR0xQZXJtaXNzaW9uKEZyYW1lKiBm
cmFtZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IDkwNGM0MTg3YjUw
MjlhZDlhNWM3NjdhY2U0M2YwOGIyMGU5NGMyNTcuLjNhN2RiMTVmZmY0YzJkOTQ2Yjg3MGExYWM4
ZDY1NGUzYWRkMDY5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaApAQCAtMTI2
LDYgKzEyNiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVl
bkZvck5vZGUoY29uc3QgTm9kZSopOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5G
b3JOb2RlKE5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5v
ZGUqKTsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wpOworICAgIHZpcnR1
YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKTsKKyNlbmRpZgogI2lmIEVO
QUJMRShXRUJHTCkKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFdlYkdMUGVybWlzc2lvbihGcmFt
ZSopOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141265</attachid>
            <date>2012-05-10 14:43:26 -0700</date>
            <delta_ts>2012-05-11 13:25:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86129-20120510174324.patch</filename>
            <type>text/plain</type>
            <size>10605</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmMxYWIxNzkyYzk3N2Vm
MzViZWM5Mjc1ZTkwYTAxMzIzYjMzZGM1ZS4uMTdjNjQ5ODA3ZThhZjdlNWZmMTcxNzNhZTM4NTg5
ZDU2NmM1MGMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA1LTEwICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEVuYWJsZSB0aGUg
RnVsbHNjcmVlbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIG1haW4gY2hhbmdlcyBmb3IgdGhpcyBwYXRjaCBhcmUgYWxsIHVuZGVyCisgICAg
ICAgIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS4gVGhlIG9ubHkgY2hhbmdlIGluIFdlYkNvcmUg
aXMgYSBudWxsCisgICAgICAgIHBvaW50ZXIgY2hlY2sgdG8gZml4IGEgZnVsbHNjcmVlbiByZWxh
dGVkIHNlZyBmYXVsdCBJIGVuY291bnRlcmVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVz
dCBjb3ZlcmFnZSBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaXMgYWxyZWFkeQorICAgICAgICBhdmFp
bGFibGUuIFRoaXMgcGF0Y2ggaXMgc2ltcGx5IHR1cm5pbmcgaXQgb24gaW4gdGhlIEJsYWNrQmVy
cnkKKyAgICAgICAgcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUpOgorCiAyMDEyLTA1LTEwICBU
b21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3Ry
ZWFtIEFQSTogRml4IE1lZGlhSGludHMgcGFyc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cKaW5kZXggYWYwOGQ3NmFlYmFmNjdkNzhmY2U2OTkzNDg3MjNmM2VjMjY3YjE2YS4uMjg2Y2E4
YTQzOGUxNjgyMDM5ZWE5YmIwY2NiYWEwNzY2NmQ4NTlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDUtMTAgIE1heCBGZWlsICA8bWZlaWxA
cmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIHRoZSBGdWxsc2NyZWVuIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGVuYWJsZXMgdGhlIG5ldyBkb2N1bWVudC1iYXNlZCBGdWxsc2NyZWVuIEFQSS4KKyAgICAg
ICAgVGhlIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgaXMgYWxyZWFkeSBlbmFibGVkIGluIHRoZQor
ICAgICAgICBCbGFja0JlcnJ5IFdlYktpdCBidWlsZC4gTXkgcGF0Y2ggdHVybnMgZnVsbHNjcmVl
biBvbgorICAgICAgICBpbiB0aGUgcGFnZSBzZXR0aW5ncyBieSBkZWZhdWx0IGFuZCBpbXBsZW1l
bnRzIHRoZSBtaXNzaW5nCisgICAgICAgIENocm9tZUNsaWVudEJsYWNrQmVycnk6OntzdXBwb3J0
cyxlbnRlcixleGl0fUZ1bGxTY3JlZW5Gb3JFbGVtZW50KCkKKyAgICAgICAgbWVtYmVyIGZ1bmN0
aW9ucy4gSSBhbSBhbHNvIHBsdW1iaW5nIHRocm91Z2ggdGhlIGV4aXN0aW5nCisgICAgICAgICJm
dWxsU2NyZWVuVmlkZW9DYXBhYmxlIiB0aGF0IFFOWFN0YWdlV2ViVmlldyBoYXMgYWx3YXlzIGJl
ZW4KKyAgICAgICAgc2VuZGluZyB0byBhbGxvdyB0aGUgcHJlc2VuY2Ugb2YgYSBuYXRpdmUgZnVs
bHNjcmVlbiB2aWRlbyBwbGF5ZXIKKyAgICAgICAgdG8gYmUgY2hlY2tlZC4KKworICAgICAgICAq
IEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVBy
aXZhdGU6OmRpZENoYW5nZVNldHRpbmdzKToKKyAgICAgICAgKiBBcGkvV2ViU2V0dGluZ3MuY3Bw
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0
dGluZ3M6OnN0YW5kYXJkU2V0dGluZ3MpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJTZXR0aW5nczo6ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSk6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlNldHRpbmdzOjpzZXRGdWxsU2NyZWVuVmlkZW9DYXBhYmxlKToKKyAgICAg
ICAgKiBBcGkvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50QmxhY2tCZXJyeSk6
CisKIDIwMTItMDUtMTAgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAg
ICBbQmxhY2tCZXJyeV0gQXNzZXJ0aW9ucyBhbmQgYXNzdW1wdGlvbnMgaW4gQmFja2luZ1N0b3Jl
Q2xpZW50IGFyb3VuZCBtX2ZyYW1lIGFuZCBtX2ZyYW1lLT52aWV3KCkgYXJlIGludmFsaWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4
IDMwZGUwZDNmN2RjZTQ4NzgzNGU3NDc1MGUxZTJiMDJmY2M2OWVhNjYuLmU0MjUyMDRlYmNjODVl
MDJhOTFlZjZkNWQ4ZWFlODI1OTM0Mzg0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcApAQCAtMTI0LDcgKzEyNCw4IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSgpCiB7CiAgICAgaWYgKGlzRnVsbHNjcmVl
bigpKSB7CiAgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MTWVkaWFFbGVtZW50Kj4obV93ZWJDb3JlUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKTsK
LSAgICAgICAgZWxlbWVudC0+ZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgaWYgKGVsZW1lbnQp
CisgICAgICAgICAgICBlbGVtZW50LT5leGl0RnVsbHNjcmVlbigpOwogICAgIH0KICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gUmVtb3ZlIG1lZGlhIHBsYXllciBmcm9t
IHBsYXRmb3JtIGxheWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAK
aW5kZXggYjEyNTVkMWJhMmE4OThhNWFiMGI2NDNiMzYwM2Q5OWFiYTIzNWMxMC4uODAwZTA5MjY4
OTkzYWVkZTcxN2NhYmZlOWYzNjhhNDIyZmUxMDQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0xMjMsNyArMTIzLDYgQEAKICNpbmNsdWRlICJydW50aW1l
X3Jvb3QuaCIKIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVCbGFja0JlcnJ5LmgiCiAjZW5kaWYKQEAgLTYwMTMsNiArNjAxMiwxMSBAQCB2b2lkIFdlYlBh
Z2VQcml2YXRlOjpkaWRDaGFuZ2VTZXR0aW5ncyhXZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MpCiAg
ICAgV2ViU29ja2V0OjpzZXRJc0F2YWlsYWJsZSh3ZWJTZXR0aW5ncy0+YXJlV2ViU29ja2V0c0Vu
YWJsZWQoKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAvLyBU
aGlzIGFsbG93cyBKYXZhc2NyaXB0IHRvIGNhbGwgd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKSBv
biBhbiBlbGVtZW50LgorICAgIGNvcmVTZXR0aW5ncy0+c2V0RnVsbFNjcmVlbkVuYWJsZWQodHJ1
ZSk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSUVXUE9SVF9SRUZMT1cpCiAgICAgY29yZVNldHRp
bmdzLT5zZXRUZXh0UmVmbG93RW5hYmxlZCh3ZWJTZXR0aW5ncy0+dGV4dFJlZmxvd01vZGUoKSA9
PSBXZWJTZXR0aW5nczo6VGV4dFJlZmxvd0VuYWJsZWQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwCmluZGV4IGE5OTY3ZTlhZDlhOGFkZWZl
N2E1YmRiMDMzZjU0Nzk3MjgyYzIwNGEuLjk3Y2ExMWE5ZTg1YWEwODI1NzY4YjhhMzk1ZmUyMDFm
YjNmZjkyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0
dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3Mu
Y3BwCkBAIC01NCw2ICs1NCw3IEBAIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0Jl
cnJ5VXNlckFnZW50U3RyaW5nLCAoIkJsYWNrQmVycnlVc2VyQWdlbnRTdHJpCiBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeVVzZXJTY2FsYWJsZUVuYWJsZWQsICgiQmxhY2tC
ZXJyeVVzZXJTY2FsYWJsZUVuYWJsZWQiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
QmxhY2tCZXJyeVZpZXdwb3J0V2lkdGgsICgiQmxhY2tCZXJyeVZpZXdwb3J0V2lkdGgiKSk7CiBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeVpvb21Ub0ZpdE9uTG9hZEVuYWJs
ZWQsICgiQmxhY2tCZXJyeVpvb21Ub0ZpdE9uTG9hZEVuYWJsZWQiKSk7CitERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgQmxhY2tCZXJyeUZ1bGxTY3JlZW5WaWRlb0NhcGFibGUsICgiQmxhY2tC
ZXJyeUZ1bGxTY3JlZW5WaWRlb0NhcGFibGUiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCAoIlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIp
KTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBXZWJLaXREYXRhYmFzZVBhdGgsICgiV2Vi
S2l0RGF0YWJhc2VQYXRoIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERh
dGFiYXNlc0VuYWJsZWQsICgiV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCIpKTsKQEAgLTE2Miw2ICsx
NjMsNyBAQCBXZWJTZXR0aW5ncyogV2ViU2V0dGluZ3M6OnN0YW5kYXJkU2V0dGluZ3MoKQogICAg
IHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeVVzZVdlYktpdENhY2hl
LCB0cnVlKTsKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlV
c2VyU2NhbGFibGVFbmFibGVkLCB0cnVlKTsKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRC
b29sZWFuKEJsYWNrQmVycnlab29tVG9GaXRPbkxvYWRFbmFibGVkLCB0cnVlKTsKKyAgICBzZXR0
aW5ncy0+bV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBh
YmxlLCBmYWxzZSk7CiAKICAgICBzZXR0aW5ncy0+bV9wcml2YXRlLT5zZXRJbnRlZ2VyKFdlYktp
dERlZmF1bHRGb250U2l6ZSwgMTYpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVn
ZXIoV2ViS2l0RGVmYXVsdEZpeGVkRm9udFNpemUsIDEzKTsKQEAgLTc1Myw1ICs3NTUsMTUgQEAg
dm9pZCBXZWJTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgZW5hYmxl
KQogICAgIG1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsIGVu
YWJsZSk7CiB9CiAKK2Jvb2wgV2ViU2V0dGluZ3M6OmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldEJvb2xlYW4oQmxhY2tCZXJyeUZ1bGxT
Y3JlZW5WaWRlb0NhcGFibGUpOworfQorCit2b2lkIFdlYlNldHRpbmdzOjpzZXRGdWxsU2NyZWVu
VmlkZW9DYXBhYmxlKGJvb2wgZW5hYmxlKQoreworICAgIG1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihC
bGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSwgZW5hYmxlKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiB9IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKaW5kZXggNWEyMzM2ZmZjZjhiMWZkYjdlNzMzZDZk
M2VlOWEzZjA3NGQzZDFkMy4uNGMxODRiNWMzOTAzMGVlODE0Y2Y1Yjc5ZDJiYTJlZGNkZTVlNDUz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaApAQCAtMjIw
LDYgKzIyMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CiAK
KyAgICBib29sIGZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSBjb25zdDsKKyAgICB2b2lkIHNldEZ1
bGxTY3JlZW5WaWRlb0NhcGFibGUoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgV2ViU2V0dGluZ3NQ
cml2YXRlKiBtX3ByaXZhdGU7CiAgICAgV2ViU2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmNwcAppbmRleCBkZjg5YWE1MmE3NmJiYzI4YzI4OWVhNWY1ODBhMWQxMWM2
ZDhhZDMyLi5mNjExNDMxNjc4NmZiYTZjZWFhOTNjZmY5NThmNTM1MzNkYzg0NDFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC03MTcsNiArNzE3LDQ1IEBAIHZvaWQg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUp
CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKG5vZGUpOwogfQog
CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5
OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVs
ZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQoreworICAgIHJldHVybiAhd2l0aEtleWJvYXJkOwor
fQorCit2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBlbGVtZW50LT5kb2N1bWVudCgp
LT53ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBpZiAo
c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KSAmJiBtX3dlYlBhZ2VQcml2YXRlLT5t
X3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsKKyAgICAgICAgLy8gVGhl
IEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0IGl0IHdh
bnRzIHRvCisgICAgICAgIC8vIHVzZSwgYW5kIHRoaXMgaXMgYSB2aWRlbyBlbGVtZW50LiBUaGUg
b25seSByZWFzb24gdGhhdAorICAgICAgICAvLyB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudCgpIGFuZAorICAgICAgICAvLyB3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KCkgYXJlIHN0aWxsIGNhbGxlZCBpbiB0aGlzIGNhc2UKKyAgICAgICAgLy8gaXMgc28gdGhh
dCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKSBnZXRzIGNhbGxlZCBsYXRlci4KKyAgICAgICAg
ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBObyBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVlbiBtYWRlIGF2YWlsYWJsZSBieSB0
aGUgQnJvd3NlcgorICAgICAgICAvLyBjaHJvbWUsIG9yIHRoaXMgaXMgbm90IGEgdmlkZW8gZWxl
bWVudC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCisgICAgICAgIC8vIEphdmFzY3JpcHQg
Y2FsbCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQuCisgICAgICAgIC8vIFRoaXMgaXMg
d2hlcmUgd2Ugd291bGQgaGlkZSB0aGUgYnJvd3NlcidzIGNocm9tZSBpZiB3ZSB3YW50ZWQgdG8K
KyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50KTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojpl
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAg
ICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KGVsZW1lbnQpOworICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpICYm
IG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUo
KSkgeworICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVl
biB2aWRlbyB3aWRnZXQKKyAgICAgICAgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgcmVzdG9yZSB0
aGUgYnJvd3NlcidzIGNocm9tZQorICAgICAgICAvLyBpZiBoaWRkZW4gYWJvdmUKKyAgICB9Cisg
ICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KGVsZW1lbnQpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCR0wpCiB2b2lkIENocm9tZUNs
aWVudEJsYWNrQmVycnk6OnJlcXVlc3RXZWJHTFBlcm1pc3Npb24oRnJhbWUqIGZyYW1lKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggOTA0YzQxODdiNTAyOWFkOWE1Yzc2
N2FjZTQzZjA4YjIwZTk0YzI1Ny4uM2E3ZGIxNWZmZjRjMmQ5NDZiODcwYTFhYzhkNjU0ZTNhZGQw
NjkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0xMjYsNiArMTI2LDEx
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShj
b25zdCBOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9k
ZSopOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopOworI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50KiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOworI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdM
KQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0V2ViR0xQZXJtaXNzaW9uKEZyYW1lKik7CiAjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141483</attachid>
            <date>2012-05-11 13:25:17 -0700</date>
            <delta_ts>2012-05-15 10:30:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86129-20120511162515.patch</filename>
            <type>text/plain</type>
            <size>10751</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlkNGU2MmE2NDIwNTYz
ZWQ5NTk5MDc5MjMwOGM3NTk1Njk0MTgyMC4uMzkxZGJlN2Q1MzdhNDUxMjIyMWQ4NmNiMDA4MDdm
ZTE2ZjkzYmEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA1LTEwICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEVuYWJsZSB0aGUg
RnVsbHNjcmVlbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIG1haW4gY2hhbmdlcyBmb3IgdGhpcyBwYXRjaCBhcmUgYWxsIHVuZGVyCisgICAg
ICAgIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS4gVGhlIG9ubHkgY2hhbmdlIGluIFdlYkNvcmUg
aXMgYSBudWxsCisgICAgICAgIHBvaW50ZXIgY2hlY2sgdG8gZml4IGEgZnVsbHNjcmVlbiByZWxh
dGVkIHNlZyBmYXVsdCBJIGVuY291bnRlcmVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVz
dCBjb3ZlcmFnZSBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaXMgYWxyZWFkeQorICAgICAgICBhdmFp
bGFibGUuIFRoaXMgcGF0Y2ggaXMgc2ltcGx5IHR1cm5pbmcgaXQgb24gaW4gdGhlIEJsYWNrQmVy
cnkKKyAgICAgICAgcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGU6On5NZWRpYVBsYXllclByaXZhdGUpOgorCiAyMDEyLTA1LTExICBU
b21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3Ry
ZWFtIEFQSTogRml4IGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIFVzZXJNZWRpYVJlcXVl
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGU0MDFlZDAxMjkwOTc0NGRiZTQ5
MGFkNDc0M2VjOTU3Yjg0ZWExYzUuLjNhNGI4NWI1ZDM5Mjk3MmY1YWY1MDNkOTE4ZWMyZDVlN2Y4
Y2MyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisy
MDEyLTA1LTEwICBNYXggRmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVy
cnldIEVuYWJsZSB0aGUgRnVsbHNjcmVlbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBuZXcgZG9jdW1lbnQt
YmFzZWQgRnVsbHNjcmVlbiBBUEkuCisgICAgICAgIFRoZSBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
IGlzIGFscmVhZHkgZW5hYmxlZCBpbiB0aGUKKyAgICAgICAgQmxhY2tCZXJyeSBXZWJLaXQgYnVp
bGQuIE15IHBhdGNoIHR1cm5zIGZ1bGxzY3JlZW4gb24KKyAgICAgICAgaW4gdGhlIHBhZ2Ugc2V0
dGluZ3MgYnkgZGVmYXVsdCBhbmQgaW1wbGVtZW50cyB0aGUgbWlzc2luZworICAgICAgICBDaHJv
bWVDbGllbnRCbGFja0JlcnJ5Ojp7c3VwcG9ydHMsZW50ZXIsZXhpdH1GdWxsU2NyZWVuRm9yRWxl
bWVudCgpCisgICAgICAgIG1lbWJlciBmdW5jdGlvbnMuIEkgYW0gYWxzbyBwbHVtYmluZyB0aHJv
dWdoIHRoZSBleGlzdGluZworICAgICAgICAiZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIgdGhhdCBR
TlhTdGFnZVdlYlZpZXcgaGFzIGFsd2F5cyBiZWVuCisgICAgICAgIHNlbmRpbmcgdG8gYWxsb3cg
dGhlIHByZXNlbmNlIG9mIGEgbmF0aXZlIGZ1bGxzY3JlZW4gdmlkZW8gcGxheWVyCisgICAgICAg
IHRvIGJlIGNoZWNrZWQuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpkaWRDaGFuZ2VTZXR0aW5ncyk6Cisg
ICAgICAgICogQXBpL1dlYlNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNldHRpbmdzOjpzdGFuZGFyZFNldHRpbmdzKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViU2V0dGluZ3M6OmZ1bGxTY3JlZW5WaWRlb0Nh
cGFibGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0RnVs
bFNjcmVlblZpZGVvQ2FwYWJsZSk6CisgICAgICAgICogQXBpL1dlYlNldHRpbmdzLmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAg
ICAgKENocm9tZUNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTA1LTEwICBNaWtlIEZlbnRvbiAg
PG1pZmVudG9uQHJpbS5jb20+CiAKICAgICAgICAgQ2FyZXQgbm9kZSBib3VuZGFyeSBzaG91bGQg
YmUgYWRqdXN0ZWQgdG8gYWNjb3VudCBmb3IgdGhlIHZpc2libGUgcmVnaW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKaW5kZXggMzBkZTBk
M2Y3ZGNlNDg3ODM0ZTc0NzUwZTFlMmIwMmZjYzY5ZWE2Ni4uOWM2NDI3ODgzZDc5NzM3ODZmMTYx
OGIwZjBhNjEyMDk1YjU0OTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC0xMjMsOCArMTIzLDggQEAgTWVkaWFQbGF5ZXJQcml2
YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIE1lZGlhUGxheWVy
UHJpdmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSgpCiB7CiAgICAgaWYgKGlzRnVsbHNjcmVlbigp
KSB7Ci0gICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1M
TWVkaWFFbGVtZW50Kj4obV93ZWJDb3JlUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKTsKLSAg
ICAgICAgZWxlbWVudC0+ZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgaWYgKEhUTUxNZWRpYUVs
ZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV93ZWJDb3Jl
UGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKSkKKyAgICAgICAgICAgIGVsZW1lbnQtPmV4aXRG
dWxsc2NyZWVuKCk7CiAgICAgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAvLyBSZW1vdmUgbWVkaWEgcGxheWVyIGZyb20gcGxhdGZvcm0gbGF5ZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCBiMTI1NWQxYmEyYTg5OGE1YWIwYjY0
M2IzNjAzZDk5YWJhMjM1YzEwLi44MDBlMDkyNjg5OTNhZWRlNzE3Y2FiZmU5ZjM2OGE0MjJmZTEw
NDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTEyMyw3
ICsxMjMsNiBAQAogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogCiAjaWYgRU5BQkxFKFZJREVP
KQotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaCIKICNlbmRpZgpAQCAt
NjAxMyw2ICs2MDEyLDExIEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmRpZENoYW5nZVNldHRpbmdz
KFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncykKICAgICBXZWJTb2NrZXQ6OnNldElzQXZhaWxhYmxl
KHdlYlNldHRpbmdzLT5hcmVXZWJTb2NrZXRzRW5hYmxlZCgpKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIC8vIFRoaXMgYWxsb3dzIEphdmFzY3JpcHQgdG8gY2Fs
bCB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpIG9uIGFuIGVsZW1lbnQuCisgICAgY29yZVNldHRp
bmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJ
RVdQT1JUX1JFRkxPVykKICAgICBjb3JlU2V0dGluZ3MtPnNldFRleHRSZWZsb3dFbmFibGVkKHdl
YlNldHRpbmdzLT50ZXh0UmVmbG93TW9kZSgpID09IFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RW5h
YmxlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5n
cy5jcHAKaW5kZXggYTk5NjdlOWFkOWE4YWRlZmU3YTViZGIwMzNmNTQ3OTcyODJjMjA0YS4uOTdj
YTExYTllODVhYTA4MjU3NjhiOGEzOTVmZTIwMWZiM2ZmOTI5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIEJsYWNrQmVycnlVc2VyQWdlbnRTdHJpbmcsICgiQmxhY2tC
ZXJyeVVzZXJBZ2VudFN0cmkKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5
VXNlclNjYWxhYmxlRW5hYmxlZCwgKCJCbGFja0JlcnJ5VXNlclNjYWxhYmxlRW5hYmxlZCIpKTsK
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5Vmlld3BvcnRXaWR0aCwgKCJC
bGFja0JlcnJ5Vmlld3BvcnRXaWR0aCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBC
bGFja0JlcnJ5Wm9vbVRvRml0T25Mb2FkRW5hYmxlZCwgKCJCbGFja0JlcnJ5Wm9vbVRvRml0T25M
b2FkRW5hYmxlZCIpKTsKK0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RnVs
bFNjcmVlblZpZGVvQ2FwYWJsZSwgKCJCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIp
KTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQs
ICgiU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIFdlYktpdERhdGFiYXNlUGF0aCwgKCJXZWJLaXREYXRhYmFzZVBhdGgiKSk7CiBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCwgKCJXZWJLaXREYXRh
YmFzZXNFbmFibGVkIikpOwpAQCAtMTYyLDYgKzE2Myw3IEBAIFdlYlNldHRpbmdzKiBXZWJTZXR0
aW5nczo6c3RhbmRhcmRTZXR0aW5ncygpCiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0Qm9v
bGVhbihCbGFja0JlcnJ5VXNlV2ViS2l0Q2FjaGUsIHRydWUpOwogICAgIHNldHRpbmdzLT5tX3By
aXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeVVzZXJTY2FsYWJsZUVuYWJsZWQsIHRydWUpOwog
ICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeVpvb21Ub0ZpdE9u
TG9hZEVuYWJsZWQsIHRydWUpOworICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4o
QmxhY2tCZXJyeUZ1bGxTY3JlZW5WaWRlb0NhcGFibGUsIGZhbHNlKTsKIAogICAgIHNldHRpbmdz
LT5tX3ByaXZhdGUtPnNldEludGVnZXIoV2ViS2l0RGVmYXVsdEZvbnRTaXplLCAxNik7CiAgICAg
c2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0SW50ZWdlcihXZWJLaXREZWZhdWx0Rml4ZWRGb250U2l6
ZSwgMTMpOwpAQCAtNzUzLDUgKzc1NSwxNSBAQCB2b2lkIFdlYlNldHRpbmdzOjpzZXRTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgbV9wcml2YXRlLT5zZXRCb29sZWFu
KFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZW5hYmxlKTsKIH0KIAorYm9vbCBXZWJTZXR0aW5n
czo6ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+Z2V0Qm9vbGVhbihCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSk7Cit9CisKK3Zv
aWQgV2ViU2V0dGluZ3M6OnNldEZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoYm9vbCBlbmFibGUpCit7
CisgICAgbV9wcml2YXRlLT5zZXRCb29sZWFuKEJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBh
YmxlLCBlbmFibGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNl
IEJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaApp
bmRleCA1YTIzMzZmZmNmOGIxZmRiN2U3MzNkNmQzZWU5YTNmMDc0ZDNkMWQzLi40YzE4NGI1YzM5
MDMwZWU4MTRjZjViNzlkMmJhMmVkY2RlNWU0NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJTZXR0aW5ncy5oCkBAIC0yMjAsNiArMjIwLDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKIAorICAgIGJvb2wgZnVsbFNjcmVlblZpZGVvQ2Fw
YWJsZSgpIGNvbnN0OworICAgIHZvaWQgc2V0RnVsbFNjcmVlblZpZGVvQ2FwYWJsZShib29sKTsK
KwogcHJpdmF0ZToKICAgICBXZWJTZXR0aW5nc1ByaXZhdGUqIG1fcHJpdmF0ZTsKICAgICBXZWJT
ZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGRmODlh
YTUyYTc2YmJjMjhjMjg5ZWE1ZjU4MGExZDExYzZkOGFkMzIuLmQyMzQwODc5ZDk2MzcxMGFmN2Uw
NDEwYTJiNjZjYzU1ZGEzZDI2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5j
cHAKQEAgLTcxNyw2ICs3MTcsNDUgQEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGl0
RnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5leGl0
RnVsbHNjcmVlbkZvck5vZGUobm9kZSk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Citib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCit7
CisgICAgcmV0dXJuICF3aXRoS2V5Ym9hcmQ7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50
KQoreworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVs
ZW1lbnQpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRl
b0NhcGFibGUoKSkgeworICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24g
ZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQgaXQgd2FudHMgdG8KKyAgICAgICAgLy8gdXNlLCBhbmQg
dGhpcyBpcyBhIHZpZGVvIGVsZW1lbnQuIFRoZSBvbmx5IHJlYXNvbiB0aGF0CisgICAgICAgIC8v
IHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCkgYW5kCisgICAgICAgIC8vIHdl
YmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKSBhcmUgc3RpbGwgY2FsbGVkIGluIHRo
aXMgY2FzZQorICAgICAgICAvLyBpcyBzbyB0aGF0IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgp
IGdldHMgY2FsbGVkIGxhdGVyLgorICAgICAgICBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1l
bnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE5vIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0
IGhhcyBiZWVuIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBCcm93c2VyCisgICAgICAgIC8vIGNocm9t
ZSwgb3IgdGhpcyBpcyBub3QgYSB2aWRlbyBlbGVtZW50LiBUaGUgd2Via2l0UmVxdWVzdEZ1bGxT
Y3JlZW4KKyAgICAgICAgLy8gSmF2YXNjcmlwdCBjYWxsIGlzIG9mdGVuIG1hZGUgb24gYSBkaXYg
ZWxlbWVudC4KKyAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBoaWRlIHRoZSBicm93
c2VyJ3MgY2hyb21lIGlmIHdlIHdhbnRlZCB0by4KKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1l
bnQoKS0+d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30KKwor
dm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJr
aXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzdXBwb3J0
c0Z1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0
dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSkgeworICAgICAgICAvLyBUaGUgQnJvd3Nl
ciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQuCisgICAgICAgIGV4
aXRGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBU
aGlzIGlzIHdoZXJlIHdlIHdvdWxkIHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKKyAgICAg
ICAgLy8gaWYgaGlkZGVuIGFib3ZlLgorICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53
ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5kaWYKKwog
I2lmIEVOQUJMRShXRUJHTCkKIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdFdl
YkdMUGVybWlzc2lvbihGcmFtZSogZnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVy
cnkuaAppbmRleCA5MDRjNDE4N2I1MDI5YWQ5YTVjNzY3YWNlNDNmMDhiMjBlOTRjMjU3Li4zYTdk
YjE1ZmZmNGMyZDk0NmI4NzBhMWFjOGQ2NTRlM2FkZDA2OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmgKQEAgLTEyNiw2ICsxMjYsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGV4
aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKik7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1l
bnQqLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChF
bGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVt
ZW50Kik7CisjZW5kaWYKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RXZWJHTFBlcm1pc3Npb24oRnJhbWUqKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141994</attachid>
            <date>2012-05-15 10:30:53 -0700</date>
            <delta_ts>2012-05-15 10:41:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86129-20120515133051.patch</filename>
            <type>text/plain</type>
            <size>8735</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBiYzhhODIzODJjMTY1MTc0Njc3Njk0ZTk2MTgyMDY5ZGE3NTE4NTQyLi4zMjU1MTEwNmRi
ZTQxMzM3Yjc4OWE4ZGQ5NmFkMDcxNzMyOGMzN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMi0wNS0xMCAgTWF4IEZlaWwgIDxtZmVpbEByaW0u
Y29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgdGhlIEZ1bGxzY3JlZW4gQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjEyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZW5hYmxlcyB0aGUgbmV3IGRvY3VtZW50LWJhc2VkIEZ1bGxzY3JlZW4gQVBJLgorICAgICAgICBU
aGUgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSBpcyBhbHJlYWR5IGVuYWJsZWQgaW4gdGhlCisgICAg
ICAgIEJsYWNrQmVycnkgV2ViS2l0IGJ1aWxkLiBNeSBwYXRjaCB0dXJucyBmdWxsc2NyZWVuIG9u
CisgICAgICAgIGluIHRoZSBwYWdlIHNldHRpbmdzIGJ5IGRlZmF1bHQgYW5kIGltcGxlbWVudHMg
dGhlIG1pc3NpbmcKKyAgICAgICAgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6e3N1cHBvcnRzLGVu
dGVyLGV4aXR9RnVsbFNjcmVlbkZvckVsZW1lbnQoKQorICAgICAgICBtZW1iZXIgZnVuY3Rpb25z
LiBJIGFtIGFsc28gcGx1bWJpbmcgdGhyb3VnaCB0aGUgZXhpc3RpbmcKKyAgICAgICAgImZ1bGxT
Y3JlZW5WaWRlb0NhcGFibGUiIHRoYXQgUU5YU3RhZ2VXZWJWaWV3IGhhcyBhbHdheXMgYmVlbgor
ICAgICAgICBzZW5kaW5nIHRvIGFsbG93IHRoZSBwcmVzZW5jZSBvZiBhIG5hdGl2ZSBmdWxsc2Ny
ZWVuIHZpZGVvIHBsYXllcgorICAgICAgICB0byBiZSBjaGVja2VkLgorCisgICAgICAgICogQXBp
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0
ZTo6ZGlkQ2hhbmdlU2V0dGluZ3MpOgorICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5n
czo6c3RhbmRhcmRTZXR0aW5ncyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNl
dHRpbmdzOjpmdWxsU2NyZWVuVmlkZW9DYXBhYmxlKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViU2V0dGluZ3M6OnNldEZ1bGxTY3JlZW5WaWRlb0NhcGFibGUpOgorICAgICAgICAq
IEFwaS9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwog
MjAxMi0wNS0xNSAgSGFubmEgTWEgIDxIYW5tYUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBhZGRpbmcgYSBmdW5jdGlvbmFsaXR5IGZvciB3ZWIgaW5zcGVjdG9yIHRvIGluc3BlY3Qg
Y3VycmVudCBzZWxlY3RlZCBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAppbmRleCBmOGIxZDNhMGRhZjBjMWRhNGJiZDAwY2M5NjYwYzA2MzI3YmUzZmFkLi42
N2RmNjllZDgyZDY1ZmZiZTA0MzBkYjg4ZGVhNzNkMDAwMjU3YWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTEyMyw3ICsxMjMsNiBAQAogI2luY2x1ZGUg
InJ1bnRpbWVfcm9vdC5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuaCIKICNlbmRpZgpAQCAtNjAxOSw2ICs2MDE4LDExIEBAIHZv
aWQgV2ViUGFnZVByaXZhdGU6OmRpZENoYW5nZVNldHRpbmdzKFdlYlNldHRpbmdzKiB3ZWJTZXR0
aW5ncykKICAgICBXZWJTb2NrZXQ6OnNldElzQXZhaWxhYmxlKHdlYlNldHRpbmdzLT5hcmVXZWJT
b2NrZXRzRW5hYmxlZCgpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQor
ICAgIC8vIFRoaXMgYWxsb3dzIEphdmFzY3JpcHQgdG8gY2FsbCB3ZWJraXRSZXF1ZXN0RnVsbFNj
cmVlbigpIG9uIGFuIGVsZW1lbnQuCisgICAgY29yZVNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5h
YmxlZCh0cnVlKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFRkxPVykKICAgICBj
b3JlU2V0dGluZ3MtPnNldFRleHRSZWZsb3dFbmFibGVkKHdlYlNldHRpbmdzLT50ZXh0UmVmbG93
TW9kZSgpID09IFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RW5hYmxlZCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKaW5kZXggYTk5NjdlOWFk
OWE4YWRlZmU3YTViZGIwMzNmNTQ3OTcyODJjMjA0YS4uOTdjYTExYTllODVhYTA4MjU3NjhiOGEz
OTVmZTIwMWZiM2ZmOTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJT
ZXR0aW5ncy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IEJsYWNrQmVycnlVc2VyQWdlbnRTdHJpbmcsICgiQmxhY2tCZXJyeVVzZXJBZ2VudFN0cmkKIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5VXNlclNjYWxhYmxlRW5hYmxlZCwg
KCJCbGFja0JlcnJ5VXNlclNjYWxhYmxlRW5hYmxlZCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBCbGFja0JlcnJ5Vmlld3BvcnRXaWR0aCwgKCJCbGFja0JlcnJ5Vmlld3BvcnRXaWR0
aCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5Wm9vbVRvRml0T25M
b2FkRW5hYmxlZCwgKCJCbGFja0JlcnJ5Wm9vbVRvRml0T25Mb2FkRW5hYmxlZCIpKTsKK0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSwg
KCJCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIpKTsKIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsICgiU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERhdGFiYXNlUGF0
aCwgKCJXZWJLaXREYXRhYmFzZVBhdGgiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
V2ViS2l0RGF0YWJhc2VzRW5hYmxlZCwgKCJXZWJLaXREYXRhYmFzZXNFbmFibGVkIikpOwpAQCAt
MTYyLDYgKzE2Myw3IEBAIFdlYlNldHRpbmdzKiBXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5n
cygpCiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5VXNlV2Vi
S2l0Q2FjaGUsIHRydWUpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxh
Y2tCZXJyeVVzZXJTY2FsYWJsZUVuYWJsZWQsIHRydWUpOwogICAgIHNldHRpbmdzLT5tX3ByaXZh
dGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeVpvb21Ub0ZpdE9uTG9hZEVuYWJsZWQsIHRydWUpOwor
ICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeUZ1bGxTY3JlZW5W
aWRlb0NhcGFibGUsIGZhbHNlKTsKIAogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVn
ZXIoV2ViS2l0RGVmYXVsdEZvbnRTaXplLCAxNik7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+
c2V0SW50ZWdlcihXZWJLaXREZWZhdWx0Rml4ZWRGb250U2l6ZSwgMTMpOwpAQCAtNzUzLDUgKzc1
NSwxNSBAQCB2b2lkIFdlYlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9v
bCBlbmFibGUpCiAgICAgbV9wcml2YXRlLT5zZXRCb29sZWFuKFNwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCwgZW5hYmxlKTsKIH0KIAorYm9vbCBXZWJTZXR0aW5nczo6ZnVsbFNjcmVlblZpZGVvQ2Fw
YWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Z2V0Qm9vbGVhbihCbGFja0Jl
cnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3M6OnNldEZ1
bGxTY3JlZW5WaWRlb0NhcGFibGUoYm9vbCBlbmFibGUpCit7CisgICAgbV9wcml2YXRlLT5zZXRC
b29sZWFuKEJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBhYmxlLCBlbmFibGUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAppbmRleCA1YTIzMzZmZmNmOGIxZmRi
N2U3MzNkNmQzZWU5YTNmMDc0ZDNkMWQzLi40YzE4NGI1YzM5MDMwZWU4MTRjZjViNzlkMmJhMmVk
Y2RlNWU0NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNl
dHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5o
CkBAIC0yMjAsNiArMjIwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChi
b29sKTsKIAorICAgIGJvb2wgZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpIGNvbnN0OworICAgIHZv
aWQgc2V0RnVsbFNjcmVlblZpZGVvQ2FwYWJsZShib29sKTsKKwogcHJpdmF0ZToKICAgICBXZWJT
ZXR0aW5nc1ByaXZhdGUqIG1fcHJpdmF0ZTsKICAgICBXZWJTZXR0aW5ncygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJs
YWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGRmODlhYTUyYTc2YmJjMjhjMjg5ZWE1ZjU4
MGExZDExYzZkOGFkMzIuLmQyMzQwODc5ZDk2MzcxMGFmN2UwNDEwYTJiNjZjYzU1ZGEzZDI2MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTcxNyw2ICs3MTcsNDUg
QEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9k
ZSogbm9kZSkKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5leGl0RnVsbHNjcmVlbkZvck5vZGUobm9k
ZSk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitib29sIENocm9tZUNsaWVudEJs
YWNrQmVycnk6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxl
bWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCit7CisgICAgcmV0dXJuICF3aXRoS2V5
Ym9hcmQ7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQoreworICAgIGVsZW1lbnQtPmRv
Y3VtZW50KCktPndlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwor
ICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpICYmIG1fd2ViUGFnZVBy
aXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSkgeworICAgICAg
ICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRn
ZXQgaXQgd2FudHMgdG8KKyAgICAgICAgLy8gdXNlLCBhbmQgdGhpcyBpcyBhIHZpZGVvIGVsZW1l
bnQuIFRoZSBvbmx5IHJlYXNvbiB0aGF0CisgICAgICAgIC8vIHdlYmtpdFdpbGxFbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KCkgYW5kCisgICAgICAgIC8vIHdlYmtpdERpZEVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoKSBhcmUgc3RpbGwgY2FsbGVkIGluIHRoaXMgY2FzZQorICAgICAgICAvLyBp
cyBzbyB0aGF0IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpIGdldHMgY2FsbGVkIGxhdGVyLgor
ICAgICAgICBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIE5vIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0IGhhcyBiZWVuIG1hZGUgYXZhaWxh
YmxlIGJ5IHRoZSBCcm93c2VyCisgICAgICAgIC8vIGNocm9tZSwgb3IgdGhpcyBpcyBub3QgYSB2
aWRlbyBlbGVtZW50LiBUaGUgd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4KKyAgICAgICAgLy8gSmF2
YXNjcmlwdCBjYWxsIGlzIG9mdGVuIG1hZGUgb24gYSBkaXYgZWxlbWVudC4KKyAgICAgICAgLy8g
VGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBoaWRlIHRoZSBicm93c2VyJ3MgY2hyb21lIGlmIHdlIHdh
bnRlZCB0by4KKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVs
ZW1lbnQpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRl
b0NhcGFibGUoKSkgeworICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24g
ZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQuCisgICAgICAgIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShl
bGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxk
IHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKKyAgICAgICAgLy8gaWYgaGlkZGVuIGFib3Zl
LgorICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJHTCkKIHZv
aWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdFdlYkdMUGVybWlzc2lvbihGcmFtZSog
ZnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCA5MDRjNDE4N2I1
MDI5YWQ5YTVjNzY3YWNlNDNmMDhiMjBlOTRjMjU3Li4zYTdkYjE1ZmZmNGMyZDk0NmI4NzBhMWFj
OGQ2NTRlM2FkZDA2OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTEy
Niw2ICsxMjYsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW5Gb3JOb2RlKGNvbnN0IE5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVu
Rm9yTm9kZShOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShO
b2RlKik7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kik7CisgICAgdmlydHVh
bCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kik7CisjZW5kaWYKICNpZiBF
TkFCTEUoV0VCR0wpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RXZWJHTFBlcm1pc3Npb24oRnJh
bWUqKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142000</attachid>
            <date>2012-05-15 10:41:56 -0700</date>
            <delta_ts>2012-05-15 13:54:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86129-20120515134155.patch</filename>
            <type>text/plain</type>
            <size>8748</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBiYzhhODIzODJjMTY1MTc0Njc3Njk0ZTk2MTgyMDY5ZGE3NTE4NTQyLi4zMjU1MTEwNmRi
ZTQxMzM3Yjc4OWE4ZGQ5NmFkMDcxNzMyOGMzN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMi0wNS0xMCAgTWF4IEZlaWwgIDxtZmVpbEByaW0u
Y29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgdGhlIEZ1bGxzY3JlZW4gQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjEyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZW5hYmxlcyB0aGUgbmV3IGRvY3VtZW50LWJhc2VkIEZ1bGxzY3JlZW4gQVBJLgorICAgICAgICBU
aGUgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSBpcyBhbHJlYWR5IGVuYWJsZWQgaW4gdGhlCisgICAg
ICAgIEJsYWNrQmVycnkgV2ViS2l0IGJ1aWxkLiBNeSBwYXRjaCB0dXJucyBmdWxsc2NyZWVuIG9u
CisgICAgICAgIGluIHRoZSBwYWdlIHNldHRpbmdzIGJ5IGRlZmF1bHQgYW5kIGltcGxlbWVudHMg
dGhlIG1pc3NpbmcKKyAgICAgICAgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6e3N1cHBvcnRzLGVu
dGVyLGV4aXR9RnVsbFNjcmVlbkZvckVsZW1lbnQoKQorICAgICAgICBtZW1iZXIgZnVuY3Rpb25z
LiBJIGFtIGFsc28gcGx1bWJpbmcgdGhyb3VnaCB0aGUgZXhpc3RpbmcKKyAgICAgICAgImZ1bGxT
Y3JlZW5WaWRlb0NhcGFibGUiIHRoYXQgUU5YU3RhZ2VXZWJWaWV3IGhhcyBhbHdheXMgYmVlbgor
ICAgICAgICBzZW5kaW5nIHRvIGFsbG93IHRoZSBwcmVzZW5jZSBvZiBhIG5hdGl2ZSBmdWxsc2Ny
ZWVuIHZpZGVvIHBsYXllcgorICAgICAgICB0byBiZSBjaGVja2VkLgorCisgICAgICAgICogQXBp
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0
ZTo6ZGlkQ2hhbmdlU2V0dGluZ3MpOgorICAgICAgICAqIEFwaS9XZWJTZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5n
czo6c3RhbmRhcmRTZXR0aW5ncyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNl
dHRpbmdzOjpmdWxsU2NyZWVuVmlkZW9DYXBhYmxlKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViU2V0dGluZ3M6OnNldEZ1bGxTY3JlZW5WaWRlb0NhcGFibGUpOgorICAgICAgICAq
IEFwaS9XZWJTZXR0aW5ncy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwog
MjAxMi0wNS0xNSAgSGFubmEgTWEgIDxIYW5tYUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBhZGRpbmcgYSBmdW5jdGlvbmFsaXR5IGZvciB3ZWIgaW5zcGVjdG9yIHRvIGluc3BlY3Qg
Y3VycmVudCBzZWxlY3RlZCBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAppbmRleCBmOGIxZDNhMGRhZjBjMWRhNGJiZDAwY2M5NjYwYzA2MzI3YmUzZmFkLi42
N2RmNjllZDgyZDY1ZmZiZTA0MzBkYjg4ZGVhNzNkMDAwMjU3YWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTEyMyw3ICsxMjMsNiBAQAogI2luY2x1ZGUg
InJ1bnRpbWVfcm9vdC5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuaCIKICNlbmRpZgpAQCAtNjAxOSw2ICs2MDE4LDExIEBAIHZv
aWQgV2ViUGFnZVByaXZhdGU6OmRpZENoYW5nZVNldHRpbmdzKFdlYlNldHRpbmdzKiB3ZWJTZXR0
aW5ncykKICAgICBXZWJTb2NrZXQ6OnNldElzQXZhaWxhYmxlKHdlYlNldHRpbmdzLT5hcmVXZWJT
b2NrZXRzRW5hYmxlZCgpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQor
ICAgIC8vIFRoaXMgYWxsb3dzIEphdmFzY3JpcHQgdG8gY2FsbCB3ZWJraXRSZXF1ZXN0RnVsbFNj
cmVlbigpIG9uIGFuIGVsZW1lbnQuCisgICAgY29yZVNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5h
YmxlZCh0cnVlKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFRkxPVykKICAgICBj
b3JlU2V0dGluZ3MtPnNldFRleHRSZWZsb3dFbmFibGVkKHdlYlNldHRpbmdzLT50ZXh0UmVmbG93
TW9kZSgpID09IFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RW5hYmxlZCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKaW5kZXggYTk5NjdlOWFk
OWE4YWRlZmU3YTViZGIwMzNmNTQ3OTcyODJjMjA0YS4uOTdjYTExYTllODVhYTA4MjU3NjhiOGEz
OTVmZTIwMWZiM2ZmOTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJT
ZXR0aW5ncy5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IEJsYWNrQmVycnlVc2VyQWdlbnRTdHJpbmcsICgiQmxhY2tCZXJyeVVzZXJBZ2VudFN0cmkKIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5VXNlclNjYWxhYmxlRW5hYmxlZCwg
KCJCbGFja0JlcnJ5VXNlclNjYWxhYmxlRW5hYmxlZCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBCbGFja0JlcnJ5Vmlld3BvcnRXaWR0aCwgKCJCbGFja0JlcnJ5Vmlld3BvcnRXaWR0
aCIpKTsKIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5Wm9vbVRvRml0T25M
b2FkRW5hYmxlZCwgKCJCbGFja0JlcnJ5Wm9vbVRvRml0T25Mb2FkRW5hYmxlZCIpKTsKK0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSwg
KCJCbGFja0JlcnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSIpKTsKIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsICgiU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkIikpOwogREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFdlYktpdERhdGFiYXNlUGF0
aCwgKCJXZWJLaXREYXRhYmFzZVBhdGgiKSk7CiBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
V2ViS2l0RGF0YWJhc2VzRW5hYmxlZCwgKCJXZWJLaXREYXRhYmFzZXNFbmFibGVkIikpOwpAQCAt
MTYyLDYgKzE2Myw3IEBAIFdlYlNldHRpbmdzKiBXZWJTZXR0aW5nczo6c3RhbmRhcmRTZXR0aW5n
cygpCiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+c2V0Qm9vbGVhbihCbGFja0JlcnJ5VXNlV2Vi
S2l0Q2FjaGUsIHRydWUpOwogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxh
Y2tCZXJyeVVzZXJTY2FsYWJsZUVuYWJsZWQsIHRydWUpOwogICAgIHNldHRpbmdzLT5tX3ByaXZh
dGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeVpvb21Ub0ZpdE9uTG9hZEVuYWJsZWQsIHRydWUpOwor
ICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEJvb2xlYW4oQmxhY2tCZXJyeUZ1bGxTY3JlZW5W
aWRlb0NhcGFibGUsIGZhbHNlKTsKIAogICAgIHNldHRpbmdzLT5tX3ByaXZhdGUtPnNldEludGVn
ZXIoV2ViS2l0RGVmYXVsdEZvbnRTaXplLCAxNik7CiAgICAgc2V0dGluZ3MtPm1fcHJpdmF0ZS0+
c2V0SW50ZWdlcihXZWJLaXREZWZhdWx0Rml4ZWRGb250U2l6ZSwgMTMpOwpAQCAtNzUzLDUgKzc1
NSwxNSBAQCB2b2lkIFdlYlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9v
bCBlbmFibGUpCiAgICAgbV9wcml2YXRlLT5zZXRCb29sZWFuKFNwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCwgZW5hYmxlKTsKIH0KIAorYm9vbCBXZWJTZXR0aW5nczo6ZnVsbFNjcmVlblZpZGVvQ2Fw
YWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Z2V0Qm9vbGVhbihCbGFja0Jl
cnJ5RnVsbFNjcmVlblZpZGVvQ2FwYWJsZSk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3M6OnNldEZ1
bGxTY3JlZW5WaWRlb0NhcGFibGUoYm9vbCBlbmFibGUpCit7CisgICAgbV9wcml2YXRlLT5zZXRC
b29sZWFuKEJsYWNrQmVycnlGdWxsU2NyZWVuVmlkZW9DYXBhYmxlLCBlbmFibGUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2V0dGluZ3MuaAppbmRleCA1YTIzMzZmZmNmOGIxZmRi
N2U3MzNkNmQzZWU5YTNmMDc0ZDNkMWQzLi40YzE4NGI1YzM5MDMwZWU4MTRjZjViNzlkMmJhMmVk
Y2RlNWU0NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNl
dHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5o
CkBAIC0yMjAsNiArMjIwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChi
b29sKTsKIAorICAgIGJvb2wgZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpIGNvbnN0OworICAgIHZv
aWQgc2V0RnVsbFNjcmVlblZpZGVvQ2FwYWJsZShib29sKTsKKwogcHJpdmF0ZToKICAgICBXZWJT
ZXR0aW5nc1ByaXZhdGUqIG1fcHJpdmF0ZTsKICAgICBXZWJTZXR0aW5ncygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJs
YWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGRmODlhYTUyYTc2YmJjMjhjMjg5ZWE1ZjU4
MGExZDExYzZkOGFkMzIuLmQyMzQwODc5ZDk2MzcxMGFmN2UwNDEwYTJiNjZjYzU1ZGEzZDI2MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTcxNyw2ICs3MTcsNDUg
QEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9k
ZSogbm9kZSkKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5leGl0RnVsbHNjcmVlbkZvck5vZGUobm9k
ZSk7CiB9CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCitib29sIENocm9tZUNsaWVudEJs
YWNrQmVycnk6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxl
bWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCit7CisgICAgcmV0dXJuICF3aXRoS2V5
Ym9hcmQ7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQoreworICAgIGVsZW1lbnQtPmRv
Y3VtZW50KCktPndlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwor
ICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpICYmIG1fd2ViUGFnZVBy
aXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSkgeworICAgICAg
ICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRn
ZXQgaXQgd2FudHMgdG8KKyAgICAgICAgLy8gdXNlLCBhbmQgdGhpcyBpcyBhIHZpZGVvIGVsZW1l
bnQuIFRoZSBvbmx5IHJlYXNvbiB0aGF0CisgICAgICAgIC8vIHdlYmtpdFdpbGxFbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KCkgYW5kCisgICAgICAgIC8vIHdlYmtpdERpZEVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoKSBhcmUgc3RpbGwgY2FsbGVkIGluIHRoaXMgY2FzZQorICAgICAgICAvLyBp
cyBzbyB0aGF0IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpIGdldHMgY2FsbGVkIGxhdGVyLgor
ICAgICAgICBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIE5vIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0IGhhcyBiZWVuIG1hZGUgYXZhaWxh
YmxlIGJ5IHRoZSBCcm93c2VyCisgICAgICAgIC8vIGNocm9tZSwgb3IgdGhpcyBpcyBub3QgYSB2
aWRlbyBlbGVtZW50LiBUaGUgd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4KKyAgICAgICAgLy8gSmF2
YXNjcmlwdCBjYWxsIGlzIG9mdGVuIG1hZGUgb24gYSBkaXYgZWxlbWVudC4KKyAgICAgICAgLy8g
VGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBoaWRlIHRoZSBicm93c2VyJ3MgY2hyb21lIGlmIHdlIHdh
bnRlZCB0by4KKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVs
ZW1lbnQpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRl
b0NhcGFibGUoKSkgeworICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24g
ZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQuCisgICAgICAgIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShl
bGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxk
IHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKKyAgICAgICAgLy8gaWYgaGlkZGVuIGFib3Zl
LgorICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoZWxlbWVudCk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJHTCkKIHZv
aWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdFdlYkdMUGVybWlzc2lvbihGcmFtZSog
ZnJhbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCA5MDRjNDE4N2I1
MDI5YWQ5YTVjNzY3YWNlNDNmMDhiMjBlOTRjMjU3Li44ZDY1NzI0ZjA2MTdiOTgwMWExZDkyMDQ1
MTZkNjIyZmE3M2JiMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTEy
Niw2ICsxMjYsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW5Gb3JOb2RlKGNvbnN0IE5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVu
Rm9yTm9kZShOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShO
b2RlKik7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sIHdpdGhLZXlib2Fy
ZCk7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
OworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOwor
I2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0V2ViR0xQ
ZXJtaXNzaW9uKEZyYW1lKik7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>