<?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>88958</bug_id>
          
          <creation_ts>2012-06-12 22:13:23 -0700</creation_ts>
          <short_desc>Allow plugins to decide whether they are keyboard focusable</short_desc>
          <delta_ts>2012-08-12 02:21:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>ararunprasad</cc>
    
    <cc>brettw</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rjkroege</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>647678</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-12 22:13:23 -0700</bug_when>
    <thetext>Allow ports to make plugins keyboard focusable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647681</commentid>
    <comment_count>1</comment_count>
      <attachid>147227</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-12 22:15:43 -0700</bug_when>
    <thetext>Created attachment 147227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647704</commentid>
    <comment_count>2</comment_count>
      <attachid>147227</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-12 22:43:44 -0700</bug_when>
    <thetext>Comment on attachment 147227
Patch

Attachment 147227 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12950240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648208</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-13 10:22:30 -0700</bug_when>
    <thetext>This sounds much like bug 87710. I had the below question in that bug:

&quot;This is surprising, because I can certainly focus Flash plug-ins to type in them in Safari on Mac and Windows. Keyboard also works in YouTube for controlling movies.&quot;

I&apos;m not sure if it has been answered or not - I did not see an answer that I could understand there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648219</commentid>
    <comment_count>4</comment_count>
      <attachid>147227</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-13 10:29:12 -0700</bug_when>
    <thetext>Comment on attachment 147227
Patch

In addition to answer Alexey&apos;s question, this patch is missing an explanation of why we should make this change and a test that demonstrates the change in behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655695</commentid>
    <comment_count>5</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-22 12:35:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This sounds much like bug 87710. I had the below question in that bug:
&gt; 
&gt; &quot;This is surprising, because I can certainly focus Flash plug-ins to type in them in Safari on Mac and Windows. Keyboard also works in YouTube for controlling movies.&quot;
&gt; 
&gt; I&apos;m not sure if it has been answered or not - I did not see an answer that I could understand there.

On Chromium, we can click to focus plugins, but tab to focus does not seem to work. Plugins don&apos;t seem to participate in tab ordering. This patch addresses this. Is this a non-issue on Safari?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655723</commentid>
    <comment_count>6</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-22 13:29:31 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; This sounds much like bug 87710. I had the below question in that bug:
&gt; &gt; 
&gt; &gt; &quot;This is surprising, because I can certainly focus Flash plug-ins to type in them in Safari on Mac and Windows. Keyboard also works in YouTube for controlling movies.&quot;
&gt; &gt; 
&gt; &gt; I&apos;m not sure if it has been answered or not - I did not see an answer that I could understand there.
&gt; 
&gt; On Chromium, we can click to focus plugins, but tab to focus does not seem to work. Plugins don&apos;t seem to participate in tab ordering. This patch addresses this. Is this a non-issue on Safari?

I just tested YouTube on Safari for Mac, it seems plugins are click-to-focus there as well, and not keyboard focusable (tab-to-focus). We&apos;d like to add tab-to-focus for at least certain types of plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655727</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-22 13:35:42 -0700</bug_when>
    <thetext>OK, I didn&apos;t read &quot;keyboard focusable&quot; as &quot;focusable with keyboard&quot; or &quot;tab focusable&quot;, which it really is, hence the confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655780</commentid>
    <comment_count>8</comment_count>
      <attachid>147227</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-22 14:40:04 -0700</bug_when>
    <thetext>Comment on attachment 147227
Patch

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

&gt; Source/WebCore/html/HTMLPlugInElement.cpp:198
&gt; +    return chrome-&gt;client()-&gt;pluginsAreKeyboardFocusable();

I guess that raises the question of when a client wouldn&apos;t want plugins to be keyboard focusable.  In what situations would someone want to return false here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655843</commentid>
    <comment_count>9</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-22 15:32:30 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 147227 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147227&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLPlugInElement.cpp:198
&gt; &gt; +    return chrome-&gt;client()-&gt;pluginsAreKeyboardFocusable();
&gt; 
&gt; I guess that raises the question of when a client wouldn&apos;t want plugins to be keyboard focusable.  In what situations would someone want to return false here?

I&apos;m considering adding some additional information about the element passed into pluginsAreKeyboardFocusable.

This patch allows you to tab into a plugin, but you won&apos;t be able to tab out. I&apos;m working towards enabling this on Chromium.

Pepper does not currently support advancing the focus of the host page, the API has not yet been discussed or defined. However, some plugins do wish to participate in tabbing.

Until we define how plugins can advance focus of the host page in general, I feel that this behavior should depend on the port and/or plugin.

Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655851</commentid>
    <comment_count>10</comment_count>
      <attachid>147227</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-22 15:37:22 -0700</bug_when>
    <thetext>Comment on attachment 147227
Patch

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

&gt; Source/WebCore/html/HTMLPlugInElement.cpp:195
&gt; +    if (!document() || !document()-&gt;page())

I don&apos;t think document() can ever be null here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655856</commentid>
    <comment_count>11</comment_count>
      <attachid>147227</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-22 15:39:32 -0700</bug_when>
    <thetext>Comment on attachment 147227
Patch

I mean, this feels a bit incomplete.  It sounds like we&apos;re not going to make plugins keyboard focusable in general.  We might make a particular plugin keyboard focusable (i.e., if it indicates that it knows how to give the focus back).  In that case, wouldn&apos;t it make more sense to ask the plugin whether it support keyboard focusing rather than asking the ChromeClient ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656920</commentid>
    <comment_count>12</comment_count>
      <attachid>149369</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-25 15:21:46 -0700</bug_when>
    <thetext>Created attachment 149369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656924</commentid>
    <comment_count>13</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-25 15:25:53 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 147227 [details])
&gt; I mean, this feels a bit incomplete.  It sounds like we&apos;re not going to make plugins keyboard focusable in general.  We might make a particular plugin keyboard focusable (i.e., if it indicates that it knows how to give the focus back).  In that case, wouldn&apos;t it make more sense to ask the plugin whether it support keyboard focusing rather than asking the ChromeClient ?

How does this new plumbing look to you, Adam? HTMLPlugInElement::isKeyboardFocusable asks its Widget (WebPluginContainerImpl in Chromium&apos;s case) whether it supports keyboard focus. On Chromium, WebPluginContainerImpl asks WebPlugin (a particular plugin type). Chromium&apos;s plugins extend WebPlugin and can individually choose whether or not to support keyboard focus (i.e. whether to participate in tab focusing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656925</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-25 15:27:10 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656926</commentid>
    <comment_count>15</comment_count>
      <attachid>149369</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 15:29:03 -0700</bug_when>
    <thetext>Comment on attachment 149369
Patch

This looks a lot better, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656932</commentid>
    <comment_count>16</comment_count>
      <attachid>149369</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 15:35:19 -0700</bug_when>
    <thetext>Comment on attachment 149369
Patch

The API change LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656951</commentid>
    <comment_count>17</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-06-25 15:53:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; OK, I didn&apos;t read &quot;keyboard focusable&quot; as &quot;focusable with keyboard&quot; or &quot;tab focusable&quot;, which it really is, hence the confusion.

Alexey, any objections (or suggestions) to this change? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656958</commentid>
    <comment_count>18</comment_count>
      <attachid>149369</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-25 16:00:40 -0700</bug_when>
    <thetext>Comment on attachment 149369
Patch

Attachment 149369 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13094253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657717</commentid>
    <comment_count>19</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-06-26 10:52:29 -0700</bug_when>
    <thetext>FWIW, this looks good. For NPAPI plug-ins ports would have to implement the https://wiki.mozilla.org/NPAPI:AdvancedKeyHandling proposal to support keyboard focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657723</commentid>
    <comment_count>20</comment_count>
      <attachid>149369</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-06-26 10:56:05 -0700</bug_when>
    <thetext>Comment on attachment 149369
Patch

r=me, but please fix the Mac build before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675224</commentid>
    <comment_count>21</comment_count>
    <who name="Arunprasad">ararunprasad</who>
    <bug_when>2012-07-21 03:25:04 -0700</bug_when>
    <thetext>Currently you have handled focusing plugin for Tab keys(advanceFocusInDocumentOrder).

But I think you missed out the spatial navigation(advanceFocusDirectionally).

You can add the same implementation in as like above,
FocusController::updateFocusCandidateIfNeeded.
FocusController::advanceFocusDirectionallyInContainer.

-Arun</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689495</commentid>
    <comment_count>22</comment_count>
      <attachid>157022</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-08-07 15:32:46 -0700</bug_when>
    <thetext>Created attachment 157022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689545</commentid>
    <comment_count>23</comment_count>
      <attachid>157031</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-08-07 16:00:50 -0700</bug_when>
    <thetext>Created attachment 157031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689552</commentid>
    <comment_count>24</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-08-07 16:02:32 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Currently you have handled focusing plugin for Tab keys(advanceFocusInDocumentOrder).
&gt; 
&gt; But I think you missed out the spatial navigation(advanceFocusDirectionally).
&gt; 
&gt; You can add the same implementation in as like above,
&gt; FocusController::updateFocusCandidateIfNeeded.
&gt; FocusController::advanceFocusDirectionallyInContainer.
&gt; 
&gt; -Arun

I will address this in a separate patch. How is spatial navigation normally triggered in a browser?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689674</commentid>
    <comment_count>25</comment_count>
      <attachid>157031</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 17:54:51 -0700</bug_when>
    <thetext>Comment on attachment 157031
Patch

Clearing flags on attachment: 157031

Committed r124954: &lt;http://trac.webkit.org/changeset/124954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689675</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 17:54:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689710</commentid>
    <comment_count>27</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-07 18:21:39 -0700</bug_when>
    <thetext>Caused a build failure in Mac (EWS was offline)

Source/WebCore/html/HTMLPlugInElement.cpp:194:60: error: unused parameter &apos;event&apos; [-Werror,-Wunused-parameter]
bool HTMLPlugInElement::isKeyboardFocusable(KeyboardEvent* event) const
                                                           ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689714</commentid>
    <comment_count>28</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-07 18:22:57 -0700</bug_when>
    <thetext>Hopefully fixed http://trac.webkit.org/changeset/124963</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693192</commentid>
    <comment_count>29</comment_count>
    <who name="Arunprasad">ararunprasad</who>
    <bug_when>2012-08-12 02:21:51 -0700</bug_when>
    <thetext>&gt;&gt; Currently you have handled focusing plugin for Tab keys(advanceFocusInDocumentOrder).
&gt;&gt; 
&gt;&gt; But I think you missed out the spatial navigation(advanceFocusDirectionally).
&gt;&gt; 
&gt;&gt; You can add the same implementation in as like above,
&gt;&gt; FocusController::updateFocusCandidateIfNeeded.
&gt;&gt; FocusController::advanceFocusDirectionallyInContainer.
&gt;&gt; 
&gt;&gt; -Arun

&gt;I will address this in a separate patch. How is spatial navigation normally &gt;triggered in a browser?

You can easily understand by looking FocusController::advanceFocusDirectionally. Also spatial navigation has to be enabled explicitly in Settings.

-Arun</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147227</attachid>
            <date>2012-06-12 22:15:43 -0700</date>
            <delta_ts>2012-06-25 15:21:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88958-20120612221542.patch</filename>
            <type>text/plain</type>
            <size>7261</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlMDQ0YWEwMWUzZjAx
YjRhZDJjMTJhMDFmNzdjOTQwMTAwOTZkMS4uYzllZjA3NzE5ODMzMmMzNmJhYTgwN2IwOGUzZWNi
NjBmYjM0ZTcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTEyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsbG93IHBvcnRzIHRv
IG1ha2UgcGx1Z2lucyBrZXlib2FyZCBmb2N1c2FibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6aXNQbHVnaW5FbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJ
bkVsZW1lbnQ6OmlzUGx1Z2luRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oOgorICAgICAgICAoSFRNTFBsdWdJbkVsZW1lbnQpOgorICAgICAgICAqIHBhZ2UvQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnBsdWdpbnNBcmVL
ZXlib2FyZEZvY3VzYWJsZSk6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50
T3JkZXIpOgorCiAyMDEyLTA2LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IGNsZWFyaW5nIHJldmlzaW9uIGhp
c3RvcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDI2YzU2ODVlMmQ4MjgwZDMwNjk3
NDFjN2NiNjhhMjQ3ODE4YmFhM2MuLjViZDAzY2ZjMWYzYWZlY2RhNzRkOGEzZmRlMjdjNTY2ZGY1
NTFjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDYtMTIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWxs
b3cgcG9ydHMgdG8gbWFrZSBwbHVnaW5zIGtleWJvYXJkIGZvY3VzYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6cGx1Z2luc0FyZUtleWJv
YXJkRm9jdXNhYmxlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJk
RXZlbnRCdWlsZGVyOjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcik6CisKIDIwMTItMDYtMTIgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjAwNTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA1MzA4NGQ3MTQ5NjQ4
NTQzOTg1NTdkNTVmNTZlMTMyYzI1MDZmM2EyLi5hYjk4YmU0NDlhYWRiZGI5OGMxZDk3ZDM5NWZm
ZDY5NjI2MGEzY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGlzQXR0cmlidXRlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0YU5vZGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lT3duZXJFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5FbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzRG9jdW1lbnROb2RlKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc1NoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzU2hhZG93Um9vdEZs
YWcpOyB9CiAgICAgYm9vbCBpbk5hbWVkRmxvdygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSW5O
YW1lZEZsb3dGbGFnKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNw
cAppbmRleCA1YmRmNjBkNDQyMmJhODk0OTNiMDczMjVhYTljYjg1OGRmMWIwNWQxLi42Njc4NTQz
ZDk1ZDQyNDZhZmRhNjZiYjI2Y2Y0NDQxNzVjNjMyZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMTkwLDYgKzE5MCwxOSBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MRnJh
bWVPd25lckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCitib29sIEhU
TUxQbHVnSW5FbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2ZW50
KSBjb25zdAoreworICAgIGlmICghZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+cGFnZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQ2hyb21lKiBjaHJvbWUgPSBkb2N1bWVudCgpLT5w
YWdlKCktPmNocm9tZSgpOworICAgIHJldHVybiBjaHJvbWUtPmNsaWVudCgpLT5wbHVnaW5zQXJl
S2V5Ym9hcmRGb2N1c2FibGUoKTsKK30KKworYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6aXNQbHVn
aW5FbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogCiBOUE9iamVjdCogSFRNTFBsdWdJbkVsZW1lbnQ6OmdldE5Q
T2JqZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA4MTNm
ODA2M2Q5ZTE4MTNmNGYzYjYwOGNiMmQzYmIzZDc5MTI4NDExLi5lYjU2NjBkZGM1NjIzOWJmZWUx
Y2NjYWExOWU1MTIyZWFiNzRiMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oCkBAIC03Myw2ICs3Myw5IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJlbmRlcldp
ZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpID0gMDsKIAorICAgIHZpcnR1YWwgYm9v
bCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNQbHVnaW5FbGVtZW50KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBT
Y3JpcHRJbnN0YW5jZSBtX2luc3RhbmNlOwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggOTFjMDRiZjllNTkxZGYwOTcyYzIy
YzAwYjNjYTg0ZDNjNjAxOGY5MS4uMDk1MGI4MWEwNTVlMzQzODk1ODMzYTU3NDI5MDA1Yjc3NDkx
NGM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zNTIsNiArMzUyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBvaW50ZXJV
bmxvY2soKSB7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyAgICAgICAgdmlydHVhbCBib29sIHBsdWdpbnNBcmVLZXli
b2FyZEZvY3VzYWJsZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDVhYjZkYTM3ZTdiODFlODA3MTE0OWE4ZGY0M2E5ZjYz
YmU5OGNmZTEuLjkyY2NjODg5YjJiNDg2NGM5NDRkMWI2NDkzZTRiMDVlZmRkMzJjMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM0Nyw3ICszNDcsNyBAQCBi
b29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgICAgICAvLyBGSVhNRTogTWF5IG5lZWQgYSB3YXkg
dG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAobm9kZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAgaWYgKG5vZGUtPmlzRnJhbWVP
d25lckVsZW1lbnQoKSAmJiAoIW5vZGUtPmlzUGx1Z2luRWxlbWVudCgpIHx8ICFub2RlLT5pc0tl
eWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkpIHsKICAgICAgICAgLy8gV2UgZm9jdXMgZnJhbWVzIHJh
dGhlciB0aGFuIGZyYW1lIG93bmVycy4KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3Qg
Zm9jdXMgZnJhbWVzIHRoYXQgaGF2ZSBubyBzY3JvbGxiYXJzLCBhcyBmb2N1c2luZyB0aGVtIGlz
bid0IHVzZWZ1bCB0byB0aGUgdXNlci4KICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBv
d25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KG5vZGUuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCBlMDMyNGY4NTEwNzkwNzk3YWIxNGNmNTc5ZTdhYTAzNTA4Yzg1M2NkLi44YzIzYWFjY2E4NDM3
ODBiN2E0OWZmN2U2NGQyODhmZjA5ZmI2ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMTA5Myw0ICsxMDkzLDEwIEBAIGJvb2wg
Q2hyb21lQ2xpZW50SW1wbDo6aXNQb2ludGVyTG9ja2VkKCkKIH0KICNlbmRpZgogCitib29sIENo
cm9tZUNsaWVudEltcGw6OnBsdWdpbnNBcmVLZXlib2FyZEZvY3VzYWJsZSgpIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IEVuYWJsZSB0aGlzIG9uY2UgcGVwcGVyIHN1cHBvcnRzIHRhYiBmb2N1cy4K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDU4OTQxNzdlMDEy
MWQxOGQ1ZTM3NDliYmQyNmIxOGYyNjlkYThlNTUuLjhlNTYwMjJmYzBmZmEwYjZiMWE5ZmJiZmIy
ZGNhNjNmNzg0MTNhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tl
ZCgpOwogI2VuZGlmCisgICAgdmlydHVhbCBib29sIHBsdWdpbnNBcmVLZXlib2FyZEZvY3VzYWJs
ZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFdlYk5hdmlnYXRpb25Qb2xpY3kgZ2V0TmF2aWdh
dGlvblBvbGljeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDIwN2Q4MWNhMzg0ZDM2YzgzYTRkMTAxZTQ3
MGRhOWUwOTIyMjM0ZDguLmI5YmIwZDE5YTA1NWZjZTZjYTc4MmMwNzQ4NDE5NGEyZjhiOTM5NzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50
Q29udmVyc2lvbi5jcHAKQEAgLTQ2Miw2ICs0NjIsNyBAQCBXZWJLZXlib2FyZEV2ZW50QnVpbGRl
cjo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoY29uc3QgS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAg
ICAgICAgIHRleHRbaV0gPSBldmVudC5rZXlFdmVudCgpLT50ZXh0KClbaV07CiAgICAgICAgIHVu
bW9kaWZpZWRUZXh0W2ldID0gZXZlbnQua2V5RXZlbnQoKS0+dW5tb2RpZmllZFRleHQoKVtpXTsK
ICAgICB9CisgICAgbWVtY3B5KGtleUlkZW50aWZpZXIsIGV2ZW50LmtleUlkZW50aWZpZXIoKS5h
c2NpaSgpLmRhdGEoKSwgZXZlbnQua2V5SWRlbnRpZmllcigpLmxlbmd0aCgpKTsKIH0KIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149369</attachid>
            <date>2012-06-25 15:21:46 -0700</date>
            <delta_ts>2012-08-07 15:32:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88958-20120625182145.patch</filename>
            <type>text/plain</type>
            <size>13603</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkzNTg3ZTBlMWViNTNh
MmE0NTA4YzE4ZjI4M2M5ZjNmNDUxMzQyNS4uNTBjMjVkYzhiM2RlMWM5YjQ5YTJhMDIwMmJiOTg3
MjQ1ZDAwMTJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA2LTI1ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsbG93IHBsdWdpbnMg
dG8gZGVjaWRlIHdoZXRoZXIgdGhleSBhcmUga2V5Ym9hcmQgZm9jdXNhYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk1OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmlzUGx1Z2luRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudDo6
cmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncyk6CisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5oOgorICAgICAgICAoSFRNTEFwcGxldEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojpy
ZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxFbWJlZEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJl
bmRlcldpZGdldEZvckpTQmluZGluZ3MpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxPYmplY3RFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojpw
bHVnaW5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmlzS2V5
Ym9hcmRGb2N1c2FibGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGx1Z0luRWxlbWVudDo6aXNQbHVnaW5FbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50Lmg6CisgICAgICAgIChIVE1MUGx1Z0luRWxlbWVudCk6CisgICAgICAgICog
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luVmlld0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdCYXNlOjpzdXBwb3J0
c0tleWJvYXJkRm9jdXMpOgorCiAyMDEyLTA2LTI0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIx
MTA2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4YTZmMTM0ZWEwMjlkOGM0YWRmNzIz
YjNiMjcwNDA4ZmU1N2JiM2JhLi4xNjdiZTUxZWZjMGZiMWZhNGI1ODI0ZDNhMjVjNzg3ODlkMzEw
MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2
LTI1ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsbG93
IHBsdWdpbnMgdG8gZGVjaWRlIHdoZXRoZXIgdGhleSBhcmUga2V5Ym9hcmQgZm9jdXNhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dl
YlBsdWdpbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW46OnN1cHBvcnRzS2V5Ym9hcmRG
b2N1cyk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OldlYktleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnN1cHBvcnRzS2V5Ym9hcmRGb2N1cyk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBs
Lmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNi0yMyAgS3dh
bmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFtjaHJvbWl1bV0g
UmV0dXJuIGhhcyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIHZvaWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmlu
ZGV4IGM5YzI2NzRkMjdjNWNjMWUzMDQ4ZjBmNTMwMzc3ZWMzNjFkNjkxYmEuLjVhMjc3MmQ2YTI4
M2I5OTg5OTBhZmRjZTkwOWQzOTkxZjJjZjE3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjE3LDYgKzIx
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDaGFyYWN0ZXJEYXRhTm9kZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRnJhbWVPd25lckVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdp
bkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5v
ZGUoKSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZs
YWcoSXNTaGFkb3dSb290RmxhZyk7IH0KICAgICBib29sIGluTmFtZWRGbG93KCkgY29uc3QgeyBy
ZXR1cm4gZ2V0RmxhZyhJbk5hbWVkRmxvd0ZsYWcpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFwcGxldEVsZW1lbnQuY3BwCmluZGV4IDljN2ViNWQ1NTU0MDk3MDRiZmJjNjllNDRiNDFkYzlk
YWYyNGUxYTMuLmRlMTJjMjFkNTgxMWYzOGQ3OTVhNGRiYmQyNDVlMmUzODU2ZWNjNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC0xMTAsNyArMTEwLDcg
QEAgdm9pZCBIVE1MQXBwbGV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZl
bnQpCiAgICAgd2lkZ2V0LT5oYW5kbGVFdmVudChldmVudCk7CiB9CiAKLVJlbmRlcldpZGdldCog
SFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKQorUmVuZGVyV2lk
Z2V0KiBIVE1MQXBwbGV0RWxlbWVudDo6cmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0
CiB7CiAgICAgaWYgKCFjYW5FbWJlZEphdmEoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmgKaW5kZXggZDNmZjY0MzhmMDM4Y2JiNjIxMzY4
NzhhM2JhZGQ1YWVlMzVmOGY4Yy4uYzg0MDE2NjZhNmQwY2VmMDYzZDc0YTYxNmViMjkxMDczYWFl
NGJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaApAQCAtNDIsNyAr
NDIsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRGb3JKU0Jp
bmRpbmdzKCk7CisgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmlu
ZGluZ3MoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0dXBBcHBsZXQoKSBjb25zdDsKICAgICBib29s
IGNhbkVtYmVkSmF2YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5jcHAKaW5kZXggYjljNmU0MWRhN2MxMDg4MWYxZDY3NjlmNmExMjlmZjE2MzA2ZDE5Mi4uN2E1
YjI3NDQ0ZmE3Y2ZiMGVmYWI1NjMyZTc5ZGUxNmM0MDVkMTk1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBpbmxpbmUg
UmVuZGVyV2lkZ2V0KiBmaW5kV2lkZ2V0UmVuZGVyZXIoY29uc3QgTm9kZSogbikKICAgICByZXR1
cm4gMDsKIH0KIAotUmVuZGVyV2lkZ2V0KiBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJXaWRnZXRG
b3JKU0JpbmRpbmdzKCkKK1JlbmRlcldpZGdldCogSFRNTEVtYmVkRWxlbWVudDo6cmVuZGVyV2lk
Z2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIGZpbmRXaWRnZXRSZW5kZXJl
cih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggYmE4Mjhh
MTcyZGRmN2QzZTg3YWU2MTdmOWUzNTA4OTAwNjEzYjNiNi4uYmRhMmU5MTQ5ZDNiMjUxOTZlODNl
ZjcwMmUzMmMzZTkxNWU2MmU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50
LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRy
aWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBRdWFsaWZpZWROYW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCk7CisgICAg
dmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDhjNWI4MTdh
MjU3OTdjNjRjMzk0MmI0MmQ5MjRkYTk3N2YwOWQ0MjEuLjg5MzIzN2E3MTNmYTEzM2IzNzEwOTRk
MmEyOTA2N2ViNWFhYjE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhU
TUxPYmplY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9y
bSwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKLVJlbmRlcldpZGdldCogSFRNTE9iamVjdEVsZW1l
bnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKQorUmVuZGVyV2lkZ2V0KiBIVE1MT2JqZWN0
RWxlbWVudDo6cmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAgZG9jdW1l
bnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJu
IHJlbmRlclBhcnQoKTsgLy8gVGhpcyB3aWxsIHJldHVybiAwIGlmIHRoZSByZW5kZXJlciBpcyBu
b3QgYSBSZW5kZXJQYXJ0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmlu
ZGV4IDkzMmU1YmNjZDlhMTMyMTRiMDBlMGNjZmYwMGNlMWJkODA0N2RiZWUuLjk5ZmIxYWRiZDVl
NzEzN2NjMTQ0OTVkOGQxMTExNDJjYjIzYmM4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmgKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBjb25zdCBRdWFsaWZpZWROYW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBj
b25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRp
bmdzKCk7CisgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGlu
Z3MoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcAppbmRleCA1YmRmNjBkNDQyMmJhODk0OTNiMDczMjVhYTljYjg1OGRm
MWIwNWQxLi41MTdhNThkOWM1ZjA4MmRkNDFiNjgwNzlmYTIyOWNmNjk3MTYyM2FkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2luY2x1ZGUgIlJlbmRlckVt
YmVkZGVkT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKQEAgLTEyNSw3ICsxMjYsNyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50OjpndWFy
ZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiAgICAg
cmV0dXJuIGJlZm9yZUxvYWRBbGxvd2VkTG9hZDsKIH0KIAotV2lkZ2V0KiBIVE1MUGx1Z0luRWxl
bWVudDo6cGx1Z2luV2lkZ2V0KCkKK1dpZGdldCogSFRNTFBsdWdJbkVsZW1lbnQ6OnBsdWdpbldp
ZGdldCgpIGNvbnN0CiB7CiAgICAgaWYgKG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyKSB7CiAg
ICAgICAgIC8vIFRoZSBwbHVnLWluIGhhc24ndCBsb2FkZWQgeWV0LCBhbmQgaXQgbWFrZXMgbm8g
c2Vuc2UgdG8gdHJ5IHRvIGxvYWQgaWYgYmVmb3JlbG9hZCBoYW5kbGVyIGhhcHBlbmVkIHRvIHRv
dWNoIHRoZSBwbHVnLWluIGVsZW1lbnQuCkBAIC0xOTAsNiArMTkxLDIzIEBAIHZvaWQgSFRNTFBs
dWdJbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxG
cmFtZU93bmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKK2Jvb2wg
SFRNTFBsdWdJbkVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCogZXZl
bnQpIGNvbnN0Cit7CisgICAgaWYgKCFkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGNvbnN0IFBsdWdpblZpZXdCYXNlKiBwbHVnaW4gPSBwbHVnaW5XaWRn
ZXQoKSAmJiBwbHVnaW5XaWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpID8gc3RhdGljX2Nhc3Q8
Y29uc3QgUGx1Z2luVmlld0Jhc2UqPihwbHVnaW5XaWRnZXQoKSkgOiAwOworICAgIGlmIChwbHVn
aW4pCisgICAgICAgIHJldHVybiBwbHVnaW4tPnN1cHBvcnRzS2V5Ym9hcmRGb2N1cygpOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEhUTUxQbHVnSW5FbGVtZW50Ojppc1BsdWdpbkVs
ZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAKIE5QT2JqZWN0KiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0TlBPYmpl
Y3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IDgxM2Y4MDYz
ZDllMTgxM2Y0ZjNiNjA4Y2IyZDNiYjNkNzkxMjg0MTEuLmRmZjM4NTk5Mzg1ODkwYzEyZmJhOTlh
OWIzNjA3MmI0NTAzMzJkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1NjcmlwdEluc3RhbmNlIGdl
dEluc3RhbmNlKCk7CiAKLSAgICBXaWRnZXQqIHBsdWdpbldpZGdldCgpOworICAgIFdpZGdldCog
cGx1Z2luV2lkZ2V0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICBOUE9iamVjdCogZ2V0TlBPYmplY3QoKTsKQEAgLTcxLDcgKzcxLDEwIEBAIHByaXZhdGU6
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCi0gICAg
dmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSA9IDA7Cisg
ICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25z
dCA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2
ZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUGx1Z2luRWxlbWVudCgpIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIG11dGFibGUgU2NyaXB0SW5zdGFuY2UgbV9pbnN0YW5jZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA1YWI2ZGEzN2U3YjgxZTgwNzEx
NDlhOGRmNDNhOWY2M2JlOThjZmUxLi45MmNjYzg4OWIyYjQ4NjRjOTQ0ZDFiNjQ5M2U0YjA1ZWZk
ZDMyYzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNDcs
NyArMzQ3LDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRP
cmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgLy8gRklYTUU6IE1h
eSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKG5vZGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgeworICAgIGlmIChu
b2RlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkgJiYgKCFub2RlLT5pc1BsdWdpbkVsZW1lbnQoKSB8
fCAhbm9kZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkpKSB7CiAgICAgICAgIC8vIFdlIGZv
Y3VzIGZyYW1lcyByYXRoZXIgdGhhbiBmcmFtZSBvd25lcnMuCiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbm90IGZvY3VzIGZyYW1lcyB0aGF0IGhhdmUgbm8gc2Nyb2xsYmFycywgYXMgZm9j
dXNpbmcgdGhlbSBpc24ndCB1c2VmdWwgdG8gdGhlIHVzZXIuCiAgICAgICAgIEhUTUxGcmFtZU93
bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihu
b2RlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
d0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAppbmRleCA1
ZjEzYzg4NDYyZTVkMWQ5YjczMjNlYzEwOGEyNDZjOWM2MzY3ZmI0Li42MTdiNDQ0ZjE3NjY3ZmUy
NmUxMTMxNmUwYWYxZThkZjA5NWM5MmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXdCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3QmFzZS5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGEgaGFjayB0aGF0IHdvcmtzIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZSBXZWJLaXQyIFBs
dWdpblZpZXcgaXNuJ3QgYSBTY3JvbGxhYmxlQXJlYS4KICAgICB2aXJ0dWFsIGJvb2wgd2FudHNX
aGVlbEV2ZW50cygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
S2V5Ym9hcmRGb2N1cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAg
ICBQbHVnaW5WaWV3QmFzZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQgPSAwKSA6IFdpZGdldCh3aWRn
ZXQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1
Z2luLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAppbmRleCA1
ZWY4ODRjNzNhM2JlOGRhYjlhMWZjZWNlZThiNThjZDE4Y2JmYzBiLi44YWJhZjNiZmUwZjkzNWM5
MmIwOGJiYzBhMDZjOWE5ZTc0MzAxYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJQbHVnaW4uaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgLy8gZnJvbSB0aGUg
cGx1Z2luLiBUaGUgdmFsdWUgd291bGQgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYW1lIGF0dHJp
YnV0ZQogICAgIC8vIG9mIHRoZSBjb3JyZXNwb25kaW5nIG9iamVjdCBlbGVtZW50LgogICAgIHZp
cnR1YWwgYm9vbCBnZXRGb3JtVmFsdWUoV2ViU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlib2FyZEZvY3VzKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0
JikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMjA3ZDgxY2EzODRkMzZjODNhNGQxMDFlNDcwZGE5
ZTA5MjIyMzRkOC4uYjliYjBkMTlhMDU1ZmNlNmNhNzgyYzA3NDg0MTk0YTJmOGI5Mzk3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcApAQCAtNDYyLDYgKzQ2Miw3IEBAIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyOjpX
ZWJLZXlib2FyZEV2ZW50QnVpbGRlcihjb25zdCBLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICAg
ICAgdGV4dFtpXSA9IGV2ZW50LmtleUV2ZW50KCktPnRleHQoKVtpXTsKICAgICAgICAgdW5tb2Rp
ZmllZFRleHRbaV0gPSBldmVudC5rZXlFdmVudCgpLT51bm1vZGlmaWVkVGV4dCgpW2ldOwogICAg
IH0KKyAgICBtZW1jcHkoa2V5SWRlbnRpZmllciwgZXZlbnQua2V5SWRlbnRpZmllcigpLmFzY2lp
KCkuZGF0YSgpLCBldmVudC5rZXlJZGVudGlmaWVyKCkubGVuZ3RoKCkpOwogfQogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMDQwZWI2Mzg0NTE3ODYzNTM4ZTI4MzUw
NzAxMDA3NTFlYTg4Mzg3NS4uZmEwN2MxMGZmNGJmZmUyZGYwZDNhMzAxN2I1Y2U0ZjEyYmQyOWFh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFp
bmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHAKQEAgLTUzMyw2ICs1MzMsMTEgQEAgYm9vbCBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjpnZXRGb3JtVmFsdWUoU3RyaW5nJiB2YWx1ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK2Jvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3VwcG9ydHNLZXlib2FyZEZvY3VzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnN1cHBvcnRzS2V5Ym9hcmRGb2N1cygp
OworfQorCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OndpbGxEZXN0cm95UGx1Z2luTG9h
ZE9ic2VydmVyKFdlYlBsdWdpbkxvYWRPYnNlcnZlciogb2JzZXJ2ZXIpCiB7CiAgICAgc2l6ZV90
IHBvcyA9IG1fcGx1Z2luTG9hZE9ic2VydmVycy5maW5kKG9ic2VydmVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAppbmRleCBh
MTUxZjcwOTAxNDU1MDYxNDNhYzM0N2Q0ZDBhOGM3ZGFhNmRkODBiLi5kMmE3ODk5MjI3ZGI0MTcy
YThlNmY3ZmU0OTdmMjYwN2Q3YWU5MTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIFBsdWdpblZpZXdCYXNlIG1ldGhvZHMKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
Rm9ybVZhbHVlKFN0cmluZyYpOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0tleWJvYXJkRm9j
dXMoKSBjb25zdDsKIAogICAgIC8vIFdpZGdldCBtZXRob2RzCiAgICAgdmlydHVhbCB2b2lkIHNl
dEZyYW1lUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157022</attachid>
            <date>2012-08-07 15:32:46 -0700</date>
            <delta_ts>2012-08-07 16:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88958-20120807183221.patch</filename>
            <type>text/plain</type>
            <size>12351</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhjZjNlMWNiMjVjYzZh
MmZiMjY4MDllOTRiZGM0NDJhZGJhNjg5Ny4uNTNlZTgxYTBiM2VlODY5MTRlYzgzMjUwNjE5NGY4
Njg3OGRiZTRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTA3ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsbG93IHBsdWdpbnMg
dG8gZGVjaWRlIHdoZXRoZXIgdGhleSBhcmUga2V5Ym9hcmQgZm9jdXNhYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk1OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjppc1BsdWdpbkVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojpy
ZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxFbWJlZEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJl
bmRlcldpZGdldEZvckpTQmluZGluZ3MpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxPYmplY3RFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojpw
bHVnaW5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmlzS2V5
Ym9hcmRGb2N1c2FibGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGx1Z0luRWxlbWVudDo6aXNQbHVnaW5FbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50Lmg6CisgICAgICAgIChIVE1MUGx1Z0luRWxlbWVudCk6CisgICAgICAgICog
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luVmlld0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdCYXNlOjpzdXBwb3J0
c0tleWJvYXJkRm9jdXMpOgorCiAyMDEyLTA4LTA3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERvIG5vdCBkaXNhYmxlIG5l
dHdvcmsgdHJhY2tpbmcgd2hpbGUgcHJvZmlsaW5nIGNwdS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNzhkYWE1OTAzM2JkMjdmOWZjMTgzM2VlOTQ0NjIxNjEzZjRmYmYxZS4uYzA1Mjhi
NzZlNmQwN2YwNGU4MWU2YWM1ZGU5OGU2ODBhYjk0ZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOC0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVs
QGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBwbHVnaW5zIHRvIGRlY2lkZSB3aGV0aGVy
IHRoZXkgYXJlIGtleWJvYXJkIGZvY3VzYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5NTgKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbjo6c3VwcG9ydHNLZXlib2FyZEZvY3VzKToKKyAgICAgICAgKiBzcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50QnVpbGRlcjo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6c3VwcG9ydHNLZXlib2FyZEZvY3VzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNv
bnRhaW5lckltcGwpOgorCiAyMDEyLTA4LTA3ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIHRoZSBNZW1vcnlDbGFz
c0luZm8gY2xhc3MgYSBub3QtdGVtcGxhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDcwY2Q0NzQ0NGNmMDMx
OGU0OGM2YWIzYjMzMjYxNjRhNzkxZGNmZmMuLjE0MWNlOTZiYjVlYjI5ZWUyY2E4NDdiMWM1MWRi
NWIxYzhkNWJiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNDaGFyYWN0ZXJEYXRhTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRnJhbWVPd25lckVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdpbkVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdDsKICAgICBi
b29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNTaGFkb3dSb290Rmxh
Zyk7IH0KICAgICBib29sIGluTmFtZWRGbG93KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJbk5h
bWVkRmxvd0ZsYWcpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcApp
bmRleCAxNWUzMmVlZjcwNDI4OWEwMWNlNTg5YTJmODcyMjlkNTRiY2Y3NTlmLi4zYmMyZDkzM2Qz
M2E1N2Y2ZmNjNDdhNGQyMjIyODZhMGM3OTY3MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVtYmVkRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJX
aWRnZXQqIGZpbmRXaWRnZXRSZW5kZXJlcihjb25zdCBOb2RlKiBuKQogICAgIHJldHVybiAwOwog
fQogCi1SZW5kZXJXaWRnZXQqIEhUTUxFbWJlZEVsZW1lbnQ6OnJlbmRlcldpZGdldEZvckpTQmlu
ZGluZ3MoKQorUmVuZGVyV2lkZ2V0KiBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJXaWRnZXRGb3JK
U0JpbmRpbmdzKCkgY29uc3QKIHsKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gZmluZFdpZGdldFJlbmRlcmVyKHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAppbmRleCBiYTgyOGExNzJkZGY3
ZDNlODdhZTYxN2Y5ZTM1MDg5MDA2MTNiM2I2Li5iZGEyZTkxNDlkM2IyNTE5NmU4M2VmNzAyZTMy
YzNlOTE1ZTYyZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaApAQCAt
NDMsNyArNDMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0OwogCi0gICAgdmlydHVh
bCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKTsKKyAgICB2aXJ0dWFs
IFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0OwogCiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNTcxNWQyMzgyNTYxMjg3
Mzg2NmQxMzZjYzU3MDA5Njk0NmYzOTA1MS4uY2YxODVhOGQzZThiNjg0OWY5MmUxZTFlOWY5YWQw
MGRkMDA4MzMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
QEAgLTczLDcgKzczLDcgQEAgUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gSFRNTE9iamVj
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEhUTUxPYmplY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtLCBjcmVh
dGVkQnlQYXJzZXIpKTsKIH0KIAotUmVuZGVyV2lkZ2V0KiBIVE1MT2JqZWN0RWxlbWVudDo6cmVu
ZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpCitSZW5kZXJXaWRnZXQqIEhUTUxPYmplY3RFbGVtZW50
OjpyZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QKIHsKICAgICBkb2N1bWVudCgpLT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gcmVuZGVy
UGFydCgpOyAvLyBUaGlzIHdpbGwgcmV0dXJuIDAgaWYgdGhlIHJlbmRlcmVyIGlzIG5vdCBhIFJl
bmRlclBhcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXggZTEy
Nzg1ZDEwOTcwZjAzOGQ0ZmNlNjBlOTQxZjg3OTQ1ZjhmMTNkYi4uZTNiNDliNGJkNDcyZjJhNjAw
MjA4MzU5YzJmMmUzNTNhOWIwMDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaApAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1VS
TEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKTsK
KyAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNv
bnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0
SGFzaFNldDxLVVJMPiYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuY3BwCmluZGV4IDViZGY2MGQ0NDIyYmE4OTQ5M2IwNzMyNWFhOWNiODU4ZGYxYjA1ZDEu
LjUxN2E1OGQ5YzVmMDgyZGQ0MWI2ODA3OWZhMjI5Y2Y2OTcxNjIzYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgpAQCAtMTI1LDcgKzEyNiw3IEBAIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNw
YXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKICAgICByZXR1cm4g
YmVmb3JlTG9hZEFsbG93ZWRMb2FkOwogfQogCi1XaWRnZXQqIEhUTUxQbHVnSW5FbGVtZW50Ojpw
bHVnaW5XaWRnZXQoKQorV2lkZ2V0KiBIVE1MUGx1Z0luRWxlbWVudDo6cGx1Z2luV2lkZ2V0KCkg
Y29uc3QKIHsKICAgICBpZiAobV9pbkJlZm9yZUxvYWRFdmVudEhhbmRsZXIpIHsKICAgICAgICAg
Ly8gVGhlIHBsdWctaW4gaGFzbid0IGxvYWRlZCB5ZXQsIGFuZCBpdCBtYWtlcyBubyBzZW5zZSB0
byB0cnkgdG8gbG9hZCBpZiBiZWZvcmVsb2FkIGhhbmRsZXIgaGFwcGVuZWQgdG8gdG91Y2ggdGhl
IHBsdWctaW4gZWxlbWVudC4KQEAgLTE5MCw2ICsxOTEsMjMgQEAgdm9pZCBIVE1MUGx1Z0luRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgSFRNTEZyYW1lT3du
ZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAorYm9vbCBIVE1MUGx1
Z0luRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KiBldmVudCkgY29u
c3QKK3sKKyAgICBpZiAoIWRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgY29uc3QgUGx1Z2luVmlld0Jhc2UqIHBsdWdpbiA9IHBsdWdpbldpZGdldCgpICYm
IHBsdWdpbldpZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkgPyBzdGF0aWNfY2FzdDxjb25zdCBQ
bHVnaW5WaWV3QmFzZSo+KHBsdWdpbldpZGdldCgpKSA6IDA7CisgICAgaWYgKHBsdWdpbikKKyAg
ICAgICAgcmV0dXJuIHBsdWdpbi0+c3VwcG9ydHNLZXlib2FyZEZvY3VzKCk7CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OmlzUGx1Z2luRWxlbWVudCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKIAogTlBPYmplY3QqIEhUTUxQbHVnSW5FbGVtZW50OjpnZXROUE9iamVjdCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggMDY3ZTlhZWY5ZTkwY2Ey
Y2VhNDBjZjQ2MjRkNGQ4NTI2OTFhMjM2Ny4uOTQ4ODc3NDhkMDVhM2JjY2Q1ZTE2MDExOWNkNjRj
OGI1ZThlMDg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAt
NDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzU2NyaXB0SW5zdGFuY2UgZ2V0SW5zdGFu
Y2UoKTsKIAotICAgIFdpZGdldCogcGx1Z2luV2lkZ2V0KCk7CisgICAgV2lkZ2V0KiBwbHVnaW5X
aWRnZXQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIE5Q
T2JqZWN0KiBnZXROUE9iamVjdCgpOwpAQCAtNzIsNyArNzIsMTAgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpID0gMDsKKyAgICB2aXJ0
dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0ID0gMDsK
KworICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5FbGVtZW50KCkgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgbXV0YWJsZSBTY3JpcHRJbnN0YW5jZSBtX2luc3RhbmNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGJmNTgyYjQ3MzViZjI3NDE2N2Y3MDVkNzA3
OTk0NzZkZDFiYTVjYzguLmJmOTUxMmJkMmUwNTI0YmUyZjgwNzc3M2MzMzU2ZDlkODcyNGE3YzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM1Miw3ICszNTIs
NyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgICAgICAvLyBGSVhNRTogTWF5IG5lZWQg
YSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAobm9kZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAgaWYgKG5vZGUtPmlz
RnJhbWVPd25lckVsZW1lbnQoKSAmJiAoIW5vZGUtPmlzUGx1Z2luRWxlbWVudCgpIHx8ICFub2Rl
LT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkpIHsKICAgICAgICAgLy8gV2UgZm9jdXMgZnJh
bWVzIHJhdGhlciB0aGFuIGZyYW1lIG93bmVycy4KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBub3QgZm9jdXMgZnJhbWVzIHRoYXQgaGF2ZSBubyBzY3JvbGxiYXJzLCBhcyBmb2N1c2luZyB0
aGVtIGlzbid0IHVzZWZ1bCB0byB0aGUgdXNlci4KICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVt
ZW50KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KG5vZGUuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oCmluZGV4IDcwMmU5NWFk
YmU1YjJiOTZkYjMzMjM4OTc2ZTY0M2UxNTgxMGRiOWIuLjMxMmQ1N2MwOWQzNzgzMGI4NjNjOGQy
ODM5MzFkN2QxMjdkZDIxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlld0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNl
LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBo
YWNrIHRoYXQgd29ya3MgYXJvdW5kIHRoZSBmYWN0IHRoYXQgdGhlIFdlYktpdDIgUGx1Z2luVmll
dyBpc24ndCBhIFNjcm9sbGFibGVBcmVhLgogICAgIHZpcnR1YWwgYm9vbCB3YW50c1doZWVsRXZl
bnRzKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlib2Fy
ZEZvY3VzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4cGxp
Y2l0IFBsdWdpblZpZXdCYXNlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCA9IDApIDogV2lkZ2V0KHdp
ZGdldCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQ
bHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbi5oCmluZGV4
IDVlZjg4NGM3M2EzYmU4ZGFiOWExZmNlY2VlOGI1OGNkMThjYmZjMGIuLjhhYmFmM2JmZTBmOTM1
YzkyYjA4YmJjMGEwNmM5YTllNzQzMDFhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlBsdWdpbi5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICAvLyBmcm9tIHRo
ZSBwbHVnaW4uIFRoZSB2YWx1ZSB3b3VsZCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5hbWUgYXR0
cmlidXRlCiAgICAgLy8gb2YgdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGVsZW1lbnQuCiAgICAg
dmlydHVhbCBib29sIGdldEZvcm1WYWx1ZShXZWJTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0tleWJvYXJkRm9jdXMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJl
Y3QmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCBjMGFjYTJkNDkzZWVjMThkYTk1OWYzNjlkNWM5
NzBhN2E4NTk2YjVhLi4wMzkxYzI4NWI3ZjhlM2U2Njk1MTYzOWQzNjVmNThiZDczZThhOTkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENv
bnZlcnNpb24uY3BwCkBAIC00NjQsNiArNDY0LDcgQEAgV2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXI6
OldlYktleWJvYXJkRXZlbnRCdWlsZGVyKGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAg
ICAgICB0ZXh0W2ldID0gZXZlbnQua2V5RXZlbnQoKS0+dGV4dCgpW2ldOwogICAgICAgICB1bm1v
ZGlmaWVkVGV4dFtpXSA9IGV2ZW50LmtleUV2ZW50KCktPnVubW9kaWZpZWRUZXh0KClbaV07CiAg
ICAgfQorICAgIG1lbWNweShrZXlJZGVudGlmaWVyLCBldmVudC5rZXlJZGVudGlmaWVyKCkuYXNj
aWkoKS5kYXRhKCksIGV2ZW50LmtleUlkZW50aWZpZXIoKS5sZW5ndGgoKSk7CiB9CiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAppbmRleCAxYzVjMDVmNjZkMjJlOTA1Yjg0OTBk
NmVlNTMxYTNlYWViYTY5NmUzLi4xMmE3ZjhhMTIyMTJiN2ZlNzY1OWZiNDQyZWQxNjg4OTYzMWE4
OTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250
YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmNwcApAQCAtNTYwLDYgKzU2MCwxMSBAQCBib29sIFdlYlBsdWdpbkNvbnRh
aW5lckltcGw6OmdldEZvcm1WYWx1ZShTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzdXBwb3J0c0tleWJvYXJkRm9jdXMo
KSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlBsdWdpbi0+c3VwcG9ydHNLZXlib2FyZEZvY3Vz
KCk7Cit9CisKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6d2lsbERlc3Ryb3lQbHVnaW5M
b2FkT2JzZXJ2ZXIoV2ViUGx1Z2luTG9hZE9ic2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBzaXpl
X3QgcG9zID0gbV9wbHVnaW5Mb2FkT2JzZXJ2ZXJzLmZpbmQob2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCmluZGV4
IDYxZjVjNWI3MTQ2ZjI5OTU3ZGI4OTE4Zjk4ZGI0NWFmZDk0NTY5NzguLmY5OWY2MmM4OTI4ZmY3
YWJjODUyNjBiY2YxZmQxMTIxMjk1OWUyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVi
bGljOgogCiAgICAgLy8gUGx1Z2luVmlld0Jhc2UgbWV0aG9kcwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRGb3JtVmFsdWUoU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzS2V5Ym9hcmRG
b2N1cygpIGNvbnN0OwogCiAgICAgLy8gV2lkZ2V0IG1ldGhvZHMKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RnJhbWVSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157031</attachid>
            <date>2012-08-07 16:00:50 -0700</date>
            <delta_ts>2012-08-07 17:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88958-20120807190025.patch</filename>
            <type>text/plain</type>
            <size>13669</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhjZjNlMWNiMjVjYzZh
MmZiMjY4MDllOTRiZGM0NDJhZGJhNjg5Ny4uNTNlZTgxYTBiM2VlODY5MTRlYzgzMjUwNjE5NGY4
Njg3OGRiZTRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTA3ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFsbG93IHBsdWdpbnMg
dG8gZGVjaWRlIHdoZXRoZXIgdGhleSBhcmUga2V5Ym9hcmQgZm9jdXNhYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk1OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjppc1BsdWdpbkVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojpy
ZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxFbWJlZEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJl
bmRlcldpZGdldEZvckpTQmluZGluZ3MpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxPYmplY3RFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojpw
bHVnaW5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmlzS2V5
Ym9hcmRGb2N1c2FibGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGx1Z0luRWxlbWVudDo6aXNQbHVnaW5FbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50Lmg6CisgICAgICAgIChIVE1MUGx1Z0luRWxlbWVudCk6CisgICAgICAgICog
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luVmlld0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdCYXNlOjpzdXBwb3J0
c0tleWJvYXJkRm9jdXMpOgorCiAyMDEyLTA4LTA3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERvIG5vdCBkaXNhYmxlIG5l
dHdvcmsgdHJhY2tpbmcgd2hpbGUgcHJvZmlsaW5nIGNwdS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNzhkYWE1OTAzM2JkMjdmOWZjMTgzM2VlOTQ0NjIxNjEzZjRmYmYxZS4uYzA1Mjhi
NzZlNmQwN2YwNGU4MWU2YWM1ZGU5OGU2ODBhYjk0ZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOC0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVs
QGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBwbHVnaW5zIHRvIGRlY2lkZSB3aGV0aGVy
IHRoZXkgYXJlIGtleWJvYXJkIGZvY3VzYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5NTgKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGx1Z2luLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbjo6c3VwcG9ydHNLZXlib2FyZEZvY3VzKToKKyAgICAgICAgKiBzcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50QnVpbGRlcjo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVySW1wbDo6c3VwcG9ydHNLZXlib2FyZEZvY3VzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNv
bnRhaW5lckltcGwpOgorCiAyMDEyLTA4LTA3ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIHRoZSBNZW1vcnlDbGFz
c0luZm8gY2xhc3MgYSBub3QtdGVtcGxhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDcwY2Q0NzQ0NGNmMDMx
OGU0OGM2YWIzYjMzMjYxNjRhNzkxZGNmZmMuLjE0MWNlOTZiYjVlYjI5ZWUyY2E4NDdiMWM1MWRi
NWIxYzhkNWJiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNDaGFyYWN0ZXJEYXRhTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRnJhbWVPd25lckVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdpbkVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdDsKICAgICBi
b29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNTaGFkb3dSb290Rmxh
Zyk7IH0KICAgICBib29sIGluTmFtZWRGbG93KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJbk5h
bWVkRmxvd0ZsYWcpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBs
ZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3Bw
CmluZGV4IDViZDVmZDVhYWM5OTkwZTQyNmIyZmUxZjhlZjZkZmQxOGI2MTY2MzUuLmFmYzcyNjhk
ZDJjOTQyZGY5NzQ3Yjc5MWExNDczNWQ5ZjBkN2QyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIFJlbmRlck9iamVjdCogSFRN
TEFwcGxldEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
IHN0eWxlCiAgICAgcmV0dXJuIG5ldyAoZG9jdW1lbnQoKS0+cmVuZGVyQXJlbmEoKSkgUmVuZGVy
QXBwbGV0KHRoaXMpOwogfQogCi1SZW5kZXJXaWRnZXQqIEhUTUxBcHBsZXRFbGVtZW50OjpyZW5k
ZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkKK1JlbmRlcldpZGdldCogSFRNTEFwcGxldEVsZW1lbnQ6
OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25zdAogewogICAgIGlmICghY2FuRW1iZWRK
YXZhKCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXBwbGV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5oCmluZGV4IGVlNGUzMGNmMGRmMDUzZjYwMGJmNTM3NTRiMmI4NzZjOTk0MDg0MzAuLjRj
NzI3NWM3Mjc2YmY5OGZmNGE1ZTFkNjYwYmYxYTAwYmRlMmY3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBcHBsZXRFbGVtZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlcldp
ZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpOworICAgIHZpcnR1YWwgUmVuZGVyV2lk
Z2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbikgT1ZFUlJJREU7CiAKICAgICBib29s
IGNhbkVtYmVkSmF2YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5jcHAKaW5kZXggMTVlMzJlZWY3MDQyODlhMDFjZTU4OWEyZjg3MjI5ZDU0YmNmNzU5Zi4uM2Jj
MmQ5MzNkMzNhNTdmNmZjYzQ3YTRkMjIyMjg2YTBjNzk2NzI4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBpbmxpbmUg
UmVuZGVyV2lkZ2V0KiBmaW5kV2lkZ2V0UmVuZGVyZXIoY29uc3QgTm9kZSogbikKICAgICByZXR1
cm4gMDsKIH0KIAotUmVuZGVyV2lkZ2V0KiBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJXaWRnZXRG
b3JKU0JpbmRpbmdzKCkKK1JlbmRlcldpZGdldCogSFRNTEVtYmVkRWxlbWVudDo6cmVuZGVyV2lk
Z2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIGZpbmRXaWRnZXRSZW5kZXJl
cih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggYmE4Mjhh
MTcyZGRmN2QzZTg3YWU2MTdmOWUzNTA4OTAwNjEzYjNiNi4uYmRhMmU5MTQ5ZDNiMjUxOTZlODNl
ZjcwMmUzMmMzZTkxNWU2MmU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50
LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRy
aWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBRdWFsaWZpZWROYW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCk7CisgICAg
dmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDU3MTVkMjM4
MjU2MTI4NzM4NjZkMTM2Y2M1NzAwOTY5NDZmMzkwNTEuLmNmMTg1YThkM2U4YjY4NDlmOTJlMWUx
ZTlmOWFkMDBkZDAwODMzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhU
TUxPYmplY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9y
bSwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CiAKLVJlbmRlcldpZGdldCogSFRNTE9iamVjdEVsZW1l
bnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKQorUmVuZGVyV2lkZ2V0KiBIVE1MT2JqZWN0
RWxlbWVudDo6cmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAgZG9jdW1l
bnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJu
IHJlbmRlclBhcnQoKTsgLy8gVGhpcyB3aWxsIHJldHVybiAwIGlmIHRoZSByZW5kZXJlciBpcyBu
b3QgYSBSZW5kZXJQYXJ0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmlu
ZGV4IGUxMjc4NWQxMDk3MGYwMzhkNGZjZTYwZTk0MWY4Nzk0NWY4ZjEzZGIuLmUzYjQ5YjRiZDQ3
MmYyYTYwMDIwODM1OWMyZjJlMzUzYTliMDA0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBjb25zdCBRdWFsaWZpZWROYW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBj
b25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRp
bmdzKCk7CisgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGlu
Z3MoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcAppbmRleCA1YmRmNjBkNDQyMmJhODk0OTNiMDczMjVhYTljYjg1OGRm
MWIwNWQxLi41MTdhNThkOWM1ZjA4MmRkNDFiNjgwNzlmYTIyOWNmNjk3MTYyM2FkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2luY2x1ZGUgIlJlbmRlckVt
YmVkZGVkT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKQEAgLTEyNSw3ICsxMjYsNyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50OjpndWFy
ZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiAgICAg
cmV0dXJuIGJlZm9yZUxvYWRBbGxvd2VkTG9hZDsKIH0KIAotV2lkZ2V0KiBIVE1MUGx1Z0luRWxl
bWVudDo6cGx1Z2luV2lkZ2V0KCkKK1dpZGdldCogSFRNTFBsdWdJbkVsZW1lbnQ6OnBsdWdpbldp
ZGdldCgpIGNvbnN0CiB7CiAgICAgaWYgKG1faW5CZWZvcmVMb2FkRXZlbnRIYW5kbGVyKSB7CiAg
ICAgICAgIC8vIFRoZSBwbHVnLWluIGhhc24ndCBsb2FkZWQgeWV0LCBhbmQgaXQgbWFrZXMgbm8g
c2Vuc2UgdG8gdHJ5IHRvIGxvYWQgaWYgYmVmb3JlbG9hZCBoYW5kbGVyIGhhcHBlbmVkIHRvIHRv
dWNoIHRoZSBwbHVnLWluIGVsZW1lbnQuCkBAIC0xOTAsNiArMTkxLDIzIEBAIHZvaWQgSFRNTFBs
dWdJbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxG
cmFtZU93bmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKK2Jvb2wg
SFRNTFBsdWdJbkVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCogZXZl
bnQpIGNvbnN0Cit7CisgICAgaWYgKCFkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGNvbnN0IFBsdWdpblZpZXdCYXNlKiBwbHVnaW4gPSBwbHVnaW5XaWRn
ZXQoKSAmJiBwbHVnaW5XaWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpID8gc3RhdGljX2Nhc3Q8
Y29uc3QgUGx1Z2luVmlld0Jhc2UqPihwbHVnaW5XaWRnZXQoKSkgOiAwOworICAgIGlmIChwbHVn
aW4pCisgICAgICAgIHJldHVybiBwbHVnaW4tPnN1cHBvcnRzS2V5Ym9hcmRGb2N1cygpOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEhUTUxQbHVnSW5FbGVtZW50Ojppc1BsdWdpbkVs
ZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAKIE5QT2JqZWN0KiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0TlBPYmpl
Y3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IDA2N2U5YWVm
OWU5MGNhMmNlYTQwY2Y0NjI0ZDRkODUyNjkxYTIzNjcuLjk0ODg3NzQ4ZDA1YTNiY2NkNWUxNjAx
MTljZDY0YzhiNWU4ZTA4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1NjcmlwdEluc3RhbmNlIGdl
dEluc3RhbmNlKCk7CiAKLSAgICBXaWRnZXQqIHBsdWdpbldpZGdldCgpOworICAgIFdpZGdldCog
cGx1Z2luV2lkZ2V0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICBOUE9iamVjdCogZ2V0TlBPYmplY3QoKTsKQEAgLTcyLDcgKzcyLDEwIEBAIHByaXZhdGU6
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCi0gICAg
dmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSA9IDA7Cisg
ICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25z
dCA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2
ZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUGx1Z2luRWxlbWVudCgpIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIG11dGFibGUgU2NyaXB0SW5zdGFuY2UgbV9pbnN0YW5jZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBiZjU4MmI0NzM1YmYyNzQxNjdm
NzA1ZDcwNzk5NDc2ZGQxYmE1Y2M4Li5iZjk1MTJiZDJlMDUyNGJlMmY4MDc3NzNjMzM1NmQ5ZDg3
MjRhN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNTIs
NyArMzUyLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRP
cmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgLy8gRklYTUU6IE1h
eSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKG5vZGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgeworICAgIGlmIChu
b2RlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkgJiYgKCFub2RlLT5pc1BsdWdpbkVsZW1lbnQoKSB8
fCAhbm9kZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkpKSB7CiAgICAgICAgIC8vIFdlIGZv
Y3VzIGZyYW1lcyByYXRoZXIgdGhhbiBmcmFtZSBvd25lcnMuCiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbm90IGZvY3VzIGZyYW1lcyB0aGF0IGhhdmUgbm8gc2Nyb2xsYmFycywgYXMgZm9j
dXNpbmcgdGhlbSBpc24ndCB1c2VmdWwgdG8gdGhlIHVzZXIuCiAgICAgICAgIEhUTUxGcmFtZU93
bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihu
b2RlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
d0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAppbmRleCA3
MDJlOTVhZGJlNWIyYjk2ZGIzMzIzODk3NmU2NDNlMTU4MTBkYjliLi4zMTJkNTdjMDlkMzc4MzBi
ODYzYzhkMjgzOTMxZDdkMTI3ZGQyMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXdCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3QmFzZS5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGEgaGFjayB0aGF0IHdvcmtzIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZSBXZWJLaXQyIFBs
dWdpblZpZXcgaXNuJ3QgYSBTY3JvbGxhYmxlQXJlYS4KICAgICB2aXJ0dWFsIGJvb2wgd2FudHNX
aGVlbEV2ZW50cygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
S2V5Ym9hcmRGb2N1cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBQbHVnaW5WaWV3QmFzZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQgPSAwKSA6IFdp
ZGdldCh3aWRnZXQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4u
aAppbmRleCA1ZWY4ODRjNzNhM2JlOGRhYjlhMWZjZWNlZThiNThjZDE4Y2JmYzBiLi44YWJhZjNi
ZmUwZjkzNWM5MmIwOGJiYzBhMDZjOWE5ZTc0MzAxYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQbHVnaW4uaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgLy8g
ZnJvbSB0aGUgcGx1Z2luLiBUaGUgdmFsdWUgd291bGQgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBu
YW1lIGF0dHJpYnV0ZQogICAgIC8vIG9mIHRoZSBjb3JyZXNwb25kaW5nIG9iamVjdCBlbGVtZW50
LgogICAgIHZpcnR1YWwgYm9vbCBnZXRGb3JtVmFsdWUoV2ViU3RyaW5nJikgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlib2FyZEZvY3VzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBjb25z
dCBXZWJSZWN0JikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggYzBhY2EyZDQ5M2VlYzE4ZGE5NTlm
MzY5ZDVjOTcwYTdhODU5NmI1YS4uMDM5MWMyODViN2Y4ZTNlNjY5NTE2MzlkMzY1ZjU4YmQ3M2U4
YTk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcApAQCAtNDY0LDYgKzQ2NCw3IEBAIFdlYktleWJvYXJkRXZlbnRC
dWlsZGVyOjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcihjb25zdCBLZXlib2FyZEV2ZW50JiBldmVu
dCkKICAgICAgICAgdGV4dFtpXSA9IGV2ZW50LmtleUV2ZW50KCktPnRleHQoKVtpXTsKICAgICAg
ICAgdW5tb2RpZmllZFRleHRbaV0gPSBldmVudC5rZXlFdmVudCgpLT51bm1vZGlmaWVkVGV4dCgp
W2ldOwogICAgIH0KKyAgICBtZW1jcHkoa2V5SWRlbnRpZmllciwgZXZlbnQua2V5SWRlbnRpZmll
cigpLmFzY2lpKCkuZGF0YSgpLCBldmVudC5rZXlJZGVudGlmaWVyKCkubGVuZ3RoKCkpOwogfQog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMWM1YzA1ZjY2ZDIyZTkw
NWI4NDkwZDZlZTUzMWEzZWFlYmE2OTZlMy4uMTJhN2Y4YTEyMjEyYjdmZTc2NTlmYjQ0MmVkMTY4
ODk2MzFhODk4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UGx1Z2luQ29udGFpbmVySW1wbC5jcHAKQEAgLTU2MCw2ICs1NjAsMTEgQEAgYm9vbCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpnZXRGb3JtVmFsdWUoU3RyaW5nJiB2YWx1ZSkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK2Jvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3VwcG9ydHNLZXlib2Fy
ZEZvY3VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQbHVnaW4tPnN1cHBvcnRzS2V5Ym9h
cmRGb2N1cygpOworfQorCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OndpbGxEZXN0cm95
UGx1Z2luTG9hZE9ic2VydmVyKFdlYlBsdWdpbkxvYWRPYnNlcnZlciogb2JzZXJ2ZXIpCiB7CiAg
ICAgc2l6ZV90IHBvcyA9IG1fcGx1Z2luTG9hZE9ic2VydmVycy5maW5kKG9ic2VydmVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lcklt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aAppbmRleCA2MWY1YzViNzE0NmYyOTk1N2RiODkxOGY5OGRiNDVhZmQ5NDU2OTc4Li5mOTlmNjJj
ODkyOGZmN2FiYzg1MjYwYmNmMWZkMTEyMTI5NTllMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCkBAIC03OCw2ICs3OCw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIFBsdWdpblZpZXdCYXNlIG1ldGhvZHMKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYpOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0tl
eWJvYXJkRm9jdXMoKSBjb25zdDsKIAogICAgIC8vIFdpZGdldCBtZXRob2RzCiAgICAgdmlydHVh
bCB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>