<?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>65237</bug_id>
          
          <creation_ts>2011-07-27 00:49:56 -0700</creation_ts>
          <short_desc>[Qt] Favicons can&apos;t be changed dynamically.</short_desc>
          <delta_ts>2014-02-03 03:18:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>65986</dependson>
    
    <dependson>95979</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pierre Rossi">pierre.rossi</reporter>
          <assigned_to name="Pierre Rossi">pierre.rossi</assigned_to>
          <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>hausmann</cc>
    
    <cc>kling</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442779</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-07-27 00:49:56 -0700</bug_when>
    <thetext>It would probably be nice to have since it has some nice use cases (e.g. gmail&apos;s unread mail notification)

Here are some websites demonstrating this:

http://www.p01.org/releases/DEFENDER_of_the_favicon/
http://ajaxify.com/run/favicon/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442780</commentid>
    <comment_count>1</comment_count>
      <attachid>102104</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-07-27 00:54:22 -0700</bug_when>
    <thetext>Created attachment 102104
patch

Would probably be a nice thing to cherry-pick into 2.2 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443632</commentid>
    <comment_count>2</comment_count>
      <attachid>102104</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-07-28 13:16:39 -0700</bug_when>
    <thetext>Comment on attachment 102104
patch

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

&gt; Source/WebKit/qt/ChangeLog:3
&gt; +        Load favicon dynamically.

You need to put the title of the bug with no extra space before the bug url.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:752
&gt; +            + QDateTime::currentDateTime().toString(QLatin1String(&quot;yyyyMMddhhmmss&quot;));

I&apos;m curious but by the time you are in ~tst_QWebFrame() it may be that the minute changed so you will not delete the dir. Or I miss something here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443861</commentid>
    <comment_count>3</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-07-29 02:58:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 102104 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102104&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/ChangeLog:3
&gt; &gt; +        Load favicon dynamically.
&gt; 
&gt; You need to put the title of the bug with no extra space before the bug url.

Ok, will do.

&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:752
&gt; &gt; +            + QDateTime::currentDateTime().toString(QLatin1String(&quot;yyyyMMddhhmmss&quot;));
&gt; 
&gt; I&apos;m curious but by the time you are in ~tst_QWebFrame() it may be that the minute changed so you will not delete the dir. Or I miss something here?

Yeah I took that from some other autotests that need local storage and at first I thought the same, but taking another look at the getter function you&apos;ll notice the string is static. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443916</commentid>
    <comment_count>4</comment_count>
      <attachid>102104</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-07-29 06:14:07 -0700</bug_when>
    <thetext>Comment on attachment 102104
patch

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

&gt;&gt;&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:752
&gt;&gt;&gt; +            + QDateTime::currentDateTime().toString(QLatin1String(&quot;yyyyMMddhhmmss&quot;));
&gt;&gt; 
&gt;&gt; I&apos;m curious but by the time you are in ~tst_QWebFrame() it may be that the minute changed so you will not delete the dir. Or I miss something here?
&gt; 
&gt; Yeah I took that from some other autotests that need local storage and at first I thought the same, but taking another look at the getter function you&apos;ll notice the string is static. :)

Ah yes :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445794</commentid>
    <comment_count>5</comment_count>
      <attachid>102763</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-08-03 03:19:52 -0700</bug_when>
    <thetext>Created attachment 102763
changelog fixup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447600</commentid>
    <comment_count>6</comment_count>
      <attachid>102763</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-06 05:20:45 -0700</bug_when>
    <thetext>Comment on attachment 102763
changelog fixup

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

&gt; Source/WebKit/qt/Api/qgraphicswebview.cpp:212
&gt; +    \note This signal may not be emitted if the icon database is disabled.
&gt; +

_may_ not be emitted?
I do not like fuzzy documentation because it is a bit scary for the reader. One might wonder if the signal is ever emitted, randomly emitted, etc. if the icon database is not set.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:587
&gt; +        if (entries[i].isDir())
&gt; +            removeRecursive(entries[i].filePath());
&gt; +        else
&gt; +            dir.remove(entries[i].fileName());

Good practice: entires[i] -&gt; entries.at(i) to avoid copying stuff.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:754
&gt; +    QString tmpDirPath() const
&gt; +    {
&gt; +        static QString tmpd = QDir::tempPath() + &quot;/tst_qwebframe-&quot;
&gt; +            + QDateTime::currentDateTime().toString(QLatin1String(&quot;yyyyMMddhhmmss&quot;));
&gt; +        return tmpd;
&gt; +    }

You do not use QLatin1String elsewhere, no need to put it here.

Please do not put this method inline. This should be a static function and not a method. A method that does not use any attribute and use a static variable -&gt; something evil is going on :)

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3717
&gt; +    QImage oldIcon  = frame-&gt;icon().pixmap(iconSize).toImage();

2 space before the equal sign.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3718
&gt; +    QImage image = QImage(&quot;:/favicon1.png&quot;).convertToFormat(QImage::Format_ARGB32_Premultiplied);

Why do you convert the image to ARGB32_PM?

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3723
&gt; +    QString js = QLatin1String(&quot;document.getElementById(&apos;favicon&apos;).setAttribute(\&quot;href\&quot;, \&quot;favicon2.png\&quot;)&quot;);

Sometime you use QLatin1String, sometime not, better decide :)

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3734
&gt; +

Space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447605</commentid>
    <comment_count>7</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-08-06 07:33:21 -0700</bug_when>
    <thetext>(In reply to comment #6)


&gt; _may_ not be emitted?
&gt; I do not like fuzzy documentation because it is a bit scary for the reader. One might wonder if the signal is ever emitted, randomly emitted, etc. if the icon database is not set.

Well technically it&apos;s going to be emitted regardless when the webframe is loaded, but then if the icon link is changed dynamically, we won&apos;t gen notified if there&apos;s no database.
 
Maybe I could try and rephrase that in the doc then.

&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:587
&gt; &gt; +        if (entries[i].isDir())
&gt; &gt; +            removeRecursive(entries[i].filePath());
&gt; &gt; +        else
&gt; &gt; +            dir.remove(entries[i].fileName());
&gt; 
&gt; Good practice: entires[i] -&gt; entries.at(i) to avoid copying stuff.
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:754
&gt; &gt; +    QString tmpDirPath() const
&gt; &gt; +    {
&gt; &gt; +        static QString tmpd = QDir::tempPath() + &quot;/tst_qwebframe-&quot;
&gt; &gt; +            + QDateTime::currentDateTime().toString(QLatin1String(&quot;yyyyMMddhhmmss&quot;));
&gt; &gt; +        return tmpd;
&gt; &gt; +    }
&gt; 
&gt; You do not use QLatin1String elsewhere, no need to put it here.
&gt; 
&gt; Please do not put this method inline. This should be a static function and not a method. A method that does not use any attribute and use a static variable -&gt; something evil is going on :)
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3717
&gt; &gt; +    QImage oldIcon  = frame-&gt;icon().pixmap(iconSize).toImage();
&gt; 
&gt; 2 space before the equal sign.
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3718
&gt; &gt; +    QImage image = QImage(&quot;:/favicon1.png&quot;).convertToFormat(QImage::Format_ARGB32_Premultiplied);
&gt; 
&gt; Why do you convert the image to ARGB32_PM?
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3723
&gt; &gt; +    QString js = QLatin1String(&quot;document.getElementById(&apos;favicon&apos;).setAttribute(\&quot;href\&quot;, \&quot;favicon2.png\&quot;)&quot;);
&gt; 
&gt; Sometime you use QLatin1String, sometime not, better decide :)
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3734
&gt; &gt; +
&gt; 
&gt; Space

I was lazy and just copied all that stuff over from qwebpage&apos;s autotest, let me move it to util.h and fix the things you pointed out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447715</commentid>
    <comment_count>8</comment_count>
      <attachid>103174</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-08-07 01:46:05 -0700</bug_when>
    <thetext>Created attachment 103174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447716</commentid>
    <comment_count>9</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-08-07 01:52:05 -0700</bug_when>
    <thetext>(In reply to comment #6)

&gt; &gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3718
&gt; &gt; +    QImage image = QImage(&quot;:/favicon1.png&quot;).convertToFormat(QImage::Format_ARGB32_Premultiplied);
&gt; 
&gt; Why do you convert the image to ARGB32_PM?
&gt; 

Probably something I did wrong when making my test image. I just wanted QCOMPARE to play nice, maybe not the best approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447717</commentid>
    <comment_count>10</comment_count>
      <attachid>103174</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-07 01:53:41 -0700</bug_when>
    <thetext>Comment on attachment 103174
Patch

Attachment 103174 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9327417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447736</commentid>
    <comment_count>11</comment_count>
      <attachid>103174</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-07 05:11:56 -0700</bug_when>
    <thetext>Comment on attachment 103174
Patch

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

Would it be possible to have a fake icon database to get the signal?
A icon database mockup that would just forward the right signals at the right time?
Of modify the icon database to handle this kind of cases (which could be useful if the disk is full for example).

&gt; Source/WebKit/qt/Api/qgraphicswebview.cpp:213
&gt; +    \note This signal will not be emitted again after the initial page load
&gt; +    if the icon database is disabled.
&gt; +

This is better, but I think we should do even better :)
This could be read as &quot;you get the signal once for the first page ever being loaded&quot;. While what you really want to communicate is: &quot;the signal is not emitted again if a loaded page change the icon&quot;.

&gt; Source/WebKit/qt/tests/util.h:22
&gt; +#include &lt;QDateTime&gt;
&gt; +#include &lt;QDir&gt;

No need to remove those from tst_qdeclarativewebview.cpp?

&gt; Source/WebKit/qt/tests/util.h:92
&gt; +static QString tmpDirPath()
&gt; +{
&gt; +    static QString tmpd = QDir::tempPath() + QLatin1String(&quot;/tst_qwebframe-&quot;)
&gt; +        + QDateTime::currentDateTime().toString(QLatin1String(&quot;yyyyMMddhhmmss&quot;));
&gt; +    return tmpd;
&gt; +}

Better put the implementation in a new util.cpp (like Jocelyn did for WebKit2 IIRC).
I guess this causes the other tests to have warnings on compilation because static functions are defined but not used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449167</commentid>
    <comment_count>12</comment_count>
      <attachid>103496</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-08-10 08:33:18 -0700</bug_when>
    <thetext>Created attachment 103496
Patch

Actually, we could emit that signal when the iconDatabase is disabled, but then it&apos;d be inconsistent since we don&apos;t even emit it on page load. Benjamin: good thing you made me double check, the comment was not only scary and confusing, it was plain wrong. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449181</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-10 08:50:45 -0700</bug_when>
    <thetext>Attachment 103496 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/Api/qgraphicswebview.cpp&apos;...&quot; exit_code: 1

Source/WebKit/qt/tests/util.cpp:20:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 12 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>449246</commentid>
    <comment_count>14</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-10 11:02:03 -0700</bug_when>
    <thetext>&gt; Actually, we could emit that signal when the iconDatabase is disabled, but then it&apos;d be inconsistent since we don&apos;t even emit it on page load. Benjamin: good thing you made me double check, the comment was not only scary and confusing, it was plain wrong. :)

Then also add tests for that use case :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449706</commentid>
    <comment_count>15</comment_count>
      <attachid>103605</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-08-11 05:22:05 -0700</bug_when>
    <thetext>Created attachment 103605
Patch

Benjamin: Here you go boss ! ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454310</commentid>
    <comment_count>16</comment_count>
      <attachid>103605</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-08-19 21:50:13 -0700</bug_when>
    <thetext>Comment on attachment 103605
Patch

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

Looks good to me, but I&apos;m not a reviewer.

&gt; Source/WebKit/qt/tests/qwebframe/resources/favicon.html:4
&gt; +&lt;/script&gt;

You should remove &quot;&lt;/script&gt;&quot; from here.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3820
&gt; +    ::waitForSignal(frame, SIGNAL(iconChanged()), 1000);

You should use &quot;waitForSignal&quot; instead of &quot;::waitForSignal&quot;.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3826
&gt; +    QImage oldIcon  = frame-&gt;icon().pixmap(iconSize).toImage();

There&apos;s an extra space between &quot;oldIcon&quot; and &quot;=&quot;.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3833
&gt; +    ::waitForSignal(frame, SIGNAL(iconChanged()), 1000);

Without &quot;::&quot;.

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:3851
&gt; +    ::waitForSignal(frame, SIGNAL(loadFinished(bool)), 1000);

Without the &quot;::&quot;. By the way, to make sure the icon was not changed, you should actually wait for the signal iconChanged, because there&apos;s no guarantee that you&apos;ll get it before loadFinished happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696010</commentid>
    <comment_count>17</comment_count>
      <attachid>158571</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-08-15 08:10:06 -0700</bug_when>
    <thetext>Created attachment 158571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696012</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-15 08:13:15 -0700</bug_when>
    <thetext>Attachment 158571 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/Api/qgraphicswebview.cpp&apos;...&quot; exit_code: 1
Source/WebKit/qt/tests/util.cpp:20:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 12 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>696057</commentid>
    <comment_count>19</comment_count>
      <attachid>158571</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-08-15 09:26:26 -0700</bug_when>
    <thetext>Comment on attachment 158571
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696836</commentid>
    <comment_count>20</comment_count>
      <attachid>158571</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-16 00:32:37 -0700</bug_when>
    <thetext>Comment on attachment 158571
Patch

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

&gt; Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:472
&gt; +    m_frame-&gt;loader()-&gt;icon()-&gt;startLoader();

I wonder how this works in the other ports. It seems the others merely emit a notification. Can we do the same or do we need to start the loader?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697097</commentid>
    <comment_count>21</comment_count>
      <attachid>158811</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-08-16 07:10:04 -0700</bug_when>
    <thetext>Created attachment 158811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697101</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 07:13:43 -0700</bug_when>
    <thetext>Attachment 158811 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/Api/qgraphicswebview.cpp&apos;...&quot; exit_code: 1
Source/WebKit/qt/tests/util.cpp:20:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 12 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>697240</commentid>
    <comment_count>23</comment_count>
      <attachid>158847</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-08-16 10:00:42 -0700</bug_when>
    <thetext>Created attachment 158847
Patch

Actually that last patch was nonsense, the signal is emitted in FrameLoaderClientQt::dispatchDidReceiveIcon, the problem is that this only gets called again if we restart the loader when the url is changed. The difference with other ports could stem from the fact that they don&apos;t use the IconDatabase maybe ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697249</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 10:13:11 -0700</bug_when>
    <thetext>Attachment 158847 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/Api/qgraphicswebview.cpp&apos;...&quot; exit_code: 1
Source/WebKit/qt/tests/util.cpp:20:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 12 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>697576</commentid>
    <comment_count>25</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-08-16 15:18:36 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created an attachment (id=158847) [details]
&gt; Patch
&gt; 
&gt; Actually that last patch was nonsense, the signal is emitted in FrameLoaderClientQt::dispatchDidReceiveIcon, the problem is that this only gets called again if we restart the loader when the url is changed. The difference with other ports could stem from the fact that they don&apos;t use the IconDatabase maybe ?

If I remember correctly, you don&apos;t need to do that. When you know the icon has changed, then the client can ask at some point for the favicon to the database (check how&apos;s implemented the function that returns the favicon&apos;s QPixmap or QImage) and then if it figure out it still need to fetch the new icon, then it will do right away. So it&apos;s just a matter of asking which is the current favicon data. So you just need to connect emit &quot;icon changed&quot; just like you do when you get the first one, and the UI can rely on this signal to update the data displayed. Please double check this because I may be wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697580</commentid>
    <comment_count>26</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-08-16 15:20:12 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #23)
&gt; &gt; Created an attachment (id=158847) [details] [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Actually that last patch was nonsense, the signal is emitted in FrameLoaderClientQt::dispatchDidReceiveIcon, the problem is that this only gets called again if we restart the loader when the url is changed. The difference with other ports could stem from the fact that they don&apos;t use the IconDatabase maybe ?
&gt; 
&gt; If I remember correctly, you don&apos;t need to do that. When you know the icon has changed, then the client can ask at some point for the favicon to the database (check how&apos;s implemented the function that returns the favicon&apos;s QPixmap or QImage) and then if it figure out it still need to fetch the new icon, then it will do right away. So it&apos;s just a matter of asking which is the current favicon data. So you just need to connect emit &quot;icon changed&quot; just like you do when you get the first one, and the UI can rely on this signal to update the data displayed. Please double check this because I may be wrong.

Sorry about the typo. I mean you just need to emit &quot;iconChanged&quot; signal just like you do when you get the first favicon, and then the machinery behind it will do the trick for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713266</commentid>
    <comment_count>27</comment_count>
      <attachid>162503</attachid>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2012-09-06 07:19:02 -0700</bug_when>
    <thetext>Created attachment 162503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713274</commentid>
    <comment_count>28</comment_count>
      <attachid>162503</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-09-06 07:37:03 -0700</bug_when>
    <thetext>Comment on attachment 162503
Patch

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

LGTM :)

&gt; Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp:1615
&gt; +    icon  = frame-&gt;icon().pixmap(iconSize).toImage();

Extra whitespace on &quot;icon  =&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713310</commentid>
    <comment_count>29</comment_count>
      <attachid>162503</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-06 08:24:05 -0700</bug_when>
    <thetext>Comment on attachment 162503
Patch

Attachment 162503 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13765636</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713333</commentid>
    <comment_count>30</comment_count>
      <attachid>162503</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-06 08:47:52 -0700</bug_when>
    <thetext>Comment on attachment 162503
Patch

Attachment 162503 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13770358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713419</commentid>
    <comment_count>31</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-06 10:20:46 -0700</bug_when>
    <thetext>We are *not* going to be adding this to all platforms without having a switch to opt in.

We (Apple) intentionally *do not* want the ability to script favicons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713423</commentid>
    <comment_count>32</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-06 10:22:16 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; We are *not* going to be adding this to all platforms without having a switch to opt in.
&gt; 
&gt; We (Apple) intentionally *do not* want the ability to script favicons.

Sorry about this comment and the review-churn.  I had multiple bugs open and acted on the wrong one!

(Meant to act on https://bugs.webkit.org/show_bug.cgi?id=95979 FWIW)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935655</commentid>
    <comment_count>33</comment_count>
      <attachid>162503</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-02 21:15:32 -0700</bug_when>
    <thetext>Comment on attachment 162503
Patch

Qt has been removed, clearing review flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975268</commentid>
    <comment_count>34</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2014-02-03 03:18:22 -0800</bug_when>
    <thetext>=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102104</attachid>
            <date>2011-07-27 00:54:22 -0700</date>
            <delta_ts>2011-08-03 03:19:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Load-favicon-dynamically.patch</filename>
            <type>text/plain</type>
            <size>12777</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">RnJvbSA2Nzk0ZDFhZGMyZjQ0NzJhNGIyYjQzYjgzZDJjM2YwOGVhNjFjYTFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaWVycmUgUm9zc2kgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+
CkRhdGU6IE1vbiwgMjUgSnVsIDIwMTEgMTU6NDQ6MzIgKzAyMDAKU3ViamVjdDogTG9hZCBmYXZp
Y29uIGR5bmFtaWNhbGx5LgoKLS0tCiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcCAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcCAgICAgICAgICAgICAgICAgfCAgICA1ICsrLQogU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArKysrKysrKysrCiAuLi4vcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgICAgICB8ICAgIDQgKy0KIC4u
Li9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCAgICAgIHwgICAgNSAr
KwogLi4uL3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEucG5nICAgICAgfCAg
QmluIDAgLT4gODkxIGJ5dGVzCiAuLi4vcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZp
Y29uMi5wbmcgICAgICB8ICBCaW4gMCAtPiA3NDIgYnl0ZXMKIFNvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwIHwgICA1NSArKysrKysrKysrKysrKysrKysr
KwogU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMgfCAg
IDIxICsrKystLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCAxMiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJm
cmFtZS9yZXNvdXJjZXMvZmF2aWNvbi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24xLnBuZwogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZp
Y29uMi5wbmcKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4
IDJiZDIzN2YuLjI1NmJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFw
aGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZp
ZXcuY3BwCkBAIC0yMDgsNiArMjA4LDggQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
X3Ffc2NhbGVDaGFuZ2VkKCkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8gYmUgbG9hZGVkLCB5
b3Ugd2lsbCBuZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAgICB1c2luZyBRV2Vi
U2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3RlIFRoaXMgc2lnbmFs
IG1heSBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwog
ICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAppbmRleCA3Mzg0YzQxLi5hNDA4ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTE2NzEsNyArMTY3MSwxMCBAQCBRV2ViRnJh
bWUqIFFXZWJGcmFtZVByaXZhdGU6OmtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1l
KQogICBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gdGhlIGljb24gKCJmYXZpY29uIikgYXNz
b2NpYXRlZCB3aXRoIHRoZSBmcmFtZQogICBoYXMgYmVlbiBsb2FkZWQuCiAKLSAgXHNhIGljb24o
KQorICBcbm90ZSBUaGlzIHNpZ25hbCBtYXkgbm90IGJlIGVtaXR0ZWQgaWYgdGhlIGljb24gZGF0
YWJhc2UgaXMgZGlzYWJsZWQgKHNlZQorICBcbHtRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFz
ZVBhdGgoKX17c2V0SWNvbkRhdGFiYXNlUGF0aCgpfSkuCisKKyAgXHNhIGljb24oKSwgUVdlYlNl
dHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKCkKICovCiAKIC8qIQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnZpZXcuY3BwCmluZGV4IDc2YjkyN2IuLjExMTQ5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmll
dy5jcHAKQEAgLTEyMDEsNiArMTIwMSw4IEBAIHZvaWQgUVdlYlZpZXc6OmNoYW5nZUV2ZW50KFFF
dmVudCAqZSkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8gYmUgbG9hZGVkLCB5b3Ugd2lsbCBu
ZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAgICB1c2luZyBRV2ViU2V0dGluZ3M6
OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3RlIFRoaXMgc2lnbmFsIG1heSBub3Qg
YmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBp
Y29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCmluZGV4IGMwYjg5N2EuLjhhM2M1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDctMjcgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisK
KyAgICAgICAgTG9hZCBmYXZpY29uIGR5bmFtaWNhbGx5LgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIzNworICAgICAgICBUaGUgb25seSBtaXNz
aW5nIHBpZWNlIHdhcyBhY3R1YWxseSByZWxvYWRpbmcgdGhlIGljb24KKyAgICAgICAgd2hlbiBp
dHMgbGluayBlbGVtZW50IGNoYW5nZXMgaW4gdGhlIERPTS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcDog
VXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6VXVw
ZGF0ZSB0aGUgZG9jdW1lbnRhdGlvbgorICAgICAgICAqIEFwaS9xd2Vidmlldy5jcHA6IFVwZGF0
ZSB0aGUgZG9jdW1lbnRhdGlvbgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlz
cGF0Y2hEaWRDaGFuZ2VJY29ucyk6CisgICAgICAgIFRyaWdnZXIgaWNvbiBsb2FkaW5nLgorICAg
ICAgICAqIHRlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24xLnBuZzogQWRkZWQuCisg
ICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uMi5wbmc6IEFkZGVkLgor
ICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHJl
bW92ZVJlY3Vyc2l2ZSk6CisgICAgICAgICh0c3RfUVdlYkZyYW1lOjp0bXBEaXJQYXRoKToKKyAg
ICAgICAgKHRzdF9RV2ViRnJhbWU6OnRzdF9RV2ViRnJhbWUpOgorICAgICAgICAodHN0X1FXZWJG
cmFtZTo6fnRzdF9RV2ViRnJhbWUpOgorICAgICAgICAodHN0X1FXZWJGcmFtZTo6ZHluYW1pY2Fs
bHlDaGFuZ2luZ0Zhdmljb24pOgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZy
YW1lLnFyYzoKKwogMjAxMS0wNy0xOSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8
Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0gSW1wcm92ZSBkb2N1
bWVudGF0aW9uIG9mIFFXZWJWaWV3OjpzZXRQYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDlhMWUx
ZmYuLjQ4OGRkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNDc0LDE0ICs0NzQsMTQgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdX
aXRoRGlyZWN0aW9uJiB0aXQKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERp
ZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQogeworICAgIEFTU0VSVChtX2ZyYW1lKTsK
ICAgICBpZiAoZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzKQogICAgICAgICBwcmludGYoIiVzIC0g
ZGlkQ2hhbmdlSWNvbnNcbiIsIHFQcmludGFibGUoZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQobV9mcmFtZSkpKTsKIAogICAgIGlmICghbV93ZWJGcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gRklYTUU6IEluIG9yZGVyIHRvIGdldCBub3RpZmllZCBvZiBpY29uIFVS
TFMnIGNoYW5nZXMsIGFkZCBhIG5vdGlmaWNhdGlvbi4KLSAgICAvLyBlbWl0IGljb25zQ2hhbmdl
ZCgpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnN0YXJ0TG9hZGVyKCk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2Vz
L2Zhdmljb24uaHRtbCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNl
cy9mYXZpY29uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM0ZWQy
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jl
c291cmNlcy9mYXZpY29uLmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgaWQ9ImZhdmljb24iIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVm
PSJmYXZpY29uMS5wbmciLz4KKzwvc2NyaXB0PgorPC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMv
ZmF2aWNvbjEucG5nIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2Vz
L2Zhdmljb24xLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDYyNzUyYTUzYmFlYjA1ZDlhOThmOGFlMjNmYTgw
N2U3Y2VlZTRhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4OTEKemNtVi0+MUJDcEVQKTxoOzNL
fExrMDAwZTFOSkxUcTAwMG1HMDAwbU8xXkBzNkFNXmlWMDAwMDFiNWNoXzBJdHApCno9PlB4JkhB
ekg0UjUodXMhT2MkO1g4XiRBLX19eHhHZHIqITQ3LWJoVkokNCFxUkBidkcpO14jezArU3IpQVop
Vwp6RyhHZVdENXN1IylrRHZ7bjt6UVEjJn5OSlFkNXl1NW4rTGFtMVRFWGM2WXcjb2ojOE1fK293
aXV7LU5ORyNyeUcKejM8KlhOY0ZyVWQyQnFwSCN0U2EzKF9eJCFuNU5CMXFqfVA4b2pyYTI7PkJh
KihLbGFqM19Hb0ZeRTE7VkxTYzxMCnozYFBOXllNSnM+blU2bk47cmZrYkNNeStgV3IxWi11MnVf
MmptRThLenheVlZBPj89WT1efDA7UT1YfWpkUERNVgp6ZnRsSm9pfWdCfHZNM1leU2hrSEhNVEJY
QnBUIWk1RT5ZP35HXlY4N3M0Z3VyVU13TW5qY3IqSi0zb0phMyhRUS0KekFmLVlZbEFMV0w1Z1o7
SShBYSYwUDk+bzxrc19CenN4aWpoM1dtXj5pYmRqN2xaRytQNHtjaUFiMVl8XkxWa2pCCnpXczNR
YXRgVXQ9QkNrKXJ5bnIkczJnNlotTERpazIqWTVEe1Y0dDFGNW41KiRYfnhhZlBxfXlKNCMldylQ
aztYZAp6S2hCNz5MKV9kKE5tRyE5RFgoQG1OJjVrX149cjgwREA7c0NqdEA/Tmd1VDY4e2AmSkRF
PEJHKURUZypQTExHdUUKenBeVGhFQ15WQ2s2JkJhKHRTO1lSYHxVMlR8OSMxTCE2RVNzMD8qXn4r
c2t4MVUwVTU5UWZkWiVPcHQxJVpEIT02Cnpnblo1ZG9lJX4taSpxJVVIYyZ4fEIqVCZ4YkYoJHBA
N15XeWBpTUJna3w2eUgjRG58eXZqPDsmTm9FLVF5fThOQwp6QF4jOVM2PlFya08lanFNTElePCsj
YEZnUmE8KW19ZEhucUFHdjAxKnFrNnBfYWhnJWU9Tk5oO2YqPkh2R0wofFUKemlEdXtoSkckTC1m
Kj5Gam5seX5LeHc9WGtNYFdwaUY8WUQ4WG5yYFJTamU7QUppdF5JWnJMVTAqbGZNdFZtS08rCno3
WT16bDQ+M3EoKChaUj9vfTRsMF4teiZNcip+JVleMW9Ma055Y2ZuaHVkbWwrWkwmWU9QOG15bH1S
ditOVGtMeAp6O1BrQWB6YHNFMjFmfFJoeGszQHN2PkNVQFhtJmNwbldvPCNhTVdyZGdhOSVlUTt8
ZlB0fmEzSD5sNjB8bDxoTGMKeilzQD5LKEI4ZVBtIzBDZXlnJTN7JD42bHpWZCNmazQyTDgtcWdY
OEJQRU4zUWMhKW09eGdzMUVPT3NFRyMrJDlACnpZaXBtKUVZKWtiN1YzMzZvaT5DMTEoNm1BIXo5
KVRYJEZIfiRWdW0lSTBmYlRSOGRkOXxMTW1je3MlNCRnPDQrZQpSRWY0P3owMDJvdlBESExrVjFu
bGpvIWtIYgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24yLnBuZyBiL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uMi5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWZkMTI2OTE0ZmIzOTIxOWE4M2E2ZGUxNDcyODlhMzYzNzA2ZjNkMgpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNzQyCnpjbVY8QzB2WXtAUCk8aDszS3xMazAwMGUxTkpMVHEwMDBtRzAwMG1PMHNz
STJrZGJJTTAwMDAxYjVjaF8wSXRwKQp6PT5QeCVwaC1rUVI0QzV7IUViTmVHI21oNitwKFFFeG09
Und1R2k1K1luZThMU1MyTGpDRV5xQzhUZT90TEErdUQKemZyUiQ5NSl6PEVsdWM5QkQ9TVJgT1N8
MFZ2ZGNmbWotNE9SZ01hQDF5VjI7M0FDJilHVHxheGBgb1V+QTVCKSRtCnpkPVo3cU1memVUWn53
JnlVd3dKPGZ3ejhyTGxKX1Y4Y3Q4MiMmVmwxS05MWHtoT3k2UjtKVER5JTAhZUBjfnw5VQp6UHQo
dTh6RnU3cnJMOUcldExgaXQyb0lQJEtATjkzVXg8bUFQSjRzbkREXl9QRD12VGtePmllWmFMekNq
aCFWfmAKemhjTTF2MWklbXRKZGE+IUJacitiOGkrPTt0KSZ8JGdmakJ5PmVaa087VH5jaElOV2k9
cTh+MnZxVkReRWt4dGdGCnpNbGw+ZHw2fXQ7REpxbyY3UD8jOHJRSSZpTHxHZyFrQlR6UyVJWUVy
bVhXJiUxb1prQ0otbj1VYEVQJHcxOShQdQp6K0FnYyYyOWluMElhUGBRI0lCbzZWXj5mRCl+KDV5
Pkc+RE9oWUZ+SmlEQ2lVPWdUU2dRcWZvQ3FlYzN2YU1DRmUKenFjaWhgPmBMNSNqMVV1RUdmTjE3
byR0alo/OFhLVkFfbWNgcVVvRT81Wm9EPz1qQ2wjekxQYE1udX45cTZ8fHZKCnorbFpMdTBqc2pE
bVZtKzhOLUtnQzJIa1BBdHR2OWVmdzFrSE9ydjZNLWNrVXRXXzxXfmV8Pj0wbTBBRHk4clA9eAp6
I1h3WkZOSExAM1BXaURISiRtbz49bzNPTE1IWFF8YntyP2M8Ui1mYzdmQiRaTmktY21OaUNiRVI3
T0FrPjtkKmUKenQ5bDJ5I0VmUGI/UCU+ZGpfPT1fRTdOTFhkTHcmbCtQPj4jJEdJIX0taX4wNVI+
TUYkRGY5Sk9fNUl1UkNjQ3xCCnpScn5SWUZUbzY+P1JNTFZLUzd7PmVEZHdsTjFxLW81OTRAYHtf
eFc7PWNgclFZbTVtWHhQU2xOUDtYPklKd0p9Nwp6ZG1kK1BFdzhncHNuN3BAYWg5WXBKJHJkUjBe
KkRWQVY4NGtANlpYRjFgKit1YkI/aCtkJTQ9eUNmPipFdmhITzIKWUtkTX1lUjUpdEgtfmEjczA3
KnFvTTZOPCRnNGFNeylCcGVnCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IGMzNjgw
Y2IuLjhiMWJhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUuY3BwCkBAIC01NzYsNiArNTc2LDE4IEBAIFFfU0lHTkFMUzoKICAgICB2
b2lkIG15U2lnbmFsKCk7CiB9OwogCitzdGF0aWMgdm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3Qg
UVN0cmluZyYgZGlybmFtZSkKK3sKKyAgICBRRGlyIGRpcihkaXJuYW1lKTsKKyAgICBRRmlsZUlu
Zm9MaXN0IGVudHJpZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZpbGVz
IHwgUURpcjo6Tm9Eb3RBbmREb3REb3QpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGVudHJp
ZXMuY291bnQoKTsgKytpKQorICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcigpKQorICAgICAg
ICAgICAgcmVtb3ZlUmVjdXJzaXZlKGVudHJpZXNbaV0uZmlsZVBhdGgoKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGRpci5yZW1vdmUoZW50cmllc1tpXS5maWxlTmFtZSgpKTsKKyAgICBR
RGlyKCkucm1kaXIoZGlybmFtZSk7Cit9CisKIGNsYXNzIHRzdF9RV2ViRnJhbWUgOiBwdWJsaWMg
UU9iamVjdAogewogICAgIFFfT0JKRUNUCkBAIC02NTksNiArNjcxLDcgQEAgcHJpdmF0ZSBzbG90
czoKICAgICB2b2lkIHNldFVybFNhbWVVcmwoKTsKICAgICB2b2lkIHNldFVybFRoZW5Mb2Fkc19k
YXRhKCk7CiAgICAgdm9pZCBzZXRVcmxUaGVuTG9hZHMoKTsKKyAgICB2b2lkIGR5bmFtaWNhbGx5
Q2hhbmdpbmdGYXZpY29uKCk7CiAKIHByaXZhdGU6CiAgICAgUVN0cmluZyAgZXZhbEpTKGNvbnN0
IFFTdHJpbmcmcykgewpAQCAtNzMyLDE2ICs3NDUsMjcgQEAgcHJpdmF0ZToKICAgICBNeVFPYmpl
Y3QqIG1fbXlPYmplY3Q7CiAgICAgUVdlYlZpZXcqIG1faW5wdXRGaWVsZHNUZXN0VmlldzsKICAg
ICBpbnQgbV9pbnB1dEZpZWxkVGVzdFBhaW50Q291bnQ7CisKKyAgICBRU3RyaW5nIHRtcERpclBh
dGgoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RhdGljIFFTdHJpbmcgdG1wZCA9IFFEaXI6OnRl
bXBQYXRoKCkgKyAiL3RzdF9xd2ViZnJhbWUtIgorICAgICAgICAgICAgKyBRRGF0ZVRpbWU6OmN1
cnJlbnREYXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFTdHJpbmcoInl5eXlNTWRkaGhtbXNzIikp
OworICAgICAgICByZXR1cm4gdG1wZDsKKyAgICB9CiB9OwogCiB0c3RfUVdlYkZyYW1lOjp0c3Rf
UVdlYkZyYW1lKCkKICAgICA6IHNUcnVlKCJ0cnVlIiksIHNGYWxzZSgiZmFsc2UiKSwgc1VuZGVm
aW5lZCgidW5kZWZpbmVkIiksIHNBcnJheSgiYXJyYXkiKSwgc0Z1bmN0aW9uKCJmdW5jdGlvbiIp
LCBzRXJyb3IoImVycm9yIiksCiAgICAgICAgIHNTdHJpbmcoInN0cmluZyIpLCBzT2JqZWN0KCJv
YmplY3QiKSwgc051bWJlcigibnVtYmVyIiksIG1faW5wdXRGaWVsZHNUZXN0VmlldygwKSwgbV9p
bnB1dEZpZWxkVGVzdFBhaW50Q291bnQoMCkKIHsKKyAgICBRRGlyIGRpcjsKKyAgICBkaXIubWtw
YXRoKHRtcERpclBhdGgoKSk7CisgICAgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRo
KHRtcERpclBhdGgoKSk7CiB9CiAKIHRzdF9RV2ViRnJhbWU6On50c3RfUVdlYkZyYW1lKCkKIHsK
KyAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyUGF0aCgpKTsKIH0KIAogYm9vbCB0c3RfUVdlYkZy
YW1lOjpldmVudEZpbHRlcihRT2JqZWN0KiB3YXRjaGVkLCBRRXZlbnQqIGV2ZW50KQpAQCAtMzY3
OSw1ICszNzAzLDM2IEBAIHZvaWQgdHN0X1FXZWJGcmFtZTo6c2V0VXJsVGhlbkxvYWRzKCkKICAg
ICBRQ09NUEFSRShmcmFtZS0+YmFzZVVybCgpLCBleHRyYWN0QmFzZVVybCh1cmxUb0xvYWQyKSk7
CiB9CiAKK3ZvaWQgdHN0X1FXZWJGcmFtZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKQor
eworICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOworICAgIGNvbnN0
IFFTaXplIGljb25TaXplKDE2LDE2KTsKKworICAgIGZyYW1lLT5sb2FkKFFVcmwoInFyYzovZmF2
aWNvbi5odG1sIikpOworICAgIDo6d2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGljb25DaGFu
Z2VkKCkpLCAxMDAwKTsKKworICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuaXNOdWxsKCkpOwor
ICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuYXZhaWxhYmxlU2l6ZXMoKS5pc0VtcHR5KCkpOwor
CisgICAgUUltYWdlIG9sZEljb24gID0gZnJhbWUtPmljb24oKS5waXhtYXAoaWNvblNpemUpLnRv
SW1hZ2UoKTsKKyAgICBRSW1hZ2UgaW1hZ2UgPSBRSW1hZ2UoIjovZmF2aWNvbjEucG5nIikuY29u
dmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsKKworICAg
IFFDT01QQVJFKG9sZEljb24sIGltYWdlKTsKKworICAgIFFTaWduYWxTcHkgaWNvbkNoYW5nZWRT
cHkoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSk7CisgICAgUVN0cmluZyBqcyA9IFFMYXRp
bjFTdHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYXZpY29uJykuc2V0QXR0cmlidXRl
KFwiaHJlZlwiLCBcImZhdmljb24yLnBuZ1wiKSIpOworICAgIGZyYW1lLT5ldmFsdWF0ZUphdmFT
Y3JpcHQoanMpOworICAgIDo6d2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2Vk
KCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAxKTsKKyAg
ICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+
aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNFbXB0eSgpKTsKKworICAgIFFJbWFnZSBuZXdJY29u
ID0gZnJhbWUtPmljb24oKS5waXhtYXAoaWNvblNpemUpLnRvSW1hZ2UoKTsKKyAgICBRVkVSSUZZ
KG5ld0ljb24gIT0gb2xkSWNvbik7CisgICAgaW1hZ2UgPSBRSW1hZ2UoIjovZmF2aWNvbjIucG5n
IikuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X1JHQjMyKTsKKyAgICBRQ09NUEFSRShu
ZXdJY29uLCBpbWFnZSk7CisKK30KKwogUVRFU1RfTUFJTih0c3RfUVdlYkZyYW1lKQogI2luY2x1
ZGUgInRzdF9xd2ViZnJhbWUubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYwppbmRleCAyYTdkMGI5Li5kZjQyNzY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYwor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYwpA
QCAtMSwxMCArMSwxMyBAQAotPCFET0NUWVBFIFJDQz48UkNDIHZlcnNpb249IjEuMCI+Ci08cXJl
c291cmNlIHByZWZpeD0iLyI+Ci08ZmlsZSBhbGlhcz0iaW1hZ2UucG5nIj5yZXNvdXJjZXMvaW1h
Z2UucG5nPC9maWxlPgotPGZpbGUgYWxpYXM9InN0eWxlLmNzcyI+cmVzb3VyY2VzL3N0eWxlLmNz
czwvZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0MS5odG1sIj5yZXNvdXJjZXMvdGVzdDEuaHRtbDwv
ZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0Mi5odG1sIj5yZXNvdXJjZXMvdGVzdDIuaHRtbDwvZmls
ZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1lLmh0bWwiPnJlc291cmNlcy90ZXN0aWZyYW1lLmh0
bWw8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdGlmcmFtZTIuaHRtbCI+cmVzb3VyY2VzL3Rlc3Rp
ZnJhbWUyLmh0bWw8L2ZpbGU+Ci08L3FyZXNvdXJjZT4KKzxSQ0M+CisgICAgPHFyZXNvdXJjZSBw
cmVmaXg9Ii8iPgorICAgICAgICA8ZmlsZSBhbGlhcz0iaW1hZ2UucG5nIj5yZXNvdXJjZXMvaW1h
Z2UucG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0ic3R5bGUuY3NzIj5yZXNvdXJjZXMv
c3R5bGUuY3NzPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdDEuaHRtbCI+cmVzb3Vy
Y2VzL3Rlc3QxLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0ZXN0Mi5odG1sIj5y
ZXNvdXJjZXMvdGVzdDIuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3RpZnJh
bWUuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUg
YWxpYXM9InRlc3RpZnJhbWUyLmh0bWwiPnJlc291cmNlcy90ZXN0aWZyYW1lMi5odG1sPC9maWxl
PgorICAgICAgICA8ZmlsZSBhbGlhcz0iZmF2aWNvbjEucG5nIj5yZXNvdXJjZXMvZmF2aWNvbjEu
cG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0iZmF2aWNvbjIucG5nIj5yZXNvdXJjZXMv
ZmF2aWNvbjIucG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0iZmF2aWNvbi5odG1sIj5y
ZXNvdXJjZXMvZmF2aWNvbi5odG1sPC9maWxlPgorICAgIDwvcXJlc291cmNlPgogPC9SQ0M+Ci0t
IAoxLjcuNgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102763</attachid>
            <date>2011-08-03 03:19:52 -0700</date>
            <delta_ts>2011-08-07 01:45:53 -0700</delta_ts>
            <desc>changelog fixup</desc>
            <filename>0001-Load-favicon-dynamically.patch</filename>
            <type>text/plain</type>
            <size>12797</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">RnJvbSBmYjY1MjA0ZjVlYWNiYWNlMGZjZDM2ODk1MmUzMTUxYTQ5MTViZmFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaWVycmUgUm9zc2kgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+
CkRhdGU6IE1vbiwgMjUgSnVsIDIwMTEgMTU6NDQ6MzIgKzAyMDAKU3ViamVjdDogTG9hZCBmYXZp
Y29uIGR5bmFtaWNhbGx5LgoKLS0tCiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcCAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcCAgICAgICAgICAgICAgICAgfCAgICA1ICsrLQogU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArKysrKysrKysrCiAuLi4vcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgICAgICB8ICAgIDQgKy0KIC4u
Li9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCAgICAgIHwgICAgNSAr
KwogLi4uL3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEucG5nICAgICAgfCAg
QmluIDAgLT4gODkxIGJ5dGVzCiAuLi4vcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZp
Y29uMi5wbmcgICAgICB8ICBCaW4gMCAtPiA3NDIgYnl0ZXMKIFNvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwIHwgICA1NSArKysrKysrKysrKysrKysrKysr
KwogU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMgfCAg
IDIxICsrKystLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAxMiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJm
cmFtZS9yZXNvdXJjZXMvZmF2aWNvbi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24xLnBuZwogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZp
Y29uMi5wbmcKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4
IDJiZDIzN2YuLjI1NmJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFw
aGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZp
ZXcuY3BwCkBAIC0yMDgsNiArMjA4LDggQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
X3Ffc2NhbGVDaGFuZ2VkKCkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8gYmUgbG9hZGVkLCB5
b3Ugd2lsbCBuZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAgICB1c2luZyBRV2Vi
U2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3RlIFRoaXMgc2lnbmFs
IG1heSBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwog
ICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAppbmRleCA3Mzg0YzQxLi5hNDA4ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTE2NzEsNyArMTY3MSwxMCBAQCBRV2ViRnJh
bWUqIFFXZWJGcmFtZVByaXZhdGU6OmtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1l
KQogICBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gdGhlIGljb24gKCJmYXZpY29uIikgYXNz
b2NpYXRlZCB3aXRoIHRoZSBmcmFtZQogICBoYXMgYmVlbiBsb2FkZWQuCiAKLSAgXHNhIGljb24o
KQorICBcbm90ZSBUaGlzIHNpZ25hbCBtYXkgbm90IGJlIGVtaXR0ZWQgaWYgdGhlIGljb24gZGF0
YWJhc2UgaXMgZGlzYWJsZWQgKHNlZQorICBcbHtRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFz
ZVBhdGgoKX17c2V0SWNvbkRhdGFiYXNlUGF0aCgpfSkuCisKKyAgXHNhIGljb24oKSwgUVdlYlNl
dHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKCkKICovCiAKIC8qIQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnZpZXcuY3BwCmluZGV4IDc2YjkyN2IuLjExMTQ5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmll
dy5jcHAKQEAgLTEyMDEsNiArMTIwMSw4IEBAIHZvaWQgUVdlYlZpZXc6OmNoYW5nZUV2ZW50KFFF
dmVudCAqZSkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8gYmUgbG9hZGVkLCB5b3Ugd2lsbCBu
ZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAgICB1c2luZyBRV2ViU2V0dGluZ3M6
OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3RlIFRoaXMgc2lnbmFsIG1heSBub3Qg
YmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBp
Y29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCmluZGV4IGMwYjg5N2EuLjIwMjE4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTEtMDctMjcgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisK
KyAgICAgICAgW1F0XSBGYXZpY29ucyBjYW4ndCBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIzNworCisg
ICAgICAgIFRoZSBvbmx5IG1pc3NpbmcgcGllY2Ugd2FzIGFjdHVhbGx5IHJlbG9hZGluZyB0aGUg
aWNvbgorICAgICAgICB3aGVuIGl0cyBsaW5rIGVsZW1lbnQgY2hhbmdlcyBpbiB0aGUgRE9NLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3Fn
cmFwaGljc3dlYnZpZXcuY3BwOiBVcGRhdGUgdGhlIGRvY3VtZW50YXRpb24KKyAgICAgICAgKiBB
cGkvcXdlYmZyYW1lLmNwcDpVdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uCisgICAgICAgICogQXBp
L3F3ZWJ2aWV3LmNwcDogVXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZENoYW5nZUljb25zKToKKyAgICAgICAgVHJpZ2dl
ciBpY29uIGxvYWRpbmcuCisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZp
Y29uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2
aWNvbjEucG5nOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zh
dmljb24yLnBuZzogQWRkZWQuCisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJh
bWUuY3BwOgorICAgICAgICAocmVtb3ZlUmVjdXJzaXZlKToKKyAgICAgICAgKHRzdF9RV2ViRnJh
bWU6OnRtcERpclBhdGgpOgorICAgICAgICAodHN0X1FXZWJGcmFtZTo6dHN0X1FXZWJGcmFtZSk6
CisgICAgICAgICh0c3RfUVdlYkZyYW1lOjp+dHN0X1FXZWJGcmFtZSk6CisgICAgICAgICh0c3Rf
UVdlYkZyYW1lOjpkeW5hbWljYWxseUNoYW5naW5nRmF2aWNvbik6CisgICAgICAgICogdGVzdHMv
cXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjOgorCiAyMDExLTA3LTE5ICBDYWlvIE1hcmNlbG8g
ZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAg
ICAgW1F0XSBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgUVdlYlZpZXc6OnNldFBhZ2UoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAKaW5kZXggOWExZTFmZi4uNDg4ZGQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC00NzQs
MTQgKzQ3NCwxNCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGlkUmVjZWl2
ZVRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpdAogCiB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCiB7Cisg
ICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIGlmIChkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3MpCiAg
ICAgICAgIHByaW50ZigiJXMgLSBkaWRDaGFuZ2VJY29uc1xuIiwgcVByaW50YWJsZShkcnREZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChtX2ZyYW1lKSkpOwogCiAgICAgaWYgKCFtX3dl
YkZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogSW4gb3JkZXIgdG8gZ2V0
IG5vdGlmaWVkIG9mIGljb24gVVJMUycgY2hhbmdlcywgYWRkIGEgbm90aWZpY2F0aW9uLgotICAg
IC8vIGVtaXQgaWNvbnNDaGFuZ2VkKCk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+
c3RhcnRMb2FkZXIoKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbi5odG1sIGIvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yYzRlZDIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9x
dC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbApAQCAtMCwwICsxLDUgQEAK
KzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0iZmF2aWNvbiIgcmVsPSJzaG9ydGN1dCBpY29uIiB0
eXBlPSJpbWFnZS9wbmciIGhyZWY9ImZhdmljb24xLnBuZyIvPgorPC9zY3JpcHQ+Cis8L2hlYWQ+
PGJvZHk+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uMS5wbmcgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0NjI3NTJhNTNi
YWViMDVkOWE5OGY4YWUyM2ZhODA3ZTdjZWVlNGEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDg5
MQp6Y21WLT4xQkNwRVApPGg7M0t8TGswMDBlMU5KTFRxMDAwbUcwMDBtTzFeQHM2QU1eaVYwMDAw
MWI1Y2hfMEl0cCkKej0+UHgmSEF6SDRSNSh1cyFPYyQ7WDheJEEtfX14eEdkciohNDctYmhWSiQ0
IXFSQGJ2Ryk7XiN7MCtTcilBWilXCnpHKEdlV0Q1c3UjKWtEdntuO3pRUSMmfk5KUWQ1eXU1bitM
YW0xVEVYYzZZdyNvaiM4TV8rb3dpdXstTk5HI3J5Rwp6MzwqWE5jRnJVZDJCcXBII3RTYTMoX14k
IW41TkIxcWp9UDhvanJhMjs+QmEqKEtsYWozX0dvRl5FMTtWTFNjPEwKejNgUE5eWU1Kcz5uVTZu
TjtyZmtiQ015K2BXcjFaLXUydV8yam1FOEt6eF5WVkE+Pz1ZPV58MDtRPVh9amRQRE1WCnpmdGxK
b2l9Z0J8dk0zWV5TaGtISE1UQlhCcFQhaTVFPlk/fkdeVjg3czRndXJVTXdNbmpjcipKLTNvSmEz
KFFRLQp6QWYtWVlsQUxXTDVnWjtJKEFhJjBQOT5vPGtzX0J6c3hpamgzV21ePmliZGo3bFpHK1A0
e2NpQWIxWXxeTFZrakIKeldzM1FhdGBVdD1CQ2spcnluciRzMmc2Wi1MRGlrMipZNUR7VjR0MUY1
bjUqJFh+eGFmUHF9eUo0IyV3KVBrO1hkCnpLaEI3PkwpX2QoTm1HITlEWChAbU4mNWtfXj1yODBE
QDtzQ2p0QD9OZ3VUNjh7YCZKREU8QkcpRFRnKlBMTEd1RQp6cF5UaEVDXlZDazYmQmEodFM7WVJg
fFUyVHw5IzFMITZFU3MwPypefitza3gxVTBVNTlRZmRaJU9wdDElWkQhPTYKemduWjVkb2Ulfi1p
KnElVUhjJnh8QipUJnhiRigkcEA3Xld5YGlNQmdrfDZ5SCNEbnx5dmo8OyZOb0UtUXl9OE5DCnpA
XiM5UzY+UXJrTyVqcU1MSV48KyNgRmdSYTwpbX1kSG5xQUd2MDEqcWs2cF9haGclZT1OTmg7Zio+
SHZHTCh8VQp6aUR1e2hKRyRMLWYqPkZqbmx5fkt4dz1Ya01gV3BpRjxZRDhYbnJgUlNqZTtBSml0
XklackxVMCpsZk10Vm1LTysKejdZPXpsND4zcSgoKFpSP299NGwwXi16Jk1yKn4lWV4xb0xrTnlj
Zm5odWRtbCtaTCZZT1A4bXlsfVJ2K05Ua0x4Cno7UGtBYHpgc0UyMWZ8Umh4azNAc3Y+Q1VAWG0m
Y3BuV288I2FNV3JkZ2E5JWVRO3xmUHR+YTNIPmw2MHxsPGhMYwp6KXNAPksoQjhlUG0jMENleWcl
M3skPjZselZkI2ZrNDJMOC1xZ1g4QlBFTjNRYyEpbT14Z3MxRU9Pc0VHIyskOUAKellpcG0pRVkp
a2I3VjMzNm9pPkMxMSg2bUEhejkpVFgkRkh+JFZ1bSVJMGZiVFI4ZGQ5fExNbWN7cyU0JGc8NCtl
ClJFZjQ/ejAwMm92UERITGtWMW5sam8ha0hiCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNv
bjIucG5nIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmlj
b24yLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZmQxMjY5MTRmYjM5MjE5YTgzYTZkZTE0NzI4OWEzNjM3MDZm
M2QyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3NDIKemNtVjxDMHZZe0BQKTxoOzNLfExrMDAw
ZTFOSkxUcTAwMG1HMDAwbU8wc3NJMmtkYklNMDAwMDFiNWNoXzBJdHApCno9PlB4JXBoLWtRUjRD
NXshRWJOZUcjbWg2K3AoUUV4bT1Sd3VHaTUrWW5lOExTUzJMakNFXnFDOFRlP3RMQSt1RAp6ZnJS
JDk1KXo8RWx1YzlCRD1NUmBPU3wwVnZkY2Ztai00T1JnTWFAMXlWMjszQUMmKUdUfGF4YGBvVX5B
NUIpJG0KemQ9WjdxTWZ6ZVRafncmeVV3d0o8Znd6OHJMbEpfVjhjdDgyIyZWbDFLTkxYe2hPeTZS
O0pURHklMCFlQGN+fDlVCnpQdCh1OHpGdTdyckw5RyV0TGBpdDJvSVAkS0BOOTNVeDxtQVBKNHNu
REReX1BEPXZUa14+aWVaYUx6Q2poIVZ+YAp6aGNNMXYxaSVtdEpkYT4hQlpyK2I4aSs9O3QpJnwk
Z2ZqQnk+ZVprTztUfmNoSU5XaT1xOH4ydnFWRF5Fa3h0Z0YKek1sbD5kfDZ9dDtESnFvJjdQPyM4
clFJJmlMfEdnIWtCVHpTJUlZRXJtWFcmJTFvWmtDSi1uPVVgRVAkdzE5KFB1CnorQWdjJjI5aW4w
SWFQYFEjSUJvNlZePmZEKX4oNXk+Rz5ET2hZRn5KaURDaVU9Z1RTZ1FxZm9DcWVjM3ZhTUNGZQp6
cWNpaGA+YEw1I2oxVXVFR2ZOMTdvJHRqWj84WEtWQV9tY2BxVW9FPzVab0Q/PWpDbCN6TFBgTW51
fjlxNnx8dkoKeitsWkx1MGpzakRtVm0rOE4tS2dDMkhrUEF0dHY5ZWZ3MWtIT3J2Nk0tY2tVdFdf
PFd+ZXw+PTBtMEFEeThyUD14CnojWHdaRk5ITEAzUFdpREhKJG1vPj1vM09MTUhYUXxie3I/YzxS
LWZjN2ZCJFpOaS1jbU5pQ2JFUjdPQWs+O2QqZQp6dDlsMnkjRWZQYj9QJT5kal89PV9FN05MWGRM
dyZsK1A+PiMkR0khfS1pfjA1Uj5NRiREZjlKT181SXVSQ2NDfEIKelJyflJZRlRvNj4/Uk1MVktT
N3s+ZURkd2xOMXEtbzU5NEBge194Vzs9Y2ByUVltNW1YeFBTbE5QO1g+SUp3Sn03CnpkbWQrUEV3
OGdwc243cEBhaDlZcEokcmRSMF4qRFZBVjg0a0A2WlhGMWAqK3ViQj9oK2QlND15Q2Y+KkV2aEhP
MgpZS2RNfWVSNSl0SC1+YSNzMDcqcW9NNk48JGc0YU17KUJwZWcKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9x
d2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJm
cmFtZS5jcHAKaW5kZXggYzM2ODBjYi4uOGIxYmE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKQEAgLTU3Niw2ICs1NzYsMTgg
QEAgUV9TSUdOQUxTOgogICAgIHZvaWQgbXlTaWduYWwoKTsKIH07CiAKK3N0YXRpYyB2b2lkIHJl
bW92ZVJlY3Vyc2l2ZShjb25zdCBRU3RyaW5nJiBkaXJuYW1lKQoreworICAgIFFEaXIgZGlyKGRp
cm5hbWUpOworICAgIFFGaWxlSW5mb0xpc3QgZW50cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGly
OjpEaXJzIHwgUURpcjo6RmlsZXMgfCBRRGlyOjpOb0RvdEFuZERvdERvdCkpOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgZW50cmllcy5jb3VudCgpOyArK2kpCisgICAgICAgIGlmIChlbnRyaWVz
W2ldLmlzRGlyKCkpCisgICAgICAgICAgICByZW1vdmVSZWN1cnNpdmUoZW50cmllc1tpXS5maWxl
UGF0aCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzW2ld
LmZpbGVOYW1lKCkpOworICAgIFFEaXIoKS5ybWRpcihkaXJuYW1lKTsKK30KKwogY2xhc3MgdHN0
X1FXZWJGcmFtZSA6IHB1YmxpYyBRT2JqZWN0CiB7CiAgICAgUV9PQkpFQ1QKQEAgLTY1OSw2ICs2
NzEsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgc2V0VXJsU2FtZVVybCgpOwogICAgIHZv
aWQgc2V0VXJsVGhlbkxvYWRzX2RhdGEoKTsKICAgICB2b2lkIHNldFVybFRoZW5Mb2FkcygpOwor
ICAgIHZvaWQgZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKTsKIAogcHJpdmF0ZToKICAgICBR
U3RyaW5nICBldmFsSlMoY29uc3QgUVN0cmluZyZzKSB7CkBAIC03MzIsMTYgKzc0NSwyNyBAQCBw
cml2YXRlOgogICAgIE15UU9iamVjdCogbV9teU9iamVjdDsKICAgICBRV2ViVmlldyogbV9pbnB1
dEZpZWxkc1Rlc3RWaWV3OwogICAgIGludCBtX2lucHV0RmllbGRUZXN0UGFpbnRDb3VudDsKKwor
ICAgIFFTdHJpbmcgdG1wRGlyUGF0aCgpIGNvbnN0CisgICAgeworICAgICAgICBzdGF0aWMgUVN0
cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3F3ZWJmcmFtZS0iCisgICAgICAg
ICAgICArIFFEYXRlVGltZTo6Y3VycmVudERhdGVUaW1lKCkudG9TdHJpbmcoUUxhdGluMVN0cmlu
ZygieXl5eU1NZGRoaG1tc3MiKSk7CisgICAgICAgIHJldHVybiB0bXBkOworICAgIH0KIH07CiAK
IHRzdF9RV2ViRnJhbWU6OnRzdF9RV2ViRnJhbWUoKQogICAgIDogc1RydWUoInRydWUiKSwgc0Zh
bHNlKCJmYWxzZSIpLCBzVW5kZWZpbmVkKCJ1bmRlZmluZWQiKSwgc0FycmF5KCJhcnJheSIpLCBz
RnVuY3Rpb24oImZ1bmN0aW9uIiksIHNFcnJvcigiZXJyb3IiKSwKICAgICAgICAgc1N0cmluZygi
c3RyaW5nIiksIHNPYmplY3QoIm9iamVjdCIpLCBzTnVtYmVyKCJudW1iZXIiKSwgbV9pbnB1dEZp
ZWxkc1Rlc3RWaWV3KDApLCBtX2lucHV0RmllbGRUZXN0UGFpbnRDb3VudCgwKQogeworICAgIFFE
aXIgZGlyOworICAgIGRpci5ta3BhdGgodG1wRGlyUGF0aCgpKTsKKyAgICBRV2ViU2V0dGluZ3M6
OnNldEljb25EYXRhYmFzZVBhdGgodG1wRGlyUGF0aCgpKTsKIH0KIAogdHN0X1FXZWJGcmFtZTo6
fnRzdF9RV2ViRnJhbWUoKQogeworICAgIHJlbW92ZVJlY3Vyc2l2ZSh0bXBEaXJQYXRoKCkpOwog
fQogCiBib29sIHRzdF9RV2ViRnJhbWU6OmV2ZW50RmlsdGVyKFFPYmplY3QqIHdhdGNoZWQsIFFF
dmVudCogZXZlbnQpCkBAIC0zNjc5LDUgKzM3MDMsMzYgQEAgdm9pZCB0c3RfUVdlYkZyYW1lOjpz
ZXRVcmxUaGVuTG9hZHMoKQogICAgIFFDT01QQVJFKGZyYW1lLT5iYXNlVXJsKCksIGV4dHJhY3RC
YXNlVXJsKHVybFRvTG9hZDIpKTsKIH0KIAordm9pZCB0c3RfUVdlYkZyYW1lOjpkeW5hbWljYWxs
eUNoYW5naW5nRmF2aWNvbigpCit7CisgICAgUVdlYkZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+bWFp
bkZyYW1lKCk7CisgICAgY29uc3QgUVNpemUgaWNvblNpemUoMTYsMTYpOworCisgICAgZnJhbWUt
PmxvYWQoUVVybCgicXJjOi9mYXZpY29uLmh0bWwiKSk7CisgICAgOjp3YWl0Rm9yU2lnbmFsKGZy
YW1lLCBTSUdOQUwoaWNvbkNoYW5nZWQoKSksIDEwMDApOworCisgICAgUVZFUklGWSghZnJhbWUt
Pmljb24oKS5pc051bGwoKSk7CisgICAgUVZFUklGWSghZnJhbWUtPmljb24oKS5hdmFpbGFibGVT
aXplcygpLmlzRW1wdHkoKSk7CisKKyAgICBRSW1hZ2Ugb2xkSWNvbiAgPSBmcmFtZS0+aWNvbigp
LnBpeG1hcChpY29uU2l6ZSkudG9JbWFnZSgpOworICAgIFFJbWFnZSBpbWFnZSA9IFFJbWFnZSgi
Oi9mYXZpY29uMS5wbmciKS5jb252ZXJ0VG9Gb3JtYXQoUUltYWdlOjpGb3JtYXRfQVJHQjMyX1By
ZW11bHRpcGxpZWQpOworCisgICAgUUNPTVBBUkUob2xkSWNvbiwgaW1hZ2UpOworCisgICAgUVNp
Z25hbFNweSBpY29uQ2hhbmdlZFNweShmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpKTsKKyAg
ICBRU3RyaW5nIGpzID0gUUxhdGluMVN0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zh
dmljb24nKS5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIFwiZmF2aWNvbjIucG5nXCIpIik7CisgICAg
ZnJhbWUtPmV2YWx1YXRlSmF2YVNjcmlwdChqcyk7CisgICAgOjp3YWl0Rm9yU2lnbmFsKGZyYW1l
LCBTSUdOQUwoaWNvbkNoYW5nZWQoKSksIDEwMDApOworICAgIFFDT01QQVJFKGljb25DaGFuZ2Vk
U3B5LmNvdW50KCksIDEpOworICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuaXNOdWxsKCkpOwor
ICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuYXZhaWxhYmxlU2l6ZXMoKS5pc0VtcHR5KCkpOwor
CisgICAgUUltYWdlIG5ld0ljb24gPSBmcmFtZS0+aWNvbigpLnBpeG1hcChpY29uU2l6ZSkudG9J
bWFnZSgpOworICAgIFFWRVJJRlkobmV3SWNvbiAhPSBvbGRJY29uKTsKKyAgICBpbWFnZSA9IFFJ
bWFnZSgiOi9mYXZpY29uMi5wbmciKS5jb252ZXJ0VG9Gb3JtYXQoUUltYWdlOjpGb3JtYXRfUkdC
MzIpOworICAgIFFDT01QQVJFKG5ld0ljb24sIGltYWdlKTsKKworfQorCiBRVEVTVF9NQUlOKHRz
dF9RV2ViRnJhbWUpCiAjaW5jbHVkZSAidHN0X3F3ZWJmcmFtZS5tb2MiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYyBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjCmluZGV4IDJhN2Qw
YjkuLmRmNDI3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUucXJjCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUucXJjCkBAIC0xLDEwICsxLDEzIEBACi08IURPQ1RZUEUgUkNDPjxSQ0Mg
dmVyc2lvbj0iMS4wIj4KLTxxcmVzb3VyY2UgcHJlZml4PSIvIj4KLTxmaWxlIGFsaWFzPSJpbWFn
ZS5wbmciPnJlc291cmNlcy9pbWFnZS5wbmc8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0ic3R5bGUuY3Nz
Ij5yZXNvdXJjZXMvc3R5bGUuY3NzPC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3QxLmh0bWwiPnJl
c291cmNlcy90ZXN0MS5odG1sPC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3QyLmh0bWwiPnJlc291
cmNlcy90ZXN0Mi5odG1sPC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3RpZnJhbWUuaHRtbCI+cmVz
b3VyY2VzL3Rlc3RpZnJhbWUuaHRtbDwvZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1lMi5o
dG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZTIuaHRtbDwvZmlsZT4KLTwvcXJlc291cmNlPgorPFJD
Qz4KKyAgICA8cXJlc291cmNlIHByZWZpeD0iLyI+CisgICAgICAgIDxmaWxlIGFsaWFzPSJpbWFn
ZS5wbmciPnJlc291cmNlcy9pbWFnZS5wbmc8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJz
dHlsZS5jc3MiPnJlc291cmNlcy9zdHlsZS5jc3M8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFz
PSJ0ZXN0MS5odG1sIj5yZXNvdXJjZXMvdGVzdDEuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUg
YWxpYXM9InRlc3QyLmh0bWwiPnJlc291cmNlcy90ZXN0Mi5odG1sPC9maWxlPgorICAgICAgICA8
ZmlsZSBhbGlhcz0idGVzdGlmcmFtZS5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZS5odG1sPC9m
aWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdGlmcmFtZTIuaHRtbCI+cmVzb3VyY2VzL3Rl
c3RpZnJhbWUyLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJmYXZpY29uMS5wbmci
PnJlc291cmNlcy9mYXZpY29uMS5wbmc8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJmYXZp
Y29uMi5wbmciPnJlc291cmNlcy9mYXZpY29uMi5wbmc8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFs
aWFzPSJmYXZpY29uLmh0bWwiPnJlc291cmNlcy9mYXZpY29uLmh0bWw8L2ZpbGU+CisgICAgPC9x
cmVzb3VyY2U+CiA8L1JDQz4KLS0gCjEuNy42Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103174</attachid>
            <date>2011-08-07 01:46:05 -0700</date>
            <delta_ts>2011-08-10 08:33:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20110807104601.patch</filename>
            <type>text/plain</type>
            <size>16916</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKaW5kZXggMmJkMjM3ZjFjMjgzMGYxNDFkNzNkZGM0ODg2YjhhYjVhOTliY2Nj
NS4uYTEzZjM4OGRlNzNkZWRjMDI5ZmVhMmIzMjMzOWI1ZDVkNDAzZWE0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTIwOCw2ICsyMDgsOSBAQCB2b2lk
IFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQoKQogICAgIEluIG9yZGVy
IGZvciBpY29ucyB0byBiZSBsb2FkZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0
YWJhc2UgcGF0aAogICAgIHVzaW5nIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgp
LgogCisgICAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBhZ2FpbiBhZnRl
ciB0aGUgaW5pdGlhbCBwYWdlIGxvYWQKKyAgICBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNh
YmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0
aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAppbmRleCBhMGEyZjNlOWQxNGQy
YTUzM2ZlM2ZlOWQxY2FhYzhjYmU5YTEyNmFhLi5lZjQzZWNmOWE5NGRiZDRmMzEzMDIwODczMDUy
N2MwOTFjYjM1OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTE2NzMsNyAr
MTY3MywxMCBAQCBRV2ViRnJhbWUqIFFXZWJGcmFtZVByaXZhdGU6OmtpdChjb25zdCBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lKQogICBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gdGhlIGlj
b24gKCJmYXZpY29uIikgYXNzb2NpYXRlZCB3aXRoIHRoZSBmcmFtZQogICBoYXMgYmVlbiBsb2Fk
ZWQuCiAKLSAgXHNhIGljb24oKQorICBcbm90ZSBUaGlzIHNpZ25hbCB3aWxsIG5vdCBiZSBlbWl0
dGVkIGFnYWluIGFmdGVyIHRoZSBpbml0aWFsIHBhZ2UgbG9hZAorICBpZiB0aGUgaWNvbiBkYXRh
YmFzZSBpcyBkaXNhYmxlZCAoc2VlIFxse1FXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0
aCgpfXtzZXRJY29uRGF0YWJhc2VQYXRoKCl9KS4KKworICBcc2EgaWNvbigpLCBRV2ViU2V0dGlu
Z3M6OnNldEljb25EYXRhYmFzZVBhdGgoKQogKi8KIAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmll
dy5jcHAKaW5kZXggNzZiOTI3YmFjZTIzZDhkZWU5MDkyZDI0NDg1MzMzMWQyYzhiYjI0NC4uNTU0
ZmI1NWUyZWQyNTQ1YWI3MDViMWNkOGMwNmY0NTM4MDYwMWFlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJ2aWV3LmNwcApAQCAtMTIwMSw2ICsxMjAxLDkgQEAgdm9pZCBRV2ViVmlldzo6Y2hhbmdlRXZl
bnQoUUV2ZW50ICplKQogICAgIEluIG9yZGVyIGZvciBpY29ucyB0byBiZSBsb2FkZWQsIHlvdSB3
aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0YWJhc2UgcGF0aAogICAgIHVzaW5nIFFXZWJTZXR0
aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpLgogCisgICAgXG5vdGUgVGhpcyBzaWduYWwgd2ls
bCBub3QgYmUgZW1pdHRlZCBhZ2FpbiBhZnRlciB0aGUgaW5pdGlhbCBwYWdlIGxvYWQKKyAgICBp
ZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJT
ZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGM2
MGUwYThkNDY0YzA0NTRhMDFiOTY0NDE4MjFhMmQ2NGU0ZjAxN2UuLjUyNjY3YWI0NDM3NzJlZGM1
OWNjOWIxYjc5MDJiM2NlMjZkZTE1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTEtMDgtMDcgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisKKyAg
ICAgICAgW1F0XSBGYXZpY29ucyBjYW4ndCBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMzcKKworICAgICAg
ICBUaGUgb25seSBtaXNzaW5nIHBpZWNlIHdhcyBhY3R1YWxseSByZWxvYWRpbmcgdGhlIGljb24K
KyAgICAgICAgd2hlbiBpdHMgbGluayBlbGVtZW50IGNoYW5nZXMgaW4gdGhlIERPTS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xZ3JhcGhp
Y3N3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKiBB
cGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0
Y2hEaWRDaGFuZ2VJY29ucyk6CisgICAgICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90
c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHA6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2Vi
Vmlldzo6Y2xlYW51cFRlc3RDYXNlKToKKyAgICAgICAgKHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3
OjpiYXNpY1Byb3BlcnRpZXMpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6Omhp
c3RvcnlOYXYpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmxvYWRFcnJvcik6
CisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24yLnBuZzogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwOgorICAgICAg
ICAodHN0X1FXZWJGcmFtZTo6dHN0X1FXZWJGcmFtZSk6CisgICAgICAgICh0c3RfUVdlYkZyYW1l
Ojp+dHN0X1FXZWJGcmFtZSk6CisgICAgICAgICh0c3RfUVdlYkZyYW1lOjpkeW5hbWljYWxseUNo
YW5naW5nRmF2aWNvbik6CisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUu
cXJjOgorICAgICAgICAqIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CisgICAgICAg
ICogdGVzdHMvdXRpbC5oOgorICAgICAgICAodG1wRGlyUGF0aCk6CisgICAgICAgIChyZW1vdmVS
ZWN1cnNpdmUpOgorCiAyMDExLTA4LTA1ICBEYXdpdCBBbGVtYXllaHUgIDxhZGF3aXRAa2RlLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5k
ZXggNThkNzZjZjRiOWY3MWQ1Y2YxMzMyOWRjZDJmNjA2MjgwOGVhNmIwMC4uYjBkZDI4NDU3OTQz
ZDE5MGExYjc4NThmNTExZGNiMGNjZWUyNTE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC00NjcsMTQg
KzQ2NywxNCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRp
dGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpdAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCiB7CisgICAg
QVNTRVJUKG1fZnJhbWUpOwogICAgIGlmIChkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3MpCiAgICAg
ICAgIHByaW50ZigiJXMgLSBkaWRDaGFuZ2VJY29uc1xuIiwgcVByaW50YWJsZShkcnREZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChtX2ZyYW1lKSkpOwogCiAgICAgaWYgKCFtX3dlYkZy
YW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogSW4gb3JkZXIgdG8gZ2V0IG5v
dGlmaWVkIG9mIGljb24gVVJMUycgY2hhbmdlcywgYWRkIGEgbm90aWZpY2F0aW9uLgotICAgIC8v
IGVtaXQgaWNvbnNDaGFuZ2VkKCk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+c3Rh
cnRMb2FkZXIoKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3
LmNwcAppbmRleCA0NzllY2FlZWQ0NDViZWM4ZWM0YWQ4YjkwZmRiNzA5NzllYTA0ODc5Li43NDZm
YThlMDAzM2NkMDk0ZjU1ODMxZDI4NGE0N2EyOGViMTIxNjNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90
c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKQEAgLTUwLDEyICs1MCw2IEBAIHByaXZhdGUgc2xv
dHM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja05vRXJyb3JzKGNvbnN0IFFEZWNsYXJhdGl2
ZUNvbXBvbmVudCYpOwotICAgIFFTdHJpbmcgdG1wRGlyKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHN0YXRpYyBRU3RyaW5nIHRtcGQgPSBRRGlyOjp0ZW1wUGF0aCgpICsgIi90c3RfcWRlY2xhcmF0
aXZld2Vidmlldy0iCi0gICAgICAgICAgICArIFFEYXRlVGltZTo6Y3VycmVudERhdGVUaW1lKCku
dG9TdHJpbmcoUUxhdGluMVN0cmluZygieXl5eU1NZGRoaG1tc3MiKSk7Ci0gICAgICAgIHJldHVy
biB0bXBkOwotICAgIH0KIH07CiAKIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojp0c3RfUURlY2xh
cmF0aXZlV2ViVmlldygpCkBAIC03NiwyMSArNzAsOSBAQCBzdGF0aWMgUVN0cmluZyBmaWxlQ29u
dGVudHMoY29uc3QgUVN0cmluZyYgZmlsZW5hbWUpCiAgICAgcmV0dXJuIFFTdHJpbmc6OmZyb21V
dGY4KGZpbGUucmVhZEFsbCgpKTsKIH0KIAotc3RhdGljIHZvaWQgcmVtb3ZlUmVjdXJzaXZlKGNv
bnN0IFFTdHJpbmcmIGRpcm5hbWUpCi17Ci0gICAgUURpciBkaXIoZGlybmFtZSk7Ci0gICAgUUZp
bGVJbmZvTGlzdCBlbnRyaWVzKGRpci5lbnRyeUluZm9MaXN0KFFEaXI6OkRpcnMgfCBRRGlyOjpG
aWxlcyB8IFFEaXI6Ok5vRG90QW5kRG90RG90KSk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBl
bnRyaWVzLmNvdW50KCk7ICsraSkKLSAgICAgICAgaWYgKGVudHJpZXNbaV0uaXNEaXIoKSkKLSAg
ICAgICAgICAgIHJlbW92ZVJlY3Vyc2l2ZShlbnRyaWVzW2ldLmZpbGVQYXRoKCkpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBkaXIucmVtb3ZlKGVudHJpZXNbaV0uZmlsZU5hbWUoKSk7Ci0g
ICAgUURpcigpLnJtZGlyKGRpcm5hbWUpOwotfQotCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJW
aWV3OjpjbGVhbnVwVGVzdENhc2UoKQogewotICAgIHJlbW92ZVJlY3Vyc2l2ZSh0bXBEaXIoKSk7
CisgICAgcmVtb3ZlUmVjdXJzaXZlKHRtcERpclBhdGgoKSk7CiB9CiAKIHZvaWQgdHN0X1FEZWNs
YXJhdGl2ZVdlYlZpZXc6OmJhc2ljUHJvcGVydGllcygpCkBAIC05OCw3ICs4MCw3IEBAIHZvaWQg
dHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmJhc2ljUHJvcGVydGllcygpCiAgICAgUURlY2xhcmF0
aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQgY29tcG9uZW50KCZl
bmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvYmFzaWMucW1sIikpOwogICAgIGNoZWNrTm9F
cnJvcnMoY29tcG9uZW50KTsKLSAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9y
YWdlKHRtcERpcigpKTsKKyAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdl
KHRtcERpclBhdGgoKSk7CiAKICAgICBRT2JqZWN0KiB3diA9IGNvbXBvbmVudC5jcmVhdGUoKTsK
ICAgICBRVkVSSUZZKHd2KTsKQEAgLTE2NCw3ICsxNDYsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRp
dmVXZWJWaWV3OjpoaXN0b3J5TmF2KCkKICAgICBRRGVjbGFyYXRpdmVFbmdpbmUgZW5naW5lOwog
ICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCBjb21wb25lbnQoJmVuZ2luZSwgUVVybCgicXJjOi8v
L3Jlc291cmNlcy9iYXNpYy5xbWwiKSk7CiAgICAgY2hlY2tOb0Vycm9ycyhjb21wb25lbnQpOwot
ICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UodG1wRGlyKCkpOworICAg
IFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UodG1wRGlyUGF0aCgpKTsKIAog
ICAgIFFPYmplY3QqIHd2ID0gY29tcG9uZW50LmNyZWF0ZSgpOwogICAgIFFWRVJJRlkod3YpOwpA
QCAtMjU1LDcgKzIzNyw3IEBAIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmxvYWRFcnJv
cigpCiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVDb21w
b25lbnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvbG9hZEVycm9y
LnFtbCIpKTsKICAgICBjaGVja05vRXJyb3JzKGNvbXBvbmVudCk7Ci0gICAgUVdlYlNldHRpbmdz
OjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXIoKSk7CisgICAgUVdlYlNldHRpbmdzOjpl
bmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXJQYXRoKCkpOwogCiAgICAgUU9iamVjdCogd3Yg
PSBjb21wb25lbnQuY3JlYXRlKCk7CiAgICAgUVZFUklGWSh3dik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbi5odG1sIGIvU291
cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYzRlZDIxYjY4ODZlNTM2NGU4YmZhNmVjZjNmNjlmNjlkZTA4NWYwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zh
dmljb24uaHRtbApAQCAtMCwwICsxLDUgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0iZmF2
aWNvbiIgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9ImZhdmljb24x
LnBuZyIvPgorPC9zY3JpcHQ+Cis8L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uMS5w
bmcgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEu
cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0NjI3NTJhNTNiYWViMDVkOWE5OGY4YWUyM2ZhODA3ZTdjZWVlNGEK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDg5MQp6Y21WLT4xQkNwRVApPGg7M0t8TGswMDBlMU5K
TFRxMDAwbUcwMDBtTzFeQHM2QU1eaVYwMDAwMWI1Y2hfMEl0cCkKej0+UHgmSEF6SDRSNSh1cyFP
YyQ7WDheJEEtfX14eEdkciohNDctYmhWSiQ0IXFSQGJ2Ryk7XiN7MCtTcilBWilXCnpHKEdlV0Q1
c3UjKWtEdntuO3pRUSMmfk5KUWQ1eXU1bitMYW0xVEVYYzZZdyNvaiM4TV8rb3dpdXstTk5HI3J5
Rwp6MzwqWE5jRnJVZDJCcXBII3RTYTMoX14kIW41TkIxcWp9UDhvanJhMjs+QmEqKEtsYWozX0dv
Rl5FMTtWTFNjPEwKejNgUE5eWU1Kcz5uVTZuTjtyZmtiQ015K2BXcjFaLXUydV8yam1FOEt6eF5W
VkE+Pz1ZPV58MDtRPVh9amRQRE1WCnpmdGxKb2l9Z0J8dk0zWV5TaGtISE1UQlhCcFQhaTVFPlk/
fkdeVjg3czRndXJVTXdNbmpjcipKLTNvSmEzKFFRLQp6QWYtWVlsQUxXTDVnWjtJKEFhJjBQOT5v
PGtzX0J6c3hpamgzV21ePmliZGo3bFpHK1A0e2NpQWIxWXxeTFZrakIKeldzM1FhdGBVdD1CQ2sp
cnluciRzMmc2Wi1MRGlrMipZNUR7VjR0MUY1bjUqJFh+eGFmUHF9eUo0IyV3KVBrO1hkCnpLaEI3
PkwpX2QoTm1HITlEWChAbU4mNWtfXj1yODBEQDtzQ2p0QD9OZ3VUNjh7YCZKREU8QkcpRFRnKlBM
TEd1RQp6cF5UaEVDXlZDazYmQmEodFM7WVJgfFUyVHw5IzFMITZFU3MwPypefitza3gxVTBVNTlR
ZmRaJU9wdDElWkQhPTYKemduWjVkb2Ulfi1pKnElVUhjJnh8QipUJnhiRigkcEA3Xld5YGlNQmdr
fDZ5SCNEbnx5dmo8OyZOb0UtUXl9OE5DCnpAXiM5UzY+UXJrTyVqcU1MSV48KyNgRmdSYTwpbX1k
SG5xQUd2MDEqcWs2cF9haGclZT1OTmg7Zio+SHZHTCh8VQp6aUR1e2hKRyRMLWYqPkZqbmx5fkt4
dz1Ya01gV3BpRjxZRDhYbnJgUlNqZTtBSml0XklackxVMCpsZk10Vm1LTysKejdZPXpsND4zcSgo
KFpSP299NGwwXi16Jk1yKn4lWV4xb0xrTnljZm5odWRtbCtaTCZZT1A4bXlsfVJ2K05Ua0x4Cno7
UGtBYHpgc0UyMWZ8Umh4azNAc3Y+Q1VAWG0mY3BuV288I2FNV3JkZ2E5JWVRO3xmUHR+YTNIPmw2
MHxsPGhMYwp6KXNAPksoQjhlUG0jMENleWclM3skPjZselZkI2ZrNDJMOC1xZ1g4QlBFTjNRYyEp
bT14Z3MxRU9Pc0VHIyskOUAKellpcG0pRVkpa2I3VjMzNm9pPkMxMSg2bUEhejkpVFgkRkh+JFZ1
bSVJMGZiVFI4ZGQ5fExNbWN7cyU0JGc8NCtlClJFZjQ/ejAwMm92UERITGtWMW5sam8ha0hiCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjIucG5nIGIvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24yLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmQxMjY5MTRm
YjM5MjE5YTgzYTZkZTE0NzI4OWEzNjM3MDZmM2QyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3
NDIKemNtVjxDMHZZe0BQKTxoOzNLfExrMDAwZTFOSkxUcTAwMG1HMDAwbU8wc3NJMmtkYklNMDAw
MDFiNWNoXzBJdHApCno9PlB4JXBoLWtRUjRDNXshRWJOZUcjbWg2K3AoUUV4bT1Sd3VHaTUrWW5l
OExTUzJMakNFXnFDOFRlP3RMQSt1RAp6ZnJSJDk1KXo8RWx1YzlCRD1NUmBPU3wwVnZkY2Ztai00
T1JnTWFAMXlWMjszQUMmKUdUfGF4YGBvVX5BNUIpJG0KemQ9WjdxTWZ6ZVRafncmeVV3d0o8Znd6
OHJMbEpfVjhjdDgyIyZWbDFLTkxYe2hPeTZSO0pURHklMCFlQGN+fDlVCnpQdCh1OHpGdTdyckw5
RyV0TGBpdDJvSVAkS0BOOTNVeDxtQVBKNHNuREReX1BEPXZUa14+aWVaYUx6Q2poIVZ+YAp6aGNN
MXYxaSVtdEpkYT4hQlpyK2I4aSs9O3QpJnwkZ2ZqQnk+ZVprTztUfmNoSU5XaT1xOH4ydnFWRF5F
a3h0Z0YKek1sbD5kfDZ9dDtESnFvJjdQPyM4clFJJmlMfEdnIWtCVHpTJUlZRXJtWFcmJTFvWmtD
Si1uPVVgRVAkdzE5KFB1CnorQWdjJjI5aW4wSWFQYFEjSUJvNlZePmZEKX4oNXk+Rz5ET2hZRn5K
aURDaVU9Z1RTZ1FxZm9DcWVjM3ZhTUNGZQp6cWNpaGA+YEw1I2oxVXVFR2ZOMTdvJHRqWj84WEtW
QV9tY2BxVW9FPzVab0Q/PWpDbCN6TFBgTW51fjlxNnx8dkoKeitsWkx1MGpzakRtVm0rOE4tS2dD
MkhrUEF0dHY5ZWZ3MWtIT3J2Nk0tY2tVdFdfPFd+ZXw+PTBtMEFEeThyUD14CnojWHdaRk5ITEAz
UFdpREhKJG1vPj1vM09MTUhYUXxie3I/YzxSLWZjN2ZCJFpOaS1jbU5pQ2JFUjdPQWs+O2QqZQp6
dDlsMnkjRWZQYj9QJT5kal89PV9FN05MWGRMdyZsK1A+PiMkR0khfS1pfjA1Uj5NRiREZjlKT181
SXVSQ2NDfEIKelJyflJZRlRvNj4/Uk1MVktTN3s+ZURkd2xOMXEtbzU5NEBge194Vzs9Y2ByUVlt
NW1YeFBTbE5QO1g+SUp3Sn03CnpkbWQrUEV3OGdwc243cEBhaDlZcEokcmRSMF4qRFZBVjg0a0A2
WlhGMWAqK3ViQj9oK2QlND15Q2Y+KkV2aEhPMgpZS2RNfWVSNSl0SC1+YSNzMDcqcW9NNk48JGc0
YU17KUJwZWcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9x
dC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKaW5kZXggY2RhZmMzYzkxYWJlN2I5
YTg0ZGEzNWYxMDM4OTlkYWQzNDIzMWQzZi4uZmM0NmQ5ODVlYWUxMzc5MzYyNTI0ZmNjMjM2ZjYy
ODFkMzY3MmM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUv
dHN0X3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUv
dHN0X3F3ZWJmcmFtZS5jcHAKQEAgLTY2Miw2ICs2NjIsNyBAQCBwcml2YXRlIHNsb3RzOgogICAg
IHZvaWQgbG9hZEZpbmlzaGVkQWZ0ZXJOb3RGb3VuZEVycm9yKCk7CiAgICAgdm9pZCBsb2FkSW5T
aWduYWxIYW5kbGVyc19kYXRhKCk7CiAgICAgdm9pZCBsb2FkSW5TaWduYWxIYW5kbGVycygpOwor
ICAgIHZvaWQgZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKTsKIAogcHJpdmF0ZToKICAgICBR
U3RyaW5nICBldmFsSlMoY29uc3QgUVN0cmluZyZzKSB7CkBAIC03NDEsMTAgKzc0MiwxNCBAQCB0
c3RfUVdlYkZyYW1lOjp0c3RfUVdlYkZyYW1lKCkKICAgICA6IHNUcnVlKCJ0cnVlIiksIHNGYWxz
ZSgiZmFsc2UiKSwgc1VuZGVmaW5lZCgidW5kZWZpbmVkIiksIHNBcnJheSgiYXJyYXkiKSwgc0Z1
bmN0aW9uKCJmdW5jdGlvbiIpLCBzRXJyb3IoImVycm9yIiksCiAgICAgICAgIHNTdHJpbmcoInN0
cmluZyIpLCBzT2JqZWN0KCJvYmplY3QiKSwgc051bWJlcigibnVtYmVyIiksIG1faW5wdXRGaWVs
ZHNUZXN0VmlldygwKSwgbV9pbnB1dEZpZWxkVGVzdFBhaW50Q291bnQoMCkKIHsKKyAgICBRRGly
IGRpcjsKKyAgICBkaXIubWtwYXRoKHRtcERpclBhdGgoKSk7CisgICAgUVdlYlNldHRpbmdzOjpz
ZXRJY29uRGF0YWJhc2VQYXRoKHRtcERpclBhdGgoKSk7CiB9CiAKIHRzdF9RV2ViRnJhbWU6On50
c3RfUVdlYkZyYW1lKCkKIHsKKyAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyUGF0aCgpKTsKIH0K
IAogYm9vbCB0c3RfUVdlYkZyYW1lOjpldmVudEZpbHRlcihRT2JqZWN0KiB3YXRjaGVkLCBRRXZl
bnQqIGV2ZW50KQpAQCAtMzgwNCw1ICszODA5LDM2IEBAIHZvaWQgdHN0X1FXZWJGcmFtZTo6bG9h
ZEluU2lnbmFsSGFuZGxlcnMoKQogICAgIFFDT01QQVJFKGZyYW1lLT51cmwoKSwgdXJsRm9yU2V0
dGVyKTsKIH0KIAordm9pZCB0c3RfUVdlYkZyYW1lOjpkeW5hbWljYWxseUNoYW5naW5nRmF2aWNv
bigpCit7CisgICAgUVdlYkZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CisgICAg
Y29uc3QgUVNpemUgaWNvblNpemUoMTYsIDE2KTsKKworICAgIGZyYW1lLT5sb2FkKFFVcmwoInFy
YzovZmF2aWNvbi5odG1sIikpOworICAgIDo6d2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGlj
b25DaGFuZ2VkKCkpLCAxMDAwKTsKKworICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuaXNOdWxs
KCkpOworICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuYXZhaWxhYmxlU2l6ZXMoKS5pc0VtcHR5
KCkpOworCisgICAgUUltYWdlIG9sZEljb24gID0gZnJhbWUtPmljb24oKS5waXhtYXAoaWNvblNp
emUpLnRvSW1hZ2UoKTsKKyAgICBRSW1hZ2UgaW1hZ2UgPSBRSW1hZ2UoIjovZmF2aWNvbjEucG5n
IikuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsK
KworICAgIFFDT01QQVJFKG9sZEljb24sIGltYWdlKTsKKworICAgIFFTaWduYWxTcHkgaWNvbkNo
YW5nZWRTcHkoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSk7CisgICAgUVN0cmluZyBqcyA9
IFFMYXRpbjFTdHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYXZpY29uJykuc2V0QXR0
cmlidXRlKFwiaHJlZlwiLCBcImZhdmljb24yLnBuZ1wiKSIpOworICAgIGZyYW1lLT5ldmFsdWF0
ZUphdmFTY3JpcHQoanMpOworICAgIDo6d2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGljb25D
aGFuZ2VkKCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAx
KTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZKCFm
cmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNFbXB0eSgpKTsKKworICAgIFFJbWFnZSBu
ZXdJY29uID0gZnJhbWUtPmljb24oKS5waXhtYXAoaWNvblNpemUpLnRvSW1hZ2UoKTsKKyAgICBR
VkVSSUZZKG5ld0ljb24gIT0gb2xkSWNvbik7CisgICAgaW1hZ2UgPSBRSW1hZ2UoIjovZmF2aWNv
bjIucG5nIikuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X1JHQjMyKTsKKyAgICBRQ09N
UEFSRShuZXdJY29uLCBpbWFnZSk7CisKK30KKwogUVRFU1RfTUFJTih0c3RfUVdlYkZyYW1lKQog
I2luY2x1ZGUgInRzdF9xd2ViZnJhbWUubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYwppbmRleCAyYTdkMGI5YzI4MjVmZjg1MDVh
YTYxYWQ4NzUzZmM1NjFkNjIxZWNiLi5kZjQyNzY2ZDgxMTk3ZDEzNjdhZDE5YjVhYWMzMzQ0OTkx
NWJhMTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3Rf
cXdlYmZyYW1lLnFyYworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3Rf
cXdlYmZyYW1lLnFyYwpAQCAtMSwxMCArMSwxMyBAQAotPCFET0NUWVBFIFJDQz48UkNDIHZlcnNp
b249IjEuMCI+Ci08cXJlc291cmNlIHByZWZpeD0iLyI+Ci08ZmlsZSBhbGlhcz0iaW1hZ2UucG5n
Ij5yZXNvdXJjZXMvaW1hZ2UucG5nPC9maWxlPgotPGZpbGUgYWxpYXM9InN0eWxlLmNzcyI+cmVz
b3VyY2VzL3N0eWxlLmNzczwvZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0MS5odG1sIj5yZXNvdXJj
ZXMvdGVzdDEuaHRtbDwvZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0Mi5odG1sIj5yZXNvdXJjZXMv
dGVzdDIuaHRtbDwvZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1lLmh0bWwiPnJlc291cmNl
cy90ZXN0aWZyYW1lLmh0bWw8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdGlmcmFtZTIuaHRtbCI+
cmVzb3VyY2VzL3Rlc3RpZnJhbWUyLmh0bWw8L2ZpbGU+Ci08L3FyZXNvdXJjZT4KKzxSQ0M+Cisg
ICAgPHFyZXNvdXJjZSBwcmVmaXg9Ii8iPgorICAgICAgICA8ZmlsZSBhbGlhcz0iaW1hZ2UucG5n
Ij5yZXNvdXJjZXMvaW1hZ2UucG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0ic3R5bGUu
Y3NzIj5yZXNvdXJjZXMvc3R5bGUuY3NzPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVz
dDEuaHRtbCI+cmVzb3VyY2VzL3Rlc3QxLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFz
PSJ0ZXN0Mi5odG1sIj5yZXNvdXJjZXMvdGVzdDIuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUg
YWxpYXM9InRlc3RpZnJhbWUuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUuaHRtbDwvZmlsZT4K
KyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3RpZnJhbWUyLmh0bWwiPnJlc291cmNlcy90ZXN0aWZy
YW1lMi5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0iZmF2aWNvbjEucG5nIj5yZXNv
dXJjZXMvZmF2aWNvbjEucG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0iZmF2aWNvbjIu
cG5nIj5yZXNvdXJjZXMvZmF2aWNvbjIucG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0i
ZmF2aWNvbi5odG1sIj5yZXNvdXJjZXMvZmF2aWNvbi5odG1sPC9maWxlPgorICAgIDwvcXJlc291
cmNlPgogPC9SQ0M+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdl
L3RzdF9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9x
d2VicGFnZS5jcHAKaW5kZXggZTFmODVjODI0YjZhYTA3YTk5ZDViNjdkOGZhZTcxYjdiNDdkY2Yw
OC4uOTkzOTA4NjQ1ZWQ5NjFkZjI2YzZhNTVkM2Q3N2I5YTNlZTY5ZGRjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcApAQCAtNDUsMTcg
KzQ1LDYgQEAKICNpbmNsdWRlIDxxd2Vidmlldy5oPgogI2luY2x1ZGUgPHFpbWFnZXdyaXRlci5o
PgogCi1zdGF0aWMgdm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGlybmFtZSkK
LXsKLSAgICBRRGlyIGRpcihkaXJuYW1lKTsKLSAgICBRRmlsZUluZm9MaXN0IGVudHJpZXMoZGly
LmVudHJ5SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZpbGVzIHwgUURpcjo6Tm9Eb3RBbmRE
b3REb3QpKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGVudHJpZXMuY291bnQoKTsgKytpKQot
ICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcigpKQotICAgICAgICAgICAgcmVtb3ZlUmVjdXJz
aXZlKGVudHJpZXNbaV0uZmlsZVBhdGgoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRp
ci5yZW1vdmUoZW50cmllc1tpXS5maWxlTmFtZSgpKTsKLSAgICBRRGlyKCkucm1kaXIoZGlybmFt
ZSk7Ci19CiAKIGNsYXNzIEV2ZW50U3B5IDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBRTGlzdDxR
RXZlbnQ6OlR5cGU+CiB7CkBAIC0xNjcsMTIgKzE1Niw2IEBAIHByaXZhdGUgc2xvdHM6CiBwcml2
YXRlOgogICAgIFFXZWJWaWV3KiBtX3ZpZXc7CiAgICAgUVdlYlBhZ2UqIG1fcGFnZTsKLSAgICBR
U3RyaW5nIHRtcERpclBhdGgoKSBjb25zdAotICAgIHsKLSAgICAgICAgc3RhdGljIFFTdHJpbmcg
dG1wZCA9IFFEaXI6OnRlbXBQYXRoKCkgKyAiL3RzdF9xd2VicGFnZS0iCi0gICAgICAgICAgICAr
IFFEYXRlVGltZTo6Y3VycmVudERhdGVUaW1lKCkudG9TdHJpbmcoUUxhdGluMVN0cmluZygieXl5
eU1NZGRoaG1tc3MiKSk7Ci0gICAgICAgIHJldHVybiB0bXBkOwotICAgIH0KIH07CiAKIHRzdF9R
V2ViUGFnZTo6dHN0X1FXZWJQYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvdXRpbC5oIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKaW5kZXggYzYxYmM2Yjg5
OTY1N2MzMzM3M2I3NWE4MzQ2NzBkZjFmNWEwNGMxYi4uOGFkMWVlMjA1MWJkYzk2OGVjNTI3ODU1
MjgwMTJiZDkyNTgwYjhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGls
LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKQEAgLTE4LDYgKzE4LDggQEAK
ICovCiAvLyBGdW5jdGlvbnMgYW5kIG1hY3JvcyB0aGF0IHJlYWxseSBuZWVkIHRvIGJlIGluIFFU
ZXN0TGliCiAKKyNpbmNsdWRlIDxRRGF0ZVRpbWU+CisjaW5jbHVkZSA8UURpcj4KICNpbmNsdWRl
IDxRRXZlbnRMb29wPgogI2luY2x1ZGUgPFFTaWduYWxTcHk+CiAjaW5jbHVkZSA8UVRpbWVyPgpA
QCAtNzYsMyArNzgsMzEgQEAgc3RhdGljIGJvb2wgd2FpdEZvclNpZ25hbChRT2JqZWN0KiBvYmos
IGNvbnN0IGNoYXIqIHNpZ25hbCwgaW50IHRpbWVvdXQgPSAxMDAwMCkKICAgICAgICAgfSBcCiAg
ICAgICAgIFFDT01QQVJFKF9fZXhwciwgX19leHBlY3RlZCk7IFwKICAgICB9IHdoaWxlKDApCisK
Ky8qKgorICogUmV0dXJucyBhIHRlbXBvcmFyeSBwYXRoIHRoYXQgY2FuIGJlIHVzZWQgdGhyb3Vn
aG91dCB0aGUgbGlmZXRpbWUgb2YgdGhlIHRlc3QuCisgKiBUaGlzIGNhbiBiZSB1c2VkIGZvciBs
b2NhbCBzdG9yYWdlIHRlc3RpbmcgbmVlZHMuCisgKi8KKworc3RhdGljIFFTdHJpbmcgdG1wRGly
UGF0aCgpCit7CisgICAgc3RhdGljIFFTdHJpbmcgdG1wZCA9IFFEaXI6OnRlbXBQYXRoKCkgKyBR
TGF0aW4xU3RyaW5nKCIvdHN0X3F3ZWJmcmFtZS0iKQorICAgICAgICArIFFEYXRlVGltZTo6Y3Vy
cmVudERhdGVUaW1lKCkudG9TdHJpbmcoUUxhdGluMVN0cmluZygieXl5eU1NZGRoaG1tc3MiKSk7
CisgICAgcmV0dXJuIHRtcGQ7Cit9CisKKy8qKgorICogVXNlZCB0byByZW1vdmUgdGVtcG9yYXJ5
IGxvY2FsIHN0b3JhZ2UgZGlyZWN0b3J5CisgKi8KKworc3RhdGljIHZvaWQgcmVtb3ZlUmVjdXJz
aXZlKGNvbnN0IFFTdHJpbmcmIGRpcm5hbWUpCit7CisgICAgUURpciBkaXIoZGlybmFtZSk7Cisg
ICAgUUZpbGVJbmZvTGlzdCBlbnRyaWVzKGRpci5lbnRyeUluZm9MaXN0KFFEaXI6OkRpcnMgfCBR
RGlyOjpGaWxlcyB8IFFEaXI6Ok5vRG90QW5kRG90RG90KSk7CisgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBlbnRyaWVzLmNvdW50KCk7ICsraSkKKyAgICAgICAgaWYgKGVudHJpZXMuYXQoaSkuaXNE
aXIoKSkKKyAgICAgICAgICAgIHJlbW92ZVJlY3Vyc2l2ZShlbnRyaWVzLmF0KGkpLmZpbGVQYXRo
KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkaXIucmVtb3ZlKGVudHJpZXMuYXQoaSku
ZmlsZU5hbWUoKSk7CisgICAgUURpcigpLnJtZGlyKGRpcm5hbWUpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103496</attachid>
            <date>2011-08-10 08:33:18 -0700</date>
            <delta_ts>2011-08-11 04:02:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20110810173316.patch</filename>
            <type>text/plain</type>
            <size>19891</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKaW5kZXggMmJkMjM3ZjFjMjgzMGYxNDFkNzNkZGM0ODg2YjhhYjVhOTliY2Nj
NS4uYjA0ODEzNTNjMTEzMDk5ZTlmOTk4MjE4ZTQzMTcyMmUzZTc0NTUxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTIwOCw2ICsyMDgsOCBAQCB2b2lk
IFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQoKQogICAgIEluIG9yZGVy
IGZvciBpY29ucyB0byBiZSBsb2FkZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0
YWJhc2UgcGF0aAogICAgIHVzaW5nIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgp
LgogCisgICAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNv
biBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6
c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApp
bmRleCBhMGEyZjNlOWQxNGQyYTUzM2ZlM2ZlOWQxY2FhYzhjYmU5YTEyNmFhLi5hNTYyMDIyNzdh
ZDViYTEzNWIxYzRkMGI3MjM3YzBjNzA3OWRkMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFt
ZS5jcHAKQEAgLTE2NzMsNyArMTY3MywxMCBAQCBRV2ViRnJhbWUqIFFXZWJGcmFtZVByaXZhdGU6
OmtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQogICBUaGlzIHNpZ25hbCBpcyBl
bWl0dGVkIHdoZW4gdGhlIGljb24gKCJmYXZpY29uIikgYXNzb2NpYXRlZCB3aXRoIHRoZSBmcmFt
ZQogICBoYXMgYmVlbiBsb2FkZWQuCiAKLSAgXHNhIGljb24oKQorICBcbm90ZSBUaGlzIHNpZ25h
bCB3aWxsIG5vdCBiZSBlbWl0dGVkIGlmIHRoZSBpY29uIGRhdGFiYXNlIGlzIGRpc2FibGVkCisg
IChzZWUgXGx7UVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKCl9e3NldEljb25EYXRh
YmFzZVBhdGgoKX0pLgorCisgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFi
YXNlUGF0aCgpCiAqLwogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAppbmRleCA3NmI5
MjdiYWNlMjNkOGRlZTkwOTJkMjQ0ODUzMzMxZDJjOGJiMjQ0Li5mYjIzMmJkYmIwYjgzM2VkNDI5
NWU5YTQwMzRhNjExZGZhMWYyYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCkBAIC0x
MjAxLDYgKzEyMDEsOCBAQCB2b2lkIFFXZWJWaWV3OjpjaGFuZ2VFdmVudChRRXZlbnQgKmUpCiAg
ICAgSW4gb3JkZXIgZm9yIGljb25zIHRvIGJlIGxvYWRlZCwgeW91IHdpbGwgbmVlZCB0byBzZXQg
YW4gaWNvbiBkYXRhYmFzZSBwYXRoCiAgICAgdXNpbmcgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0
YWJhc2VQYXRoKCkuCiAKKyAgICBcbm90ZSBUaGlzIHNpZ25hbCB3aWxsIG5vdCBiZSBlbWl0dGVk
IGlmIHRoZSBpY29uIGRhdGFiYXNlIGlzIGRpc2FibGVkLgorCiAgICAgXHNhIGljb24oKSwgUVdl
YlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKCkKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
YzYwZTBhOGQ0NjRjMDQ1NGEwMWI5NjQ0MTgyMWEyZDY0ZTRmMDE3ZS4uODYxMmUxZjZlM2UyYThi
MWY0MWQyNGZlNTc3NTA0OTRiYTkxYTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBA
QAorMjAxMS0wOC0xMCAgUGllcnJlIFJvc3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbUXRdIEZhdmljb25zIGNhbid0IGJlIGNoYW5nZWQgZHluYW1pY2FsbHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIzNworCisgICAg
ICAgIFRoZSBvbmx5IG1pc3NpbmcgcGllY2Ugd2FzIGFjdHVhbGx5IHJlbG9hZGluZyB0aGUgaWNv
bgorICAgICAgICB3aGVuIGl0cyBsaW5rIGVsZW1lbnQgY2hhbmdlcyBpbiB0aGUgRE9NLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3FncmFw
aGljc3dlYnZpZXcuY3BwOiBBZGQgYSBub3RlIGFib3V0CisgICAgICAgIHRoZSBjb25kaXRpb25z
IHdoZW4gdGhlIHNpZ25hbCB3b24ndCBiZSBlbWl0dGVkCisgICAgICAgICogQXBpL3F3ZWJmcmFt
ZS5jcHA6IERpdHRvLgorICAgICAgICAqIEFwaS9xd2Vidmlldy5jcHA6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyk6CisgICAg
ICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5j
cHA6CisgICAgICAgIEZpeHVwIHRvIHVzZSB0aGUgY29tbW9uIHRlc3QgZnVuY3Rpb25zLgorICAg
ICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmNsZWFudXBUZXN0Q2FzZSk6CisgICAgICAg
ICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6YmFzaWNQcm9wZXJ0aWVzKToKKyAgICAgICAgKHRz
dF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpoaXN0b3J5TmF2KToKKyAgICAgICAgKHRzdF9RRGVjbGFy
YXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IpOgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS9yZXNv
dXJjZXMvZmF2aWNvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvcmVz
b3VyY2VzL2Zhdmljb24xLnBuZzogQWRkZWQuCisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3Jl
c291cmNlcy9mYXZpY29uMi5wbmc6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90
c3RfcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHRzdF9RV2ViRnJhbWU6OnRzdF9RV2ViRnJhbWUp
OgorICAgICAgICAodHN0X1FXZWJGcmFtZTo6fnRzdF9RV2ViRnJhbWUpOgorICAgICAgICAodHN0
X1FXZWJGcmFtZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24pOgorICAgICAgICAqIHRlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYzoKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAqIHRlc3RzL3Rlc3RzLnByaToKKyAgICAgICAgKiB0
ZXN0cy91dGlsLmNwcDogQWRkZWQuCisgICAgICAgIG1vdmVkIGxvY2FsIHN0b3JhZ2UgcmVsYXRl
ZCBmdW5jdGlvbnMgb3ZlciBmcm9tCisgICAgICAgIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFn
ZS5jcHAKKyAgICAgICAgKHdhaXRGb3JTaWduYWwpOgorICAgICAgICAodG1wRGlyUGF0aCk6Cisg
ICAgICAgIChyZW1vdmVSZWN1cnNpdmUpOgorICAgICAgICAqIHRlc3RzL3V0aWwuaDoKKwogMjAx
MS0wOC0wNSAgRGF3aXQgQWxlbWF5ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDU4ZDc2Y2Y0YjlmNzFk
NWNmMTMzMjlkY2QyZjYwNjI4MDhlYTZiMDAuLmIwZGQyODQ1Nzk0M2QxOTBhMWI3ODU4ZjUxMWRj
YjBjY2VlMjUxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNDY3LDE0ICs0NjcsMTQgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdX
aXRoRGlyZWN0aW9uJiB0aXQKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERp
ZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQogeworICAgIEFTU0VSVChtX2ZyYW1lKTsK
ICAgICBpZiAoZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzKQogICAgICAgICBwcmludGYoIiVzIC0g
ZGlkQ2hhbmdlSWNvbnNcbiIsIHFQcmludGFibGUoZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQobV9mcmFtZSkpKTsKIAogICAgIGlmICghbV93ZWJGcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gRklYTUU6IEluIG9yZGVyIHRvIGdldCBub3RpZmllZCBvZiBpY29uIFVS
TFMnIGNoYW5nZXMsIGFkZCBhIG5vdGlmaWNhdGlvbi4KLSAgICAvLyBlbWl0IGljb25zQ2hhbmdl
ZCgpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnN0YXJ0TG9hZGVyKCk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3
L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRl
Y2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKaW5kZXggNDc5ZWNh
ZWVkNDQ1YmVjOGVjNGFkOGI5MGZkYjcwOTc5ZWEwNDg3OS4uNzQ2ZmE4ZTAwMzNjZDA5NGY1NTgz
MWQyODRhNDdhMjhlYjEyMTYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9x
ZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdl
YnZpZXcuY3BwCkBAIC01MCwxMiArNTAsNiBAQCBwcml2YXRlIHNsb3RzOgogCiBwcml2YXRlOgog
ICAgIHZvaWQgY2hlY2tOb0Vycm9ycyhjb25zdCBRRGVjbGFyYXRpdmVDb21wb25lbnQmKTsKLSAg
ICBRU3RyaW5nIHRtcERpcigpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0aWMgUVN0cmluZyB0
bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXctIgotICAg
ICAgICAgICAgKyBRRGF0ZVRpbWU6OmN1cnJlbnREYXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFT
dHJpbmcoInl5eXlNTWRkaGhtbXNzIikpOwotICAgICAgICByZXR1cm4gdG1wZDsKLSAgICB9CiB9
OwogCiB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6dHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXcoKQpA
QCAtNzYsMjEgKzcwLDkgQEAgc3RhdGljIFFTdHJpbmcgZmlsZUNvbnRlbnRzKGNvbnN0IFFTdHJp
bmcmIGZpbGVuYW1lKQogICAgIHJldHVybiBRU3RyaW5nOjpmcm9tVXRmOChmaWxlLnJlYWRBbGwo
KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3RyaW5nJiBkaXJu
YW1lKQotewotICAgIFFEaXIgZGlyKGRpcm5hbWUpOwotICAgIFFGaWxlSW5mb0xpc3QgZW50cmll
cyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMgfCBRRGlyOjpOb0Rv
dEFuZERvdERvdCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllcy5jb3VudCgpOyAr
K2kpCi0gICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyKCkpCi0gICAgICAgICAgICByZW1vdmVS
ZWN1cnNpdmUoZW50cmllc1tpXS5maWxlUGF0aCgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGlyLnJlbW92ZShlbnRyaWVzW2ldLmZpbGVOYW1lKCkpOwotICAgIFFEaXIoKS5ybWRpcihk
aXJuYW1lKTsKLX0KLQogdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6Y2xlYW51cFRlc3RD
YXNlKCkKIHsKLSAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyKCkpOworICAgIHJlbW92ZVJlY3Vy
c2l2ZSh0bXBEaXJQYXRoKCkpOwogfQogCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpi
YXNpY1Byb3BlcnRpZXMoKQpAQCAtOTgsNyArODAsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVX
ZWJWaWV3OjpiYXNpY1Byb3BlcnRpZXMoKQogICAgIFFEZWNsYXJhdGl2ZUVuZ2luZSBlbmdpbmU7
CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5lLCBRVXJsKCJxcmM6
Ly8vcmVzb3VyY2VzL2Jhc2ljLnFtbCIpKTsKICAgICBjaGVja05vRXJyb3JzKGNvbXBvbmVudCk7
Ci0gICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXIoKSk7Cisg
ICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXJQYXRoKCkpOwog
CiAgICAgUU9iamVjdCogd3YgPSBjb21wb25lbnQuY3JlYXRlKCk7CiAgICAgUVZFUklGWSh3dik7
CkBAIC0xNjQsNyArMTQ2LDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aGlzdG9y
eU5hdigpCiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVD
b21wb25lbnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvYmFzaWMu
cW1sIikpOwogICAgIGNoZWNrTm9FcnJvcnMoY29tcG9uZW50KTsKLSAgICBRV2ViU2V0dGluZ3M6
OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpcigpKTsKKyAgICBRV2ViU2V0dGluZ3M6OmVu
YWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpclBhdGgoKSk7CiAKICAgICBRT2JqZWN0KiB3diA9
IGNvbXBvbmVudC5jcmVhdGUoKTsKICAgICBRVkVSSUZZKHd2KTsKQEAgLTI1NSw3ICsyMzcsNyBA
QCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IoKQogICAgIFFEZWNsYXJh
dGl2ZUVuZ2luZSBlbmdpbmU7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgm
ZW5naW5lLCBRVXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2xvYWRFcnJvci5xbWwiKSk7CiAgICAgY2hl
Y2tOb0Vycm9ycyhjb21wb25lbnQpOwotICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVu
dFN0b3JhZ2UodG1wRGlyKCkpOworICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0
b3JhZ2UodG1wRGlyUGF0aCgpKTsKIAogICAgIFFPYmplY3QqIHd2ID0gY29tcG9uZW50LmNyZWF0
ZSgpOwogICAgIFFWRVJJRlkod3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM0ZWQyMWI2
ODg2ZTUzNjRlOGJmYTZlY2YzZjY5ZjY5ZGUwODVmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKQEAgLTAs
MCArMSw1IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgaWQ9ImZhdmljb24iIHJlbD0ic2hvcnRj
dXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJmYXZpY29uMS5wbmciLz4KKzwvc2NyaXB0
PgorPC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEucG5nIGIvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24xLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDYyNzUyYTUzYmFlYjA1ZDlhOThmOGFlMjNmYTgwN2U3Y2VlZTRhCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCA4OTEKemNtVi0+MUJDcEVQKTxoOzNLfExrMDAwZTFOSkxUcTAwMG1HMDAwbU8xXkBz
NkFNXmlWMDAwMDFiNWNoXzBJdHApCno9PlB4JkhBekg0UjUodXMhT2MkO1g4XiRBLX19eHhHZHIq
ITQ3LWJoVkokNCFxUkBidkcpO14jezArU3IpQVopVwp6RyhHZVdENXN1IylrRHZ7bjt6UVEjJn5O
SlFkNXl1NW4rTGFtMVRFWGM2WXcjb2ojOE1fK293aXV7LU5ORyNyeUcKejM8KlhOY0ZyVWQyQnFw
SCN0U2EzKF9eJCFuNU5CMXFqfVA4b2pyYTI7PkJhKihLbGFqM19Hb0ZeRTE7VkxTYzxMCnozYFBO
XllNSnM+blU2bk47cmZrYkNNeStgV3IxWi11MnVfMmptRThLenheVlZBPj89WT1efDA7UT1YfWpk
UERNVgp6ZnRsSm9pfWdCfHZNM1leU2hrSEhNVEJYQnBUIWk1RT5ZP35HXlY4N3M0Z3VyVU13TW5q
Y3IqSi0zb0phMyhRUS0KekFmLVlZbEFMV0w1Z1o7SShBYSYwUDk+bzxrc19CenN4aWpoM1dtXj5p
YmRqN2xaRytQNHtjaUFiMVl8XkxWa2pCCnpXczNRYXRgVXQ9QkNrKXJ5bnIkczJnNlotTERpazIq
WTVEe1Y0dDFGNW41KiRYfnhhZlBxfXlKNCMldylQaztYZAp6S2hCNz5MKV9kKE5tRyE5RFgoQG1O
JjVrX149cjgwREA7c0NqdEA/Tmd1VDY4e2AmSkRFPEJHKURUZypQTExHdUUKenBeVGhFQ15WQ2s2
JkJhKHRTO1lSYHxVMlR8OSMxTCE2RVNzMD8qXn4rc2t4MVUwVTU5UWZkWiVPcHQxJVpEIT02Cnpn
blo1ZG9lJX4taSpxJVVIYyZ4fEIqVCZ4YkYoJHBAN15XeWBpTUJna3w2eUgjRG58eXZqPDsmTm9F
LVF5fThOQwp6QF4jOVM2PlFya08lanFNTElePCsjYEZnUmE8KW19ZEhucUFHdjAxKnFrNnBfYWhn
JWU9Tk5oO2YqPkh2R0wofFUKemlEdXtoSkckTC1mKj5Gam5seX5LeHc9WGtNYFdwaUY8WUQ4WG5y
YFJTamU7QUppdF5JWnJMVTAqbGZNdFZtS08rCno3WT16bDQ+M3EoKChaUj9vfTRsMF4teiZNcip+
JVleMW9Ma055Y2ZuaHVkbWwrWkwmWU9QOG15bH1SditOVGtMeAp6O1BrQWB6YHNFMjFmfFJoeGsz
QHN2PkNVQFhtJmNwbldvPCNhTVdyZGdhOSVlUTt8ZlB0fmEzSD5sNjB8bDxoTGMKeilzQD5LKEI4
ZVBtIzBDZXlnJTN7JD42bHpWZCNmazQyTDgtcWdYOEJQRU4zUWMhKW09eGdzMUVPT3NFRyMrJDlA
CnpZaXBtKUVZKWtiN1YzMzZvaT5DMTEoNm1BIXo5KVRYJEZIfiRWdW0lSTBmYlRSOGRkOXxMTW1j
e3MlNCRnPDQrZQpSRWY0P3owMDJvdlBESExrVjFubGpvIWtIYgoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3Vy
Y2VzL2Zhdmljb24yLnBuZyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291
cmNlcy9mYXZpY29uMi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZkMTI2OTE0ZmIzOTIxOWE4M2E2ZGUxNDcy
ODlhMzYzNzA2ZjNkMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzQyCnpjbVY8QzB2WXtAUCk8
aDszS3xMazAwMGUxTkpMVHEwMDBtRzAwMG1PMHNzSTJrZGJJTTAwMDAxYjVjaF8wSXRwKQp6PT5Q
eCVwaC1rUVI0QzV7IUViTmVHI21oNitwKFFFeG09Und1R2k1K1luZThMU1MyTGpDRV5xQzhUZT90
TEErdUQKemZyUiQ5NSl6PEVsdWM5QkQ9TVJgT1N8MFZ2ZGNmbWotNE9SZ01hQDF5VjI7M0FDJilH
VHxheGBgb1V+QTVCKSRtCnpkPVo3cU1memVUWn53JnlVd3dKPGZ3ejhyTGxKX1Y4Y3Q4MiMmVmwx
S05MWHtoT3k2UjtKVER5JTAhZUBjfnw5VQp6UHQodTh6RnU3cnJMOUcldExgaXQyb0lQJEtATjkz
VXg8bUFQSjRzbkREXl9QRD12VGtePmllWmFMekNqaCFWfmAKemhjTTF2MWklbXRKZGE+IUJaciti
OGkrPTt0KSZ8JGdmakJ5PmVaa087VH5jaElOV2k9cTh+MnZxVkReRWt4dGdGCnpNbGw+ZHw2fXQ7
REpxbyY3UD8jOHJRSSZpTHxHZyFrQlR6UyVJWUVybVhXJiUxb1prQ0otbj1VYEVQJHcxOShQdQp6
K0FnYyYyOWluMElhUGBRI0lCbzZWXj5mRCl+KDV5Pkc+RE9oWUZ+SmlEQ2lVPWdUU2dRcWZvQ3Fl
YzN2YU1DRmUKenFjaWhgPmBMNSNqMVV1RUdmTjE3byR0alo/OFhLVkFfbWNgcVVvRT81Wm9EPz1q
Q2wjekxQYE1udX45cTZ8fHZKCnorbFpMdTBqc2pEbVZtKzhOLUtnQzJIa1BBdHR2OWVmdzFrSE9y
djZNLWNrVXRXXzxXfmV8Pj0wbTBBRHk4clA9eAp6I1h3WkZOSExAM1BXaURISiRtbz49bzNPTE1I
WFF8YntyP2M8Ui1mYzdmQiRaTmktY21OaUNiRVI3T0FrPjtkKmUKenQ5bDJ5I0VmUGI/UCU+ZGpf
PT1fRTdOTFhkTHcmbCtQPj4jJEdJIX0taX4wNVI+TUYkRGY5Sk9fNUl1UkNjQ3xCCnpScn5SWUZU
bzY+P1JNTFZLUzd7PmVEZHdsTjFxLW81OTRAYHtfeFc7PWNgclFZbTVtWHhQU2xOUDtYPklKd0p9
Nwp6ZG1kK1BFdzhncHNuN3BAYWg5WXBKJHJkUjBeKkRWQVY4NGtANlpYRjFgKit1YkI/aCtkJTQ9
eUNmPipFdmhITzIKWUtkTX1lUjUpdEgtfmEjczA3KnFvTTZOPCRnNGFNeylCcGVnCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJm
cmFtZS90c3RfcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IGNkYWZjM2M5MWFiZTdiOWE4NGRhMzVmMTAzODk5ZGFk
MzQyMzFkM2YuLmZjNDZkOTg1ZWFlMTM3OTM2MjUyNGZjYzIzNmY2MjgxZDM2NzJjNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3Bw
CkBAIC02NjIsNiArNjYyLDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGxvYWRGaW5pc2hl
ZEFmdGVyTm90Rm91bmRFcnJvcigpOwogICAgIHZvaWQgbG9hZEluU2lnbmFsSGFuZGxlcnNfZGF0
YSgpOwogICAgIHZvaWQgbG9hZEluU2lnbmFsSGFuZGxlcnMoKTsKKyAgICB2b2lkIGR5bmFtaWNh
bGx5Q2hhbmdpbmdGYXZpY29uKCk7CiAKIHByaXZhdGU6CiAgICAgUVN0cmluZyAgZXZhbEpTKGNv
bnN0IFFTdHJpbmcmcykgewpAQCAtNzQxLDEwICs3NDIsMTQgQEAgdHN0X1FXZWJGcmFtZTo6dHN0
X1FXZWJGcmFtZSgpCiAgICAgOiBzVHJ1ZSgidHJ1ZSIpLCBzRmFsc2UoImZhbHNlIiksIHNVbmRl
ZmluZWQoInVuZGVmaW5lZCIpLCBzQXJyYXkoImFycmF5IiksIHNGdW5jdGlvbigiZnVuY3Rpb24i
KSwgc0Vycm9yKCJlcnJvciIpLAogICAgICAgICBzU3RyaW5nKCJzdHJpbmciKSwgc09iamVjdCgi
b2JqZWN0IiksIHNOdW1iZXIoIm51bWJlciIpLCBtX2lucHV0RmllbGRzVGVzdFZpZXcoMCksIG1f
aW5wdXRGaWVsZFRlc3RQYWludENvdW50KDApCiB7CisgICAgUURpciBkaXI7CisgICAgZGlyLm1r
cGF0aCh0bXBEaXJQYXRoKCkpOworICAgIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0
aCh0bXBEaXJQYXRoKCkpOwogfQogCiB0c3RfUVdlYkZyYW1lOjp+dHN0X1FXZWJGcmFtZSgpCiB7
CisgICAgcmVtb3ZlUmVjdXJzaXZlKHRtcERpclBhdGgoKSk7CiB9CiAKIGJvb2wgdHN0X1FXZWJG
cmFtZTo6ZXZlbnRGaWx0ZXIoUU9iamVjdCogd2F0Y2hlZCwgUUV2ZW50KiBldmVudCkKQEAgLTM4
MDQsNSArMzgwOSwzNiBAQCB2b2lkIHRzdF9RV2ViRnJhbWU6OmxvYWRJblNpZ25hbEhhbmRsZXJz
KCkKICAgICBRQ09NUEFSRShmcmFtZS0+dXJsKCksIHVybEZvclNldHRlcik7CiB9CiAKK3ZvaWQg
dHN0X1FXZWJGcmFtZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKQoreworICAgIFFXZWJG
cmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOworICAgIGNvbnN0IFFTaXplIGljb25T
aXplKDE2LCAxNik7CisKKyAgICBmcmFtZS0+bG9hZChRVXJsKCJxcmM6L2Zhdmljb24uaHRtbCIp
KTsKKyAgICA6OndhaXRGb3JTaWduYWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAw
MCk7CisKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZ
KCFmcmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNFbXB0eSgpKTsKKworICAgIFFJbWFn
ZSBvbGRJY29uICA9IGZyYW1lLT5pY29uKCkucGl4bWFwKGljb25TaXplKS50b0ltYWdlKCk7Cisg
ICAgUUltYWdlIGltYWdlID0gUUltYWdlKCI6L2Zhdmljb24xLnBuZyIpLmNvbnZlcnRUb0Zvcm1h
dChRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZCk7CisKKyAgICBRQ09NUEFSRShv
bGRJY29uLCBpbWFnZSk7CisKKyAgICBRU2lnbmFsU3B5IGljb25DaGFuZ2VkU3B5KGZyYW1lLCBT
SUdOQUwoaWNvbkNoYW5nZWQoKSkpOworICAgIFFTdHJpbmcganMgPSBRTGF0aW4xU3RyaW5nKCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmF2aWNvbicpLnNldEF0dHJpYnV0ZShcImhyZWZcIiwg
XCJmYXZpY29uMi5wbmdcIikiKTsKKyAgICBmcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KGpzKTsK
KyAgICA6OndhaXRGb3JTaWduYWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7
CisgICAgUUNPTVBBUkUoaWNvbkNoYW5nZWRTcHkuY291bnQoKSwgMSk7CisgICAgUVZFUklGWSgh
ZnJhbWUtPmljb24oKS5pc051bGwoKSk7CisgICAgUVZFUklGWSghZnJhbWUtPmljb24oKS5hdmFp
bGFibGVTaXplcygpLmlzRW1wdHkoKSk7CisKKyAgICBRSW1hZ2UgbmV3SWNvbiA9IGZyYW1lLT5p
Y29uKCkucGl4bWFwKGljb25TaXplKS50b0ltYWdlKCk7CisgICAgUVZFUklGWShuZXdJY29uICE9
IG9sZEljb24pOworICAgIGltYWdlID0gUUltYWdlKCI6L2Zhdmljb24yLnBuZyIpLmNvbnZlcnRU
b0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9SR0IzMik7CisgICAgUUNPTVBBUkUobmV3SWNvbiwgaW1h
Z2UpOworCit9CisKIFFURVNUX01BSU4odHN0X1FXZWJGcmFtZSkKICNpbmNsdWRlICJ0c3RfcXdl
YmZyYW1lLm1vYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUucXJjIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0
X3F3ZWJmcmFtZS5xcmMKaW5kZXggMmE3ZDBiOWMyODI1ZmY4NTA1YWE2MWFkODc1M2ZjNTYxZDYy
MWVjYi4uZGY0Mjc2NmQ4MTE5N2QxMzY3YWQxOWI1YWFjMzM0NDk5MTViYTE1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMKKysr
IGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMKQEAg
LTEsMTAgKzEsMTMgQEAKLTwhRE9DVFlQRSBSQ0M+PFJDQyB2ZXJzaW9uPSIxLjAiPgotPHFyZXNv
dXJjZSBwcmVmaXg9Ii8iPgotPGZpbGUgYWxpYXM9ImltYWdlLnBuZyI+cmVzb3VyY2VzL2ltYWdl
LnBuZzwvZmlsZT4KLTxmaWxlIGFsaWFzPSJzdHlsZS5jc3MiPnJlc291cmNlcy9zdHlsZS5jc3M8
L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdDEuaHRtbCI+cmVzb3VyY2VzL3Rlc3QxLmh0bWw8L2Zp
bGU+Ci08ZmlsZSBhbGlhcz0idGVzdDIuaHRtbCI+cmVzb3VyY2VzL3Rlc3QyLmh0bWw8L2ZpbGU+
Ci08ZmlsZSBhbGlhcz0idGVzdGlmcmFtZS5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZS5odG1s
PC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3RpZnJhbWUyLmh0bWwiPnJlc291cmNlcy90ZXN0aWZy
YW1lMi5odG1sPC9maWxlPgotPC9xcmVzb3VyY2U+Cis8UkNDPgorICAgIDxxcmVzb3VyY2UgcHJl
Zml4PSIvIj4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImltYWdlLnBuZyI+cmVzb3VyY2VzL2ltYWdl
LnBuZzwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InN0eWxlLmNzcyI+cmVzb3VyY2VzL3N0
eWxlLmNzczwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3QxLmh0bWwiPnJlc291cmNl
cy90ZXN0MS5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdDIuaHRtbCI+cmVz
b3VyY2VzL3Rlc3QyLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1l
Lmh0bWwiPnJlc291cmNlcy90ZXN0aWZyYW1lLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFs
aWFzPSJ0ZXN0aWZyYW1lMi5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZTIuaHRtbDwvZmlsZT4K
KyAgICAgICAgPGZpbGUgYWxpYXM9ImZhdmljb24xLnBuZyI+cmVzb3VyY2VzL2Zhdmljb24xLnBu
ZzwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImZhdmljb24yLnBuZyI+cmVzb3VyY2VzL2Zh
dmljb24yLnBuZzwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImZhdmljb24uaHRtbCI+cmVz
b3VyY2VzL2Zhdmljb24uaHRtbDwvZmlsZT4KKyAgICA8L3FyZXNvdXJjZT4KIDwvUkNDPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4
IGUxZjg1YzgyNGI2YWEwN2E5OWQ1YjY3ZDhmYWU3MWI3YjQ3ZGNmMDguLjk5MzkwODY0NWVkOTYx
ZGYyNmM2YTU1ZDNkNzdiOWEzZWU2OWRkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKQEAgLTQ1LDE3ICs0NSw2IEBACiAjaW5jbHVk
ZSA8cXdlYnZpZXcuaD4KICNpbmNsdWRlIDxxaW1hZ2V3cml0ZXIuaD4KIAotc3RhdGljIHZvaWQg
cmVtb3ZlUmVjdXJzaXZlKGNvbnN0IFFTdHJpbmcmIGRpcm5hbWUpCi17Ci0gICAgUURpciBkaXIo
ZGlybmFtZSk7Ci0gICAgUUZpbGVJbmZvTGlzdCBlbnRyaWVzKGRpci5lbnRyeUluZm9MaXN0KFFE
aXI6OkRpcnMgfCBRRGlyOjpGaWxlcyB8IFFEaXI6Ok5vRG90QW5kRG90RG90KSk7Ci0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBlbnRyaWVzLmNvdW50KCk7ICsraSkKLSAgICAgICAgaWYgKGVudHJp
ZXNbaV0uaXNEaXIoKSkKLSAgICAgICAgICAgIHJlbW92ZVJlY3Vyc2l2ZShlbnRyaWVzW2ldLmZp
bGVQYXRoKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaXIucmVtb3ZlKGVudHJpZXNb
aV0uZmlsZU5hbWUoKSk7Ci0gICAgUURpcigpLnJtZGlyKGRpcm5hbWUpOwotfQogCiBjbGFzcyBF
dmVudFNweSA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUUxpc3Q8UUV2ZW50OjpUeXBlPgogewpA
QCAtMTY3LDEyICsxNTYsNiBAQCBwcml2YXRlIHNsb3RzOgogcHJpdmF0ZToKICAgICBRV2ViVmll
dyogbV92aWV3OwogICAgIFFXZWJQYWdlKiBtX3BhZ2U7Ci0gICAgUVN0cmluZyB0bXBEaXJQYXRo
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBRU3RyaW5nIHRtcGQgPSBRRGlyOjp0ZW1w
UGF0aCgpICsgIi90c3RfcXdlYnBhZ2UtIgotICAgICAgICAgICAgKyBRRGF0ZVRpbWU6OmN1cnJl
bnREYXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFTdHJpbmcoInl5eXlNTWRkaGhtbXNzIikpOwot
ICAgICAgICByZXR1cm4gdG1wZDsKLSAgICB9CiB9OwogCiB0c3RfUVdlYlBhZ2U6OnRzdF9RV2Vi
UGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnByaSBiL1Nv
dXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCmluZGV4IDJiMGMzNDc5NDI1NjRjNTY1ZGY0
YzAzZDRjYjljOGU5ZWJmZGZiOGMuLjg3ZGUzYjg1NzcyZjg2NzQ0ZjY1MzQ4MDZlODYwOTQyOTRl
MGFmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCkBAIC0xNCw3ICsxNCw4IEBAIGNvbnRh
aW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGltZWRpYSkgewogICAgIERFRklORVMgKz0gV1RGX1VT
RV9RVF9NVUxUSU1FRElBPTEKIH0KIAotU09VUkNFUyArPSAkJHtUQVJHRVR9LmNwcAorU09VUkNF
UyArPSAkJHtUQVJHRVR9LmNwcCBcCisgICAgICAgICAgICQkUFdEL3V0aWwuY3BwCiBJTkNMVURF
UEFUSCArPSBcCiAgICAgJCRQV0QgXAogICAgICQkUFdELy4uL0FwaQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRp
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmQyODFjNjE5YjM5ZDI5MTY2YWMxY2ViYWEyODFmY2ZlMjU1MjI3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5jcHAKQEAg
LTAsMCArMSw1NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgInV0aWwuaCIKKwor
I2luY2x1ZGUgPFFEYXRlVGltZT4KKyNpbmNsdWRlIDxRRGlyPgorCitib29sIHdhaXRGb3JTaWdu
YWwoUU9iamVjdCogb2JqLCBjb25zdCBjaGFyKiBzaWduYWwsIGludCB0aW1lb3V0KQoreworICAg
IFFFdmVudExvb3AgbG9vcDsKKyAgICBRT2JqZWN0Ojpjb25uZWN0KG9iaiwgc2lnbmFsLCAmbG9v
cCwgU0xPVChxdWl0KCkpKTsKKyAgICBRVGltZXIgdGltZXI7CisgICAgUVNpZ25hbFNweSB0aW1l
b3V0U3B5KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSkpOworICAgIGlmICh0aW1lb3V0ID4gMCkg
eworICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSksICZs
b29wLCBTTE9UKHF1aXQoKSkpOworICAgICAgICB0aW1lci5zZXRTaW5nbGVTaG90KHRydWUpOwor
ICAgICAgICB0aW1lci5zdGFydCh0aW1lb3V0KTsKKyAgICB9CisgICAgbG9vcC5leGVjKCk7Cisg
ICAgcmV0dXJuIHRpbWVvdXRTcHkuaXNFbXB0eSgpOworfQorCitRU3RyaW5nIHRtcERpclBhdGgo
KQoreworICAgIHN0YXRpYyBRU3RyaW5nIHRtcGQgPSBRRGlyOjp0ZW1wUGF0aCgpICsgUUxhdGlu
MVN0cmluZygiL3RzdF9xd2ViZnJhbWUtIikKKyAgICAgICAgKyBRRGF0ZVRpbWU6OmN1cnJlbnRE
YXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFTdHJpbmcoInl5eXlNTWRkaGhtbXNzIikpOworICAg
IHJldHVybiB0bXBkOworfQorCit2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3RyaW5nJiBk
aXJuYW1lKQoreworICAgIFFEaXIgZGlyKGRpcm5hbWUpOworICAgIFFGaWxlSW5mb0xpc3QgZW50
cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMgfCBRRGlyOjpO
b0RvdEFuZERvdERvdCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllcy5jb3VudCgp
OyArK2kpCisgICAgICAgIGlmIChlbnRyaWVzLmF0KGkpLmlzRGlyKCkpCisgICAgICAgICAgICBy
ZW1vdmVSZWN1cnNpdmUoZW50cmllcy5hdChpKS5maWxlUGF0aCgpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzLmF0KGkpLmZpbGVOYW1lKCkpOworICAgIFFE
aXIoKS5ybWRpcihkaXJuYW1lKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvdXRpbC5oIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKaW5kZXggYzYxYmM2Yjg5
OTY1N2MzMzM3M2I3NWE4MzQ2NzBkZjFmNWEwNGMxYi4uNDNjZjQ2OTZkOTBiZTQ5YWViYmJhN2Q5
ZjBhNWIxN2IxMmNiNWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGls
LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKQEAgLTM0LDIwICszNCw3IEBA
CiAgKiBccmV0dXJuIFxwIHRydWUgaWYgdGhlIHJlcXVlc3RlZCBzaWduYWwgd2FzIHJlY2VpdmVk
CiAgKiAgICAgICAgIFxwIGZhbHNlIG9uIHRpbWVvdXQKICAqLwotc3RhdGljIGJvb2wgd2FpdEZv
clNpZ25hbChRT2JqZWN0KiBvYmosIGNvbnN0IGNoYXIqIHNpZ25hbCwgaW50IHRpbWVvdXQgPSAx
MDAwMCkKLXsKLSAgICBRRXZlbnRMb29wIGxvb3A7Ci0gICAgUU9iamVjdDo6Y29ubmVjdChvYmos
IHNpZ25hbCwgJmxvb3AsIFNMT1QocXVpdCgpKSk7Ci0gICAgUVRpbWVyIHRpbWVyOwotICAgIFFT
aWduYWxTcHkgdGltZW91dFNweSgmdGltZXIsIFNJR05BTCh0aW1lb3V0KCkpKTsKLSAgICBpZiAo
dGltZW91dCA+IDApIHsKLSAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgmdGltZXIsIFNJR05BTCh0
aW1lb3V0KCkpLCAmbG9vcCwgU0xPVChxdWl0KCkpKTsKLSAgICAgICAgdGltZXIuc2V0U2luZ2xl
U2hvdCh0cnVlKTsKLSAgICAgICAgdGltZXIuc3RhcnQodGltZW91dCk7Ci0gICAgfQotICAgIGxv
b3AuZXhlYygpOwotICAgIHJldHVybiB0aW1lb3V0U3B5LmlzRW1wdHkoKTsKLX0KK2Jvb2wgd2Fp
dEZvclNpZ25hbChRT2JqZWN0KiwgY29uc3QgY2hhciogc2lnbmFsLCBpbnQgdGltZW91dCA9IDEw
MDAwKTsKIAogLy8gV2lsbCB0cnkgdG8gd2FpdCBmb3IgdGhlIGNvbmRpdGlvbiB3aGlsZSBhbGxv
d2luZyBldmVudCBwcm9jZXNzaW5nCiAjZGVmaW5lIFFUUllfVkVSSUZZKF9fZXhwcikgXApAQCAt
NzYsMyArNjMsMTYgQEAgc3RhdGljIGJvb2wgd2FpdEZvclNpZ25hbChRT2JqZWN0KiBvYmosIGNv
bnN0IGNoYXIqIHNpZ25hbCwgaW50IHRpbWVvdXQgPSAxMDAwMCkKICAgICAgICAgfSBcCiAgICAg
ICAgIFFDT01QQVJFKF9fZXhwciwgX19leHBlY3RlZCk7IFwKICAgICB9IHdoaWxlKDApCisKKy8q
KgorICogUmV0dXJucyBhIHRlbXBvcmFyeSBwYXRoIHRoYXQgY2FuIGJlIHVzZWQgdGhyb3VnaG91
dCB0aGUgbGlmZXRpbWUgb2YgdGhlIHRlc3QuCisgKiBUaGlzIGNhbiBiZSB1c2VkIGZvciBsb2Nh
bCBzdG9yYWdlIHRlc3RpbmcgbmVlZHMuCisgKi8KKworUVN0cmluZyB0bXBEaXJQYXRoKCk7CisK
Ky8qKgorICogVXNlZCB0byByZW1vdmUgdGVtcG9yYXJ5IGxvY2FsIHN0b3JhZ2UgZGlyZWN0b3J5
CisgKi8KKwordm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGlybmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103605</attachid>
            <date>2011-08-11 05:22:05 -0700</date>
            <delta_ts>2012-08-15 08:10:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20110811142152.patch</filename>
            <type>text/plain</type>
            <size>20413</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKaW5kZXggMmJkMjM3ZjFjMjgzMGYxNDFkNzNkZGM0ODg2YjhhYjVhOTliY2Nj
NS4uYjA0ODEzNTNjMTEzMDk5ZTlmOTk4MjE4ZTQzMTcyMmUzZTc0NTUxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTIwOCw2ICsyMDgsOCBAQCB2b2lk
IFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQoKQogICAgIEluIG9yZGVy
IGZvciBpY29ucyB0byBiZSBsb2FkZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0
YWJhc2UgcGF0aAogICAgIHVzaW5nIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgp
LgogCisgICAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNv
biBkYXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6
c2V0SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApp
bmRleCBhMGEyZjNlOWQxNGQyYTUzM2ZlM2ZlOWQxY2FhYzhjYmU5YTEyNmFhLi5hNTYyMDIyNzdh
ZDViYTEzNWIxYzRkMGI3MjM3YzBjNzA3OWRkMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFt
ZS5jcHAKQEAgLTE2NzMsNyArMTY3MywxMCBAQCBRV2ViRnJhbWUqIFFXZWJGcmFtZVByaXZhdGU6
OmtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQogICBUaGlzIHNpZ25hbCBpcyBl
bWl0dGVkIHdoZW4gdGhlIGljb24gKCJmYXZpY29uIikgYXNzb2NpYXRlZCB3aXRoIHRoZSBmcmFt
ZQogICBoYXMgYmVlbiBsb2FkZWQuCiAKLSAgXHNhIGljb24oKQorICBcbm90ZSBUaGlzIHNpZ25h
bCB3aWxsIG5vdCBiZSBlbWl0dGVkIGlmIHRoZSBpY29uIGRhdGFiYXNlIGlzIGRpc2FibGVkCisg
IChzZWUgXGx7UVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKCl9e3NldEljb25EYXRh
YmFzZVBhdGgoKX0pLgorCisgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFi
YXNlUGF0aCgpCiAqLwogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAppbmRleCA3NmI5
MjdiYWNlMjNkOGRlZTkwOTJkMjQ0ODUzMzMxZDJjOGJiMjQ0Li5mYjIzMmJkYmIwYjgzM2VkNDI5
NWU5YTQwMzRhNjExZGZhMWYyYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCkBAIC0x
MjAxLDYgKzEyMDEsOCBAQCB2b2lkIFFXZWJWaWV3OjpjaGFuZ2VFdmVudChRRXZlbnQgKmUpCiAg
ICAgSW4gb3JkZXIgZm9yIGljb25zIHRvIGJlIGxvYWRlZCwgeW91IHdpbGwgbmVlZCB0byBzZXQg
YW4gaWNvbiBkYXRhYmFzZSBwYXRoCiAgICAgdXNpbmcgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0
YWJhc2VQYXRoKCkuCiAKKyAgICBcbm90ZSBUaGlzIHNpZ25hbCB3aWxsIG5vdCBiZSBlbWl0dGVk
IGlmIHRoZSBpY29uIGRhdGFiYXNlIGlzIGRpc2FibGVkLgorCiAgICAgXHNhIGljb24oKSwgUVdl
YlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKCkKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
YzYwZTBhOGQ0NjRjMDQ1NGEwMWI5NjQ0MTgyMWEyZDY0ZTRmMDE3ZS4uODYxMmUxZjZlM2UyYThi
MWY0MWQyNGZlNTc3NTA0OTRiYTkxYTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBA
QAorMjAxMS0wOC0xMCAgUGllcnJlIFJvc3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbUXRdIEZhdmljb25zIGNhbid0IGJlIGNoYW5nZWQgZHluYW1pY2FsbHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIzNworCisgICAg
ICAgIFRoZSBvbmx5IG1pc3NpbmcgcGllY2Ugd2FzIGFjdHVhbGx5IHJlbG9hZGluZyB0aGUgaWNv
bgorICAgICAgICB3aGVuIGl0cyBsaW5rIGVsZW1lbnQgY2hhbmdlcyBpbiB0aGUgRE9NLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3FncmFw
aGljc3dlYnZpZXcuY3BwOiBBZGQgYSBub3RlIGFib3V0CisgICAgICAgIHRoZSBjb25kaXRpb25z
IHdoZW4gdGhlIHNpZ25hbCB3b24ndCBiZSBlbWl0dGVkCisgICAgICAgICogQXBpL3F3ZWJmcmFt
ZS5jcHA6IERpdHRvLgorICAgICAgICAqIEFwaS9xd2Vidmlldy5jcHA6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyk6CisgICAg
ICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5j
cHA6CisgICAgICAgIEZpeHVwIHRvIHVzZSB0aGUgY29tbW9uIHRlc3QgZnVuY3Rpb25zLgorICAg
ICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmNsZWFudXBUZXN0Q2FzZSk6CisgICAgICAg
ICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6YmFzaWNQcm9wZXJ0aWVzKToKKyAgICAgICAgKHRz
dF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpoaXN0b3J5TmF2KToKKyAgICAgICAgKHRzdF9RRGVjbGFy
YXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IpOgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS9yZXNv
dXJjZXMvZmF2aWNvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvcmVz
b3VyY2VzL2Zhdmljb24xLnBuZzogQWRkZWQuCisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3Jl
c291cmNlcy9mYXZpY29uMi5wbmc6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90
c3RfcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHRzdF9RV2ViRnJhbWU6OnRzdF9RV2ViRnJhbWUp
OgorICAgICAgICAodHN0X1FXZWJGcmFtZTo6fnRzdF9RV2ViRnJhbWUpOgorICAgICAgICAodHN0
X1FXZWJGcmFtZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24pOgorICAgICAgICAqIHRlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYzoKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAqIHRlc3RzL3Rlc3RzLnByaToKKyAgICAgICAgKiB0
ZXN0cy91dGlsLmNwcDogQWRkZWQuCisgICAgICAgIG1vdmVkIGxvY2FsIHN0b3JhZ2UgcmVsYXRl
ZCBmdW5jdGlvbnMgb3ZlciBmcm9tCisgICAgICAgIHRlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFn
ZS5jcHAKKyAgICAgICAgKHdhaXRGb3JTaWduYWwpOgorICAgICAgICAodG1wRGlyUGF0aCk6Cisg
ICAgICAgIChyZW1vdmVSZWN1cnNpdmUpOgorICAgICAgICAqIHRlc3RzL3V0aWwuaDoKKwogMjAx
MS0wOC0wNSAgRGF3aXQgQWxlbWF5ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDU4ZDc2Y2Y0YjlmNzFk
NWNmMTMzMjlkY2QyZjYwNjI4MDhlYTZiMDAuLmIwZGQyODQ1Nzk0M2QxOTBhMWI3ODU4ZjUxMWRj
YjBjY2VlMjUxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNDY3LDE0ICs0NjcsMTQgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdX
aXRoRGlyZWN0aW9uJiB0aXQKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERp
ZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQogeworICAgIEFTU0VSVChtX2ZyYW1lKTsK
ICAgICBpZiAoZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzKQogICAgICAgICBwcmludGYoIiVzIC0g
ZGlkQ2hhbmdlSWNvbnNcbiIsIHFQcmludGFibGUoZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQobV9mcmFtZSkpKTsKIAogICAgIGlmICghbV93ZWJGcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gRklYTUU6IEluIG9yZGVyIHRvIGdldCBub3RpZmllZCBvZiBpY29uIFVS
TFMnIGNoYW5nZXMsIGFkZCBhIG5vdGlmaWNhdGlvbi4KLSAgICAvLyBlbWl0IGljb25zQ2hhbmdl
ZCgpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnN0YXJ0TG9hZGVyKCk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3
L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRl
Y2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKaW5kZXggNDc5ZWNh
ZWVkNDQ1YmVjOGVjNGFkOGI5MGZkYjcwOTc5ZWEwNDg3OS4uNzQ2ZmE4ZTAwMzNjZDA5NGY1NTgz
MWQyODRhNDdhMjhlYjEyMTYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9x
ZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdl
YnZpZXcuY3BwCkBAIC01MCwxMiArNTAsNiBAQCBwcml2YXRlIHNsb3RzOgogCiBwcml2YXRlOgog
ICAgIHZvaWQgY2hlY2tOb0Vycm9ycyhjb25zdCBRRGVjbGFyYXRpdmVDb21wb25lbnQmKTsKLSAg
ICBRU3RyaW5nIHRtcERpcigpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0aWMgUVN0cmluZyB0
bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXctIgotICAg
ICAgICAgICAgKyBRRGF0ZVRpbWU6OmN1cnJlbnREYXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFT
dHJpbmcoInl5eXlNTWRkaGhtbXNzIikpOwotICAgICAgICByZXR1cm4gdG1wZDsKLSAgICB9CiB9
OwogCiB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6dHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXcoKQpA
QCAtNzYsMjEgKzcwLDkgQEAgc3RhdGljIFFTdHJpbmcgZmlsZUNvbnRlbnRzKGNvbnN0IFFTdHJp
bmcmIGZpbGVuYW1lKQogICAgIHJldHVybiBRU3RyaW5nOjpmcm9tVXRmOChmaWxlLnJlYWRBbGwo
KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3RyaW5nJiBkaXJu
YW1lKQotewotICAgIFFEaXIgZGlyKGRpcm5hbWUpOwotICAgIFFGaWxlSW5mb0xpc3QgZW50cmll
cyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMgfCBRRGlyOjpOb0Rv
dEFuZERvdERvdCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllcy5jb3VudCgpOyAr
K2kpCi0gICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyKCkpCi0gICAgICAgICAgICByZW1vdmVS
ZWN1cnNpdmUoZW50cmllc1tpXS5maWxlUGF0aCgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGlyLnJlbW92ZShlbnRyaWVzW2ldLmZpbGVOYW1lKCkpOwotICAgIFFEaXIoKS5ybWRpcihk
aXJuYW1lKTsKLX0KLQogdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6Y2xlYW51cFRlc3RD
YXNlKCkKIHsKLSAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyKCkpOworICAgIHJlbW92ZVJlY3Vy
c2l2ZSh0bXBEaXJQYXRoKCkpOwogfQogCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpi
YXNpY1Byb3BlcnRpZXMoKQpAQCAtOTgsNyArODAsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVX
ZWJWaWV3OjpiYXNpY1Byb3BlcnRpZXMoKQogICAgIFFEZWNsYXJhdGl2ZUVuZ2luZSBlbmdpbmU7
CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5lLCBRVXJsKCJxcmM6
Ly8vcmVzb3VyY2VzL2Jhc2ljLnFtbCIpKTsKICAgICBjaGVja05vRXJyb3JzKGNvbXBvbmVudCk7
Ci0gICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXIoKSk7Cisg
ICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXJQYXRoKCkpOwog
CiAgICAgUU9iamVjdCogd3YgPSBjb21wb25lbnQuY3JlYXRlKCk7CiAgICAgUVZFUklGWSh3dik7
CkBAIC0xNjQsNyArMTQ2LDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aGlzdG9y
eU5hdigpCiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVD
b21wb25lbnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvYmFzaWMu
cW1sIikpOwogICAgIGNoZWNrTm9FcnJvcnMoY29tcG9uZW50KTsKLSAgICBRV2ViU2V0dGluZ3M6
OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpcigpKTsKKyAgICBRV2ViU2V0dGluZ3M6OmVu
YWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpclBhdGgoKSk7CiAKICAgICBRT2JqZWN0KiB3diA9
IGNvbXBvbmVudC5jcmVhdGUoKTsKICAgICBRVkVSSUZZKHd2KTsKQEAgLTI1NSw3ICsyMzcsNyBA
QCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IoKQogICAgIFFEZWNsYXJh
dGl2ZUVuZ2luZSBlbmdpbmU7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgm
ZW5naW5lLCBRVXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2xvYWRFcnJvci5xbWwiKSk7CiAgICAgY2hl
Y2tOb0Vycm9ycyhjb21wb25lbnQpOwotICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVu
dFN0b3JhZ2UodG1wRGlyKCkpOworICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0
b3JhZ2UodG1wRGlyUGF0aCgpKTsKIAogICAgIFFPYmplY3QqIHd2ID0gY29tcG9uZW50LmNyZWF0
ZSgpOwogICAgIFFWRVJJRlkod3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM0ZWQyMWI2
ODg2ZTUzNjRlOGJmYTZlY2YzZjY5ZjY5ZGUwODVmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKQEAgLTAs
MCArMSw1IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgaWQ9ImZhdmljb24iIHJlbD0ic2hvcnRj
dXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJmYXZpY29uMS5wbmciLz4KKzwvc2NyaXB0
PgorPC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJmcmFtZS9yZXNvdXJjZXMvZmF2aWNvbjEucG5nIGIvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24xLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDYyNzUyYTUzYmFlYjA1ZDlhOThmOGFlMjNmYTgwN2U3Y2VlZTRhCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCA4OTEKemNtVi0+MUJDcEVQKTxoOzNLfExrMDAwZTFOSkxUcTAwMG1HMDAwbU8xXkBz
NkFNXmlWMDAwMDFiNWNoXzBJdHApCno9PlB4JkhBekg0UjUodXMhT2MkO1g4XiRBLX19eHhHZHIq
ITQ3LWJoVkokNCFxUkBidkcpO14jezArU3IpQVopVwp6RyhHZVdENXN1IylrRHZ7bjt6UVEjJn5O
SlFkNXl1NW4rTGFtMVRFWGM2WXcjb2ojOE1fK293aXV7LU5ORyNyeUcKejM8KlhOY0ZyVWQyQnFw
SCN0U2EzKF9eJCFuNU5CMXFqfVA4b2pyYTI7PkJhKihLbGFqM19Hb0ZeRTE7VkxTYzxMCnozYFBO
XllNSnM+blU2bk47cmZrYkNNeStgV3IxWi11MnVfMmptRThLenheVlZBPj89WT1efDA7UT1YfWpk
UERNVgp6ZnRsSm9pfWdCfHZNM1leU2hrSEhNVEJYQnBUIWk1RT5ZP35HXlY4N3M0Z3VyVU13TW5q
Y3IqSi0zb0phMyhRUS0KekFmLVlZbEFMV0w1Z1o7SShBYSYwUDk+bzxrc19CenN4aWpoM1dtXj5p
YmRqN2xaRytQNHtjaUFiMVl8XkxWa2pCCnpXczNRYXRgVXQ9QkNrKXJ5bnIkczJnNlotTERpazIq
WTVEe1Y0dDFGNW41KiRYfnhhZlBxfXlKNCMldylQaztYZAp6S2hCNz5MKV9kKE5tRyE5RFgoQG1O
JjVrX149cjgwREA7c0NqdEA/Tmd1VDY4e2AmSkRFPEJHKURUZypQTExHdUUKenBeVGhFQ15WQ2s2
JkJhKHRTO1lSYHxVMlR8OSMxTCE2RVNzMD8qXn4rc2t4MVUwVTU5UWZkWiVPcHQxJVpEIT02Cnpn
blo1ZG9lJX4taSpxJVVIYyZ4fEIqVCZ4YkYoJHBAN15XeWBpTUJna3w2eUgjRG58eXZqPDsmTm9F
LVF5fThOQwp6QF4jOVM2PlFya08lanFNTElePCsjYEZnUmE8KW19ZEhucUFHdjAxKnFrNnBfYWhn
JWU9Tk5oO2YqPkh2R0wofFUKemlEdXtoSkckTC1mKj5Gam5seX5LeHc9WGtNYFdwaUY8WUQ4WG5y
YFJTamU7QUppdF5JWnJMVTAqbGZNdFZtS08rCno3WT16bDQ+M3EoKChaUj9vfTRsMF4teiZNcip+
JVleMW9Ma055Y2ZuaHVkbWwrWkwmWU9QOG15bH1SditOVGtMeAp6O1BrQWB6YHNFMjFmfFJoeGsz
QHN2PkNVQFhtJmNwbldvPCNhTVdyZGdhOSVlUTt8ZlB0fmEzSD5sNjB8bDxoTGMKeilzQD5LKEI4
ZVBtIzBDZXlnJTN7JD42bHpWZCNmazQyTDgtcWdYOEJQRU4zUWMhKW09eGdzMUVPT3NFRyMrJDlA
CnpZaXBtKUVZKWtiN1YzMzZvaT5DMTEoNm1BIXo5KVRYJEZIfiRWdW0lSTBmYlRSOGRkOXxMTW1j
e3MlNCRnPDQrZQpSRWY0P3owMDJvdlBESExrVjFubGpvIWtIYgoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3Vy
Y2VzL2Zhdmljb24yLnBuZyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291
cmNlcy9mYXZpY29uMi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZkMTI2OTE0ZmIzOTIxOWE4M2E2ZGUxNDcy
ODlhMzYzNzA2ZjNkMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzQyCnpjbVY8QzB2WXtAUCk8
aDszS3xMazAwMGUxTkpMVHEwMDBtRzAwMG1PMHNzSTJrZGJJTTAwMDAxYjVjaF8wSXRwKQp6PT5Q
eCVwaC1rUVI0QzV7IUViTmVHI21oNitwKFFFeG09Und1R2k1K1luZThMU1MyTGpDRV5xQzhUZT90
TEErdUQKemZyUiQ5NSl6PEVsdWM5QkQ9TVJgT1N8MFZ2ZGNmbWotNE9SZ01hQDF5VjI7M0FDJilH
VHxheGBgb1V+QTVCKSRtCnpkPVo3cU1memVUWn53JnlVd3dKPGZ3ejhyTGxKX1Y4Y3Q4MiMmVmwx
S05MWHtoT3k2UjtKVER5JTAhZUBjfnw5VQp6UHQodTh6RnU3cnJMOUcldExgaXQyb0lQJEtATjkz
VXg8bUFQSjRzbkREXl9QRD12VGtePmllWmFMekNqaCFWfmAKemhjTTF2MWklbXRKZGE+IUJaciti
OGkrPTt0KSZ8JGdmakJ5PmVaa087VH5jaElOV2k9cTh+MnZxVkReRWt4dGdGCnpNbGw+ZHw2fXQ7
REpxbyY3UD8jOHJRSSZpTHxHZyFrQlR6UyVJWUVybVhXJiUxb1prQ0otbj1VYEVQJHcxOShQdQp6
K0FnYyYyOWluMElhUGBRI0lCbzZWXj5mRCl+KDV5Pkc+RE9oWUZ+SmlEQ2lVPWdUU2dRcWZvQ3Fl
YzN2YU1DRmUKenFjaWhgPmBMNSNqMVV1RUdmTjE3byR0alo/OFhLVkFfbWNgcVVvRT81Wm9EPz1q
Q2wjekxQYE1udX45cTZ8fHZKCnorbFpMdTBqc2pEbVZtKzhOLUtnQzJIa1BBdHR2OWVmdzFrSE9y
djZNLWNrVXRXXzxXfmV8Pj0wbTBBRHk4clA9eAp6I1h3WkZOSExAM1BXaURISiRtbz49bzNPTE1I
WFF8YntyP2M8Ui1mYzdmQiRaTmktY21OaUNiRVI3T0FrPjtkKmUKenQ5bDJ5I0VmUGI/UCU+ZGpf
PT1fRTdOTFhkTHcmbCtQPj4jJEdJIX0taX4wNVI+TUYkRGY5Sk9fNUl1UkNjQ3xCCnpScn5SWUZU
bzY+P1JNTFZLUzd7PmVEZHdsTjFxLW81OTRAYHtfeFc7PWNgclFZbTVtWHhQU2xOUDtYPklKd0p9
Nwp6ZG1kK1BFdzhncHNuN3BAYWg5WXBKJHJkUjBeKkRWQVY4NGtANlpYRjFgKit1YkI/aCtkJTQ9
eUNmPipFdmhITzIKWUtkTX1lUjUpdEgtfmEjczA3KnFvTTZOPCRnNGFNeylCcGVnCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJm
cmFtZS90c3RfcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IGNkYWZjM2M5MWFiZTdiOWE4NGRhMzVmMTAzODk5ZGFk
MzQyMzFkM2YuLmRiOTBmYmFjNDMyYzNiNTU2ZjU0YWM1MTNhZGFlM2ViNTg2NzJiODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3Bw
CkBAIC02NjIsNiArNjYyLDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGxvYWRGaW5pc2hl
ZEFmdGVyTm90Rm91bmRFcnJvcigpOwogICAgIHZvaWQgbG9hZEluU2lnbmFsSGFuZGxlcnNfZGF0
YSgpOwogICAgIHZvaWQgbG9hZEluU2lnbmFsSGFuZGxlcnMoKTsKKyAgICB2b2lkIGR5bmFtaWNh
bGx5Q2hhbmdpbmdGYXZpY29uKCk7CisgICAgdm9pZCBpY29uQ2hhbmdlZFdpdGhvdXREQigpOwog
CiBwcml2YXRlOgogICAgIFFTdHJpbmcgIGV2YWxKUyhjb25zdCBRU3RyaW5nJnMpIHsKQEAgLTc0
MSwxMCArNzQzLDE0IEBAIHRzdF9RV2ViRnJhbWU6OnRzdF9RV2ViRnJhbWUoKQogICAgIDogc1Ry
dWUoInRydWUiKSwgc0ZhbHNlKCJmYWxzZSIpLCBzVW5kZWZpbmVkKCJ1bmRlZmluZWQiKSwgc0Fy
cmF5KCJhcnJheSIpLCBzRnVuY3Rpb24oImZ1bmN0aW9uIiksIHNFcnJvcigiZXJyb3IiKSwKICAg
ICAgICAgc1N0cmluZygic3RyaW5nIiksIHNPYmplY3QoIm9iamVjdCIpLCBzTnVtYmVyKCJudW1i
ZXIiKSwgbV9pbnB1dEZpZWxkc1Rlc3RWaWV3KDApLCBtX2lucHV0RmllbGRUZXN0UGFpbnRDb3Vu
dCgwKQogeworICAgIFFEaXIgZGlyOworICAgIGRpci5ta3BhdGgodG1wRGlyUGF0aCgpKTsKKyAg
ICBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgodG1wRGlyUGF0aCgpKTsKIH0KIAog
dHN0X1FXZWJGcmFtZTo6fnRzdF9RV2ViRnJhbWUoKQogeworICAgIHJlbW92ZVJlY3Vyc2l2ZSh0
bXBEaXJQYXRoKCkpOwogfQogCiBib29sIHRzdF9RV2ViRnJhbWU6OmV2ZW50RmlsdGVyKFFPYmpl
Y3QqIHdhdGNoZWQsIFFFdmVudCogZXZlbnQpCkBAIC0zODA0LDUgKzM4MTAsNDkgQEAgdm9pZCB0
c3RfUVdlYkZyYW1lOjpsb2FkSW5TaWduYWxIYW5kbGVycygpCiAgICAgUUNPTVBBUkUoZnJhbWUt
PnVybCgpLCB1cmxGb3JTZXR0ZXIpOwogfQogCit2b2lkIHRzdF9RV2ViRnJhbWU6OmR5bmFtaWNh
bGx5Q2hhbmdpbmdGYXZpY29uKCkKK3sKKyAgICBRV2ViRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5t
YWluRnJhbWUoKTsKKyAgICBjb25zdCBRU2l6ZSBpY29uU2l6ZSgxNiwgMTYpOworCisgICAgUVNp
Z25hbFNweSBpY29uQ2hhbmdlZFNweShmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpKTsKKyAg
ICBmcmFtZS0+bG9hZChRVXJsKCJxcmM6L2Zhdmljb24uaHRtbCIpKTsKKyAgICA6OndhaXRGb3JT
aWduYWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7CisKKyAgICBRQ09NUEFS
RShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAxKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigp
LmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCku
aXNFbXB0eSgpKTsKKworICAgIFFJbWFnZSBvbGRJY29uICA9IGZyYW1lLT5pY29uKCkucGl4bWFw
KGljb25TaXplKS50b0ltYWdlKCk7CisgICAgUUltYWdlIGltYWdlID0gUUltYWdlKCI6L2Zhdmlj
b24xLnBuZyIpLmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlw
bGllZCk7CisKKyAgICBRQ09NUEFSRShvbGRJY29uLCBpbWFnZSk7CisKKyAgICBRU3RyaW5nIGpz
ID0gUUxhdGluMVN0cmluZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zhdmljb24nKS5zZXRB
dHRyaWJ1dGUoXCJocmVmXCIsIFwiZmF2aWNvbjIucG5nXCIpIik7CisgICAgZnJhbWUtPmV2YWx1
YXRlSmF2YVNjcmlwdChqcyk7CisgICAgOjp3YWl0Rm9yU2lnbmFsKGZyYW1lLCBTSUdOQUwoaWNv
bkNoYW5nZWQoKSksIDEwMDApOworICAgIFFDT01QQVJFKGljb25DaGFuZ2VkU3B5LmNvdW50KCks
IDIpOworICAgIFFWRVJJRlkoIWZyYW1lLT5pY29uKCkuaXNOdWxsKCkpOworICAgIFFWRVJJRlko
IWZyYW1lLT5pY29uKCkuYXZhaWxhYmxlU2l6ZXMoKS5pc0VtcHR5KCkpOworCisgICAgUUltYWdl
IG5ld0ljb24gPSBmcmFtZS0+aWNvbigpLnBpeG1hcChpY29uU2l6ZSkudG9JbWFnZSgpOworICAg
IFFWRVJJRlkobmV3SWNvbiAhPSBvbGRJY29uKTsKKyAgICBpbWFnZSA9IFFJbWFnZSgiOi9mYXZp
Y29uMi5wbmciKS5jb252ZXJ0VG9Gb3JtYXQoUUltYWdlOjpGb3JtYXRfUkdCMzIpOworICAgIFFD
T01QQVJFKG5ld0ljb24sIGltYWdlKTsKK30KKwordm9pZCB0c3RfUVdlYkZyYW1lOjppY29uQ2hh
bmdlZFdpdGhvdXREQigpCit7CisgICAgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRo
KFFTdHJpbmcoKSk7CisgICAgUVdlYlBhZ2UqIHRlc3RQYWdlID0gbmV3IFFXZWJQYWdlKHRoaXMp
OworICAgIFFXZWJGcmFtZSogZnJhbWUgPSB0ZXN0UGFnZS0+bWFpbkZyYW1lKCk7CisgICAgUVNp
Z25hbFNweSBpY29uQ2hhbmdlZFNweShmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpKTsKKyAg
ICBmcmFtZS0+bG9hZChRVXJsKCJxcmM6L2Zhdmljb24uaHRtbCIpKTsKKyAgICA6OndhaXRGb3JT
aWduYWwoZnJhbWUsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpLCAxMDAwKTsKKyAgICBRQ09N
UEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAwKTsKKyAgICBRVkVSSUZZKGZyYW1lLT5pY29u
KCkuaXNOdWxsKCkpOworfQorCisKIFFURVNUX01BSU4odHN0X1FXZWJGcmFtZSkKICNpbmNsdWRl
ICJ0c3RfcXdlYmZyYW1lLm1vYyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2Vi
ZnJhbWUvdHN0X3F3ZWJmcmFtZS5xcmMKaW5kZXggMmE3ZDBiOWMyODI1ZmY4NTA1YWE2MWFkODc1
M2ZjNTYxZDYyMWVjYi4uZGY0Mjc2NmQ4MTE5N2QxMzY3YWQxOWI1YWFjMzM0NDk5MTViYTE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFt
ZS5xcmMKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFt
ZS5xcmMKQEAgLTEsMTAgKzEsMTMgQEAKLTwhRE9DVFlQRSBSQ0M+PFJDQyB2ZXJzaW9uPSIxLjAi
PgotPHFyZXNvdXJjZSBwcmVmaXg9Ii8iPgotPGZpbGUgYWxpYXM9ImltYWdlLnBuZyI+cmVzb3Vy
Y2VzL2ltYWdlLnBuZzwvZmlsZT4KLTxmaWxlIGFsaWFzPSJzdHlsZS5jc3MiPnJlc291cmNlcy9z
dHlsZS5jc3M8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdDEuaHRtbCI+cmVzb3VyY2VzL3Rlc3Qx
Lmh0bWw8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdDIuaHRtbCI+cmVzb3VyY2VzL3Rlc3QyLmh0
bWw8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdGlmcmFtZS5odG1sIj5yZXNvdXJjZXMvdGVzdGlm
cmFtZS5odG1sPC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3RpZnJhbWUyLmh0bWwiPnJlc291cmNl
cy90ZXN0aWZyYW1lMi5odG1sPC9maWxlPgotPC9xcmVzb3VyY2U+Cis8UkNDPgorICAgIDxxcmVz
b3VyY2UgcHJlZml4PSIvIj4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImltYWdlLnBuZyI+cmVzb3Vy
Y2VzL2ltYWdlLnBuZzwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InN0eWxlLmNzcyI+cmVz
b3VyY2VzL3N0eWxlLmNzczwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3QxLmh0bWwi
PnJlc291cmNlcy90ZXN0MS5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdDIu
aHRtbCI+cmVzb3VyY2VzL3Rlc3QyLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0
ZXN0aWZyYW1lLmh0bWwiPnJlc291cmNlcy90ZXN0aWZyYW1lLmh0bWw8L2ZpbGU+CisgICAgICAg
IDxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1lMi5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZTIuaHRt
bDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImZhdmljb24xLnBuZyI+cmVzb3VyY2VzL2Zh
dmljb24xLnBuZzwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImZhdmljb24yLnBuZyI+cmVz
b3VyY2VzL2Zhdmljb24yLnBuZzwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9ImZhdmljb24u
aHRtbCI+cmVzb3VyY2VzL2Zhdmljb24uaHRtbDwvZmlsZT4KKyAgICA8L3FyZXNvdXJjZT4KIDwv
UkNDPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdl
YnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2Uu
Y3BwCmluZGV4IGUxZjg1YzgyNGI2YWEwN2E5OWQ1YjY3ZDhmYWU3MWI3YjQ3ZGNmMDguLjk5Mzkw
ODY0NWVkOTYxZGYyNmM2YTU1ZDNkNzdiOWEzZWU2OWRkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKQEAgLTQ1LDE3ICs0NSw2IEBA
CiAjaW5jbHVkZSA8cXdlYnZpZXcuaD4KICNpbmNsdWRlIDxxaW1hZ2V3cml0ZXIuaD4KIAotc3Rh
dGljIHZvaWQgcmVtb3ZlUmVjdXJzaXZlKGNvbnN0IFFTdHJpbmcmIGRpcm5hbWUpCi17Ci0gICAg
UURpciBkaXIoZGlybmFtZSk7Ci0gICAgUUZpbGVJbmZvTGlzdCBlbnRyaWVzKGRpci5lbnRyeUlu
Zm9MaXN0KFFEaXI6OkRpcnMgfCBRRGlyOjpGaWxlcyB8IFFEaXI6Ok5vRG90QW5kRG90RG90KSk7
Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlbnRyaWVzLmNvdW50KCk7ICsraSkKLSAgICAgICAg
aWYgKGVudHJpZXNbaV0uaXNEaXIoKSkKLSAgICAgICAgICAgIHJlbW92ZVJlY3Vyc2l2ZShlbnRy
aWVzW2ldLmZpbGVQYXRoKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaXIucmVtb3Zl
KGVudHJpZXNbaV0uZmlsZU5hbWUoKSk7Ci0gICAgUURpcigpLnJtZGlyKGRpcm5hbWUpOwotfQog
CiBjbGFzcyBFdmVudFNweSA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUUxpc3Q8UUV2ZW50OjpU
eXBlPgogewpAQCAtMTY3LDEyICsxNTYsNiBAQCBwcml2YXRlIHNsb3RzOgogcHJpdmF0ZToKICAg
ICBRV2ViVmlldyogbV92aWV3OwogICAgIFFXZWJQYWdlKiBtX3BhZ2U7Ci0gICAgUVN0cmluZyB0
bXBEaXJQYXRoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBRU3RyaW5nIHRtcGQgPSBR
RGlyOjp0ZW1wUGF0aCgpICsgIi90c3RfcXdlYnBhZ2UtIgotICAgICAgICAgICAgKyBRRGF0ZVRp
bWU6OmN1cnJlbnREYXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFTdHJpbmcoInl5eXlNTWRkaGht
bXNzIikpOwotICAgICAgICByZXR1cm4gdG1wZDsKLSAgICB9CiB9OwogCiB0c3RfUVdlYlBhZ2U6
OnRzdF9RV2ViUGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3Rz
LnByaSBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCmluZGV4IDJiMGMzNDc5NDI1
NjRjNTY1ZGY0YzAzZDRjYjljOGU5ZWJmZGZiOGMuLjg3ZGUzYjg1NzcyZjg2NzQ0ZjY1MzQ4MDZl
ODYwOTQyOTRlMGFmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMu
cHJpCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCkBAIC0xNCw3ICsxNCw4
IEBAIGNvbnRhaW5zKE1PQklMSVRZX0NPTkZJRywgbXVsdGltZWRpYSkgewogICAgIERFRklORVMg
Kz0gV1RGX1VTRV9RVF9NVUxUSU1FRElBPTEKIH0KIAotU09VUkNFUyArPSAkJHtUQVJHRVR9LmNw
cAorU09VUkNFUyArPSAkJHtUQVJHRVR9LmNwcCBcCisgICAgICAgICAgICQkUFdEL3V0aWwuY3Bw
CiBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRQV0QgXAogICAgICQkUFdELy4uL0FwaQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvdXRpbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQyODFjNjE5YjM5ZDI5MTY2YWMxY2ViYWEyODFm
Y2ZlMjU1MjI3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRp
bC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgInV0
aWwuaCIKKworI2luY2x1ZGUgPFFEYXRlVGltZT4KKyNpbmNsdWRlIDxRRGlyPgorCitib29sIHdh
aXRGb3JTaWduYWwoUU9iamVjdCogb2JqLCBjb25zdCBjaGFyKiBzaWduYWwsIGludCB0aW1lb3V0
KQoreworICAgIFFFdmVudExvb3AgbG9vcDsKKyAgICBRT2JqZWN0Ojpjb25uZWN0KG9iaiwgc2ln
bmFsLCAmbG9vcCwgU0xPVChxdWl0KCkpKTsKKyAgICBRVGltZXIgdGltZXI7CisgICAgUVNpZ25h
bFNweSB0aW1lb3V0U3B5KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSkpOworICAgIGlmICh0aW1l
b3V0ID4gMCkgeworICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KCZ0aW1lciwgU0lHTkFMKHRpbWVv
dXQoKSksICZsb29wLCBTTE9UKHF1aXQoKSkpOworICAgICAgICB0aW1lci5zZXRTaW5nbGVTaG90
KHRydWUpOworICAgICAgICB0aW1lci5zdGFydCh0aW1lb3V0KTsKKyAgICB9CisgICAgbG9vcC5l
eGVjKCk7CisgICAgcmV0dXJuIHRpbWVvdXRTcHkuaXNFbXB0eSgpOworfQorCitRU3RyaW5nIHRt
cERpclBhdGgoKQoreworICAgIHN0YXRpYyBRU3RyaW5nIHRtcGQgPSBRRGlyOjp0ZW1wUGF0aCgp
ICsgUUxhdGluMVN0cmluZygiL3RzdF9xd2ViZnJhbWUtIikKKyAgICAgICAgKyBRRGF0ZVRpbWU6
OmN1cnJlbnREYXRlVGltZSgpLnRvU3RyaW5nKFFMYXRpbjFTdHJpbmcoInl5eXlNTWRkaGhtbXNz
IikpOworICAgIHJldHVybiB0bXBkOworfQorCit2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBR
U3RyaW5nJiBkaXJuYW1lKQoreworICAgIFFEaXIgZGlyKGRpcm5hbWUpOworICAgIFFGaWxlSW5m
b0xpc3QgZW50cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMg
fCBRRGlyOjpOb0RvdEFuZERvdERvdCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmll
cy5jb3VudCgpOyArK2kpCisgICAgICAgIGlmIChlbnRyaWVzLmF0KGkpLmlzRGlyKCkpCisgICAg
ICAgICAgICByZW1vdmVSZWN1cnNpdmUoZW50cmllcy5hdChpKS5maWxlUGF0aCgpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzLmF0KGkpLmZpbGVOYW1lKCkp
OworICAgIFFEaXIoKS5ybWRpcihkaXJuYW1lKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvdXRpbC5oIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKaW5kZXgg
YzYxYmM2Yjg5OTY1N2MzMzM3M2I3NWE4MzQ2NzBkZjFmNWEwNGMxYi4uNDNjZjQ2OTZkOTBiZTQ5
YWViYmJhN2Q5ZjBhNWIxN2IxMmNiNWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90
ZXN0cy91dGlsLmgKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKQEAgLTM0LDIw
ICszNCw3IEBACiAgKiBccmV0dXJuIFxwIHRydWUgaWYgdGhlIHJlcXVlc3RlZCBzaWduYWwgd2Fz
IHJlY2VpdmVkCiAgKiAgICAgICAgIFxwIGZhbHNlIG9uIHRpbWVvdXQKICAqLwotc3RhdGljIGJv
b2wgd2FpdEZvclNpZ25hbChRT2JqZWN0KiBvYmosIGNvbnN0IGNoYXIqIHNpZ25hbCwgaW50IHRp
bWVvdXQgPSAxMDAwMCkKLXsKLSAgICBRRXZlbnRMb29wIGxvb3A7Ci0gICAgUU9iamVjdDo6Y29u
bmVjdChvYmosIHNpZ25hbCwgJmxvb3AsIFNMT1QocXVpdCgpKSk7Ci0gICAgUVRpbWVyIHRpbWVy
OwotICAgIFFTaWduYWxTcHkgdGltZW91dFNweSgmdGltZXIsIFNJR05BTCh0aW1lb3V0KCkpKTsK
LSAgICBpZiAodGltZW91dCA+IDApIHsKLSAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgmdGltZXIs
IFNJR05BTCh0aW1lb3V0KCkpLCAmbG9vcCwgU0xPVChxdWl0KCkpKTsKLSAgICAgICAgdGltZXIu
c2V0U2luZ2xlU2hvdCh0cnVlKTsKLSAgICAgICAgdGltZXIuc3RhcnQodGltZW91dCk7Ci0gICAg
fQotICAgIGxvb3AuZXhlYygpOwotICAgIHJldHVybiB0aW1lb3V0U3B5LmlzRW1wdHkoKTsKLX0K
K2Jvb2wgd2FpdEZvclNpZ25hbChRT2JqZWN0KiwgY29uc3QgY2hhciogc2lnbmFsLCBpbnQgdGlt
ZW91dCA9IDEwMDAwKTsKIAogLy8gV2lsbCB0cnkgdG8gd2FpdCBmb3IgdGhlIGNvbmRpdGlvbiB3
aGlsZSBhbGxvd2luZyBldmVudCBwcm9jZXNzaW5nCiAjZGVmaW5lIFFUUllfVkVSSUZZKF9fZXhw
cikgXApAQCAtNzYsMyArNjMsMTYgQEAgc3RhdGljIGJvb2wgd2FpdEZvclNpZ25hbChRT2JqZWN0
KiBvYmosIGNvbnN0IGNoYXIqIHNpZ25hbCwgaW50IHRpbWVvdXQgPSAxMDAwMCkKICAgICAgICAg
fSBcCiAgICAgICAgIFFDT01QQVJFKF9fZXhwciwgX19leHBlY3RlZCk7IFwKICAgICB9IHdoaWxl
KDApCisKKy8qKgorICogUmV0dXJucyBhIHRlbXBvcmFyeSBwYXRoIHRoYXQgY2FuIGJlIHVzZWQg
dGhyb3VnaG91dCB0aGUgbGlmZXRpbWUgb2YgdGhlIHRlc3QuCisgKiBUaGlzIGNhbiBiZSB1c2Vk
IGZvciBsb2NhbCBzdG9yYWdlIHRlc3RpbmcgbmVlZHMuCisgKi8KKworUVN0cmluZyB0bXBEaXJQ
YXRoKCk7CisKKy8qKgorICogVXNlZCB0byByZW1vdmUgdGVtcG9yYXJ5IGxvY2FsIHN0b3JhZ2Ug
ZGlyZWN0b3J5CisgKi8KKwordm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGly
bmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158571</attachid>
            <date>2012-08-15 08:10:06 -0700</date>
            <delta_ts>2012-08-16 07:09:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20120815171238.patch</filename>
            <type>text/plain</type>
            <size>18201</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDFjYjFhYWU2NmU5
MTBkMTExNzZmYTBhYjgwZjM5Zjc4ZDU4MmIyY2EuLjE1NDNkYmU1NWU0ZjVmYWQ3YzYyMjRjZjNk
MTBmNmQ2M2IyZTM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgt
MTAgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0
XSBGYXZpY29ucyBjYW4ndCBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMzcKKworICAgICAgICBXZSBkaWRu
J3QgdHJpZ2dlciBhIHJlbG9hZCBvZiB0aGUgaWNvbiB3aGVuCisgICAgICAgIG5vdGlmaWVkIGl0
cyBsaW5rIGVsZW1lbnQgY2hhbmdlZCBpbiB0aGUgRE9NLgorCisgICAgICAgIEF1dG90ZXN0IGFk
ZGVkIHRvIHRzdF9RV2ViRnJhbWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHA6IEFkZCBhIG5vdGUgYWJv
dXQKKyAgICAgICAgdGhlIGNvbmRpdGlvbnMgd2hlbiB0aGUgc2lnbmFsIHdvbid0IGJlIGVtaXR0
ZWQKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNwcDogRGl0dG8uCisgICAgICAgICogQXBpL3F3
ZWJ2aWV3LmNwcDogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNw
YXRjaERpZENoYW5nZUljb25zKToKKyAgICAgICAgKiB0ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3
L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcDoKKyAgICAgICAgRml4dXAgdG8gdXNlIHRoZSBj
b21tb24gdGVzdCBmdW5jdGlvbnMuCisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6
Y2xlYW51cFRlc3RDYXNlKToKKyAgICAgICAgKHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpiYXNp
Y1Byb3BlcnRpZXMpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6Omhpc3RvcnlO
YXYpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmxvYWRFcnJvcik6CisgICAg
ICAgICogdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHRzdF9R
V2ViRnJhbWUpOgorICAgICAgICAodHN0X1FXZWJGcmFtZTo6aW5pdCk6CisgICAgICAgICh0c3Rf
UVdlYkZyYW1lOjpjbGVhbnVwKToKKyAgICAgICAgKGdldEltYWdlKToKKyAgICAgICAgKHRzdF9R
V2ViRnJhbWU6OmR5bmFtaWNhbGx5Q2hhbmdpbmdGYXZpY29uKToKKyAgICAgICAgKHRzdF9RV2Vi
RnJhbWU6Omljb25DaGFuZ2VkV2l0aG91dERCKToKKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUv
dHN0X3F3ZWJmcmFtZS5xcmM6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdl
LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViUGFnZSk6CisgICAgICAgICogdGVzdHMvdGVzdHMucHJp
OgorICAgICAgICAqIHRlc3RzL3V0aWwuY3BwOiBBZGRlZC4KKyAgICAgICAgbW92ZWQgbG9jYWwg
c3RvcmFnZSByZWxhdGVkIGZ1bmN0aW9ucyBvdmVyIGZyb20KKyAgICAgICAgdGVzdHMvcXdlYnBh
Z2UvdHN0X3F3ZWJwYWdlLmNwcAorICAgICAgICAod2FpdEZvclNpZ25hbCk6CisgICAgICAgICh0
bXBEaXJQYXRoKToKKyAgICAgICAgKHJlbW92ZVJlY3Vyc2l2ZSk6CisgICAgICAgICogdGVzdHMv
dXRpbC5oOgorCiAyMDEyLTA4LTE0ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5v
a2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBmYWlsaW5nIHRzdF9RV2ViUGFnZTo6ZmluZFRl
eHQgdW5pdCB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3
ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmlu
ZGV4IDNlOGFiYmFkOWQ4MTg5YmY2YzlhMmIzZmRiMDNjOWY5Zjg2YTAyYTYuLmU0NDY3OTU3NjJi
YzNkMmI2ZmQyMWNiZDhmM2NiMDg0YzU5YzliM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3Fn
cmFwaGljc3dlYnZpZXcuY3BwCkBAIC0yMDgsNiArMjA4LDggQEAgdm9pZCBRR3JhcGhpY3NXZWJW
aWV3UHJpdmF0ZTo6X3Ffc2NhbGVDaGFuZ2VkKCkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8g
YmUgbG9hZGVkLCB5b3Ugd2lsbCBuZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAg
ICB1c2luZyBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3Rl
IFRoaXMgc2lnbmFsIHdpbGwgbm90IGJlIGVtaXR0ZWQgaWYgdGhlIGljb24gZGF0YWJhc2UgaXMg
ZGlzYWJsZWQuCisKICAgICBcc2EgaWNvbigpLCBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFz
ZVBhdGgoKQogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggMjJlNDdjNTVk
YjBjNjFmNGY5MGY1MzBlODE3ZGU3ZjFmZGQ5MDg1ZC4uNTRjZWYyYzNiZGUzYzhlODU4YmYzNDky
YzAxOTNiN2MxMzNiNWE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC0xNjEz
LDcgKzE2MTMsMTAgQEAgUVdlYkZyYW1lKiBRV2ViRnJhbWVQcml2YXRlOjpraXQoY29uc3QgV2Vi
Q29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHRo
ZSBpY29uICgiZmF2aWNvbiIpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZnJhbWUKICAgaGFzIGJlZW4g
bG9hZGVkLgogCi0gIFxzYSBpY29uKCkKKyAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUg
ZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZAorICAoc2VlIFxse1FXZWJT
ZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpfXtzZXRJY29uRGF0YWJhc2VQYXRoKCl9KS4K
KworICBcc2EgaWNvbigpLCBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKQogKi8K
IAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKaW5kZXggMDM2YzhlYTJlYjY2Y2E4NjI5
YjQ3NTYzZmUyNjY3ZWViYjM4YzA4Mi4uOTg2MWI0MTdiZThmYzQ3MTk1MGVkODI4MGNjMmVlN2Q2
MDdhMzI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcApAQCAtMTA3Nyw2ICsxMDc3LDgg
QEAgdm9pZCBRV2ViVmlldzo6Y2hhbmdlRXZlbnQoUUV2ZW50ICplKQogICAgIEluIG9yZGVyIGZv
ciBpY29ucyB0byBiZSBsb2FkZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0YWJh
c2UgcGF0aAogICAgIHVzaW5nIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpLgog
CisgICAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBk
YXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0
SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCBhMTcwMzM2MjU0ZDAw
YTg5MDlhMzg3MDg4ZWJlOTZiNzQ1MjQ1OTk3Li43YTRmOGUzZDQ0YTQ4ZThkMmFjNzEyZDIxYzg5
OWFjZTM3NmUxMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTQ2MiwxNCArNDYyLDE0IEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5n
V2l0aERpcmVjdGlvbiYgdGl0CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hE
aWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHsKKyAgICBBU1NFUlQobV9mcmFtZSk7
CiAgICAgaWYgKGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcykKICAgICAgICAgcHJpbnRmKCIlcyAt
IGRpZENoYW5nZUljb25zXG4iLCBxUHJpbnRhYmxlKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KG1fZnJhbWUpKSk7CiAKICAgICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIEZJWE1FOiBJbiBvcmRlciB0byBnZXQgbm90aWZpZWQgb2YgaWNvbiBV
UkxTJyBjaGFuZ2VzLCBhZGQgYSBub3RpZmljYXRpb24uCi0gICAgLy8gZW1pdCBpY29uc0NoYW5n
ZWQoKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT5zdGFydExvYWRlcigpOwogfQog
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmll
dy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IDM2MjNj
NmEzZmMyYTQxYjlkMDE5MmIxMWMzMDRiMTM2YzkxNWI0ZWYuLjU4MmRhMDA0MzVmYzNiNTZiYmU1
YjRhZWZmMDczYjIxNTJjZDYyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3
ZWJ2aWV3LmNwcApAQCAtNDQsMTIgKzQ0LDYgQEAgcHJpdmF0ZSBzbG90czoKIAogcHJpdmF0ZToK
ICAgICB2b2lkIGNoZWNrTm9FcnJvcnMoY29uc3QgUURlY2xhcmF0aXZlQ29tcG9uZW50Jik7Ci0g
ICAgUVN0cmluZyB0bXBEaXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgc3RhdGljIFFTdHJpbmcg
dG1wZCA9IFFEaXI6OnRlbXBQYXRoKCkgKyAiL3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LSIKLSAg
ICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0cmluZyhRTGF0aW4x
U3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJuIHRtcGQ7Ci0gICAgfQog
fTsKIAogdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3KCkK
QEAgLTcwLDE4ICs2NCw2IEBAIHN0YXRpYyBRU3RyaW5nIGZpbGVDb250ZW50cyhjb25zdCBRU3Ry
aW5nJiBmaWxlbmFtZSkKICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbVV0ZjgoZmlsZS5yZWFkQWxs
KCkpOwogfQogCi1zdGF0aWMgdm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGly
bmFtZSkKLXsKLSAgICBRRGlyIGRpcihkaXJuYW1lKTsKLSAgICBRRmlsZUluZm9MaXN0IGVudHJp
ZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZpbGVzIHwgUURpcjo6Tm9E
b3RBbmREb3REb3QpKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGVudHJpZXMuY291bnQoKTsg
KytpKQotICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcigpKQotICAgICAgICAgICAgcmVtb3Zl
UmVjdXJzaXZlKGVudHJpZXNbaV0uZmlsZVBhdGgoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGRpci5yZW1vdmUoZW50cmllc1tpXS5maWxlTmFtZSgpKTsKLSAgICBRRGlyKCkucm1kaXIo
ZGlybmFtZSk7Ci19Ci0KIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmluaXRUZXN0Q2Fz
ZSgpCiB7CiAgICAgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKHRtcERpcigpKTsK
QEAgLTkwLDcgKzcyLDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aW5pdFRlc3RD
YXNlKCkKIAogdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6Y2xlYW51cFRlc3RDYXNlKCkK
IHsKLSAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyKCkpOworICAgIHJlbW92ZVJlY3Vyc2l2ZSh0
bXBEaXJQYXRoKCkpOwogfQogCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpiYXNpY1By
b3BlcnRpZXMoKQpAQCAtOTgsNyArODAsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3
OjpiYXNpY1Byb3BlcnRpZXMoKQogICAgIFFEZWNsYXJhdGl2ZUVuZ2luZSBlbmdpbmU7CiAgICAg
UURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5lLCBRVXJsKCJxcmM6Ly8vcmVz
b3VyY2VzL2Jhc2ljLnFtbCIpKTsKICAgICBjaGVja05vRXJyb3JzKGNvbXBvbmVudCk7Ci0gICAg
UVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXIoKSk7CisgICAgUVdl
YlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXJQYXRoKCkpOwogCiAgICAg
UU9iamVjdCogd3YgPSBjb21wb25lbnQuY3JlYXRlKCk7CiAgICAgUVZFUklGWSh3dik7CkBAIC0x
NjQsNyArMTQ2LDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aGlzdG9yeU5hdigp
CiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVDb21wb25l
bnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvYmFzaWMucW1sIikp
OwogICAgIGNoZWNrTm9FcnJvcnMoY29tcG9uZW50KTsKLSAgICBRV2ViU2V0dGluZ3M6OmVuYWJs
ZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpcigpKTsKKyAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBl
cnNpc3RlbnRTdG9yYWdlKHRtcERpclBhdGgoKSk7CiAKICAgICBRT2JqZWN0KiB3diA9IGNvbXBv
bmVudC5jcmVhdGUoKTsKICAgICBRVkVSSUZZKHd2KTsKQEAgLTI1Nyw3ICsyMzksNyBAQCB2b2lk
IHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IoKQogICAgIFFEZWNsYXJhdGl2ZUVu
Z2luZSBlbmdpbmU7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5l
LCBRVXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2xvYWRFcnJvci5xbWwiKSk7CiAgICAgY2hlY2tOb0Vy
cm9ycyhjb21wb25lbnQpOwotICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3Jh
Z2UodG1wRGlyKCkpOworICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2Uo
dG1wRGlyUGF0aCgpKTsKIAogICAgIFFPYmplY3QqIHd2ID0gY29tcG9uZW50LmNyZWF0ZSgpOwog
ICAgIFFWRVJJRlkod3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2Vi
ZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdl
YmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBlNDAxY2ZlYWQzMmQ5
OTFhMjgxNjIxNzFlZDI2ZmRkMjdmMmRmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgaWQ9ImZhdmljb24iIHJlbD0ic2hvcnRjdXQgaWNv
biIgdHlwZT0iaW1hZ2UvcG5nIi8+Cis8L3NjcmlwdD4KKzwvaGVhZD48Ym9keT48L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3
ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZy
YW1lLmNwcAppbmRleCBkN2RiODQ3MjZkYjA1N2YwYTM3YTE2MDQ3ODcxZDY2YjAwYmMyMTc3Li5j
ODZmYzhmZTBmMzAxMTI2YzViOTE0YjA4NDk1Njk5ZWE4YTU2MTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcApAQCAtOTcsNiAr
OTcsOCBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgbG9hZEZpbmlzaGVkQWZ0ZXJOb3RGb3Vu
ZEVycm9yKCk7CiAgICAgdm9pZCBsb2FkSW5TaWduYWxIYW5kbGVyc19kYXRhKCk7CiAgICAgdm9p
ZCBsb2FkSW5TaWduYWxIYW5kbGVycygpOworICAgIHZvaWQgZHluYW1pY2FsbHlDaGFuZ2luZ0Zh
dmljb24oKTsKKyAgICB2b2lkIGljb25DaGFuZ2VkV2l0aG91dERCKCk7CiAKIHByaXZhdGU6CiAg
ICAgUVdlYlZpZXcqIG1fdmlldzsKQEAgLTExOSwxMSArMTIxLDE1IEBAIHZvaWQgdHN0X1FXZWJG
cmFtZTo6aW5pdCgpCiB7CiAgICAgbV92aWV3ID0gbmV3IFFXZWJWaWV3KCk7CiAgICAgbV9wYWdl
ID0gbV92aWV3LT5wYWdlKCk7CisgICAgUURpciBkaXI7CisgICAgZGlyLm1rcGF0aCh0bXBEaXJQ
YXRoKCkpOworICAgIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCh0bXBEaXJQYXRo
KCkpOwogfQogCiB2b2lkIHRzdF9RV2ViRnJhbWU6OmNsZWFudXAoKQogewogICAgIGRlbGV0ZSBt
X3ZpZXc7CisgICAgcmVtb3ZlUmVjdXJzaXZlKHRtcERpclBhdGgoKSk7CiB9CiAKIHZvaWQgdHN0
X1FXZWJGcmFtZTo6c3ltbWV0cmljVXJsKCkKQEAgLTE1NjUsNSArMTU3MSw2NiBAQCB2b2lkIHRz
dF9RV2ViRnJhbWU6OmxvYWRJblNpZ25hbEhhbmRsZXJzKCkKICAgICBRQ09NUEFSRShmcmFtZS0+
dXJsKCksIHVybEZvclNldHRlcik7CiB9CiAKK3N0YXRpYyBRSW1hZ2UgZ2V0SW1hZ2UoY29uc3Qg
UVNpemUmIHNpemUsIFF0OjpHbG9iYWxDb2xvciBjb2xvciwgUUJ5dGVBcnJheSogaW1nRGF0YSkK
K3sKKyAgICBRSW1hZ2UgcmV0KHNpemUsIFFJbWFnZTo6Rm9ybWF0X1JHQjMyKTsKKyAgICByZXQu
ZmlsbChjb2xvcik7CisgICAgUUJ1ZmZlciBidWZmZXIoaW1nRGF0YSk7CisgICAgcmV0LnNhdmUo
JmJ1ZmZlciwgIlBORyIpOworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgdHN0X1FXZWJGcmFt
ZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKQoreworICAgIFFXZWJGcmFtZSogZnJhbWUg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpOworICAgIFFTaWduYWxTcHkgaWNvbkNoYW5nZWRTcHkoZnJh
bWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSk7CisgICAgY29uc3QgUVNpemUgaWNvblNpemUoMTYs
IDE2KTsKKyAgICBjb25zdCBRU3RyaW5nIGpzID0gUUxhdGluMVN0cmluZygiZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2Zhdmljb24nKS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnZGF0YTppbWFnZS9w
bmc7YmFzZTY0LCUxJykiKTsKKworICAgIGZyYW1lLT5sb2FkKFFVcmwoInFyYzovZmF2aWNvbi5o
dG1sIikpOworICAgIHdhaXRGb3JTaWduYWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwg
MTAwMCk7CisKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAwKTsKKyAgICBR
VkVSSUZZKGZyYW1lLT5pY29uKCkuaXNOdWxsKCkpOworCisgICAgUUJ5dGVBcnJheSBpbWdEYXRh
OworICAgIFFJbWFnZSBibHVlSW1hZ2UgPSBnZXRJbWFnZShpY29uU2l6ZSwgUXQ6OmJsdWUsICZp
bWdEYXRhKTsKKyAgICBmcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KGpzLmFyZyhpbWdEYXRhLnRv
QmFzZTY0KCkuZGF0YSgpKSk7CisgICAgd2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGljb25D
aGFuZ2VkKCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAx
KTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZKCFm
cmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNFbXB0eSgpKTsKKworICAgIFFJbWFnZSBp
Y29uICA9IGZyYW1lLT5pY29uKCkucGl4bWFwKGljb25TaXplKS50b0ltYWdlKCk7CisgICAgUUNP
TVBBUkUoaWNvbiwgYmx1ZUltYWdlKTsKKworICAgIFFJbWFnZSByZWRJbWFnZSA9IGdldEltYWdl
KGljb25TaXplLCBRdDo6cmVkLCAmaW1nRGF0YSk7CisgICAgZnJhbWUtPmV2YWx1YXRlSmF2YVNj
cmlwdChqcy5hcmcoaW1nRGF0YS50b0Jhc2U2NCgpLmRhdGEoKSkpOworCisgICAgd2FpdEZvclNp
Z25hbChmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShp
Y29uQ2hhbmdlZFNweS5jb3VudCgpLCAyKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlz
TnVsbCgpKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNF
bXB0eSgpKTsKKworICAgIGljb24gID0gZnJhbWUtPmljb24oKS5waXhtYXAoaWNvblNpemUpLnRv
SW1hZ2UoKTsKKyAgICBRQ09NUEFSRShpY29uLCByZWRJbWFnZSk7Cit9CisKK3ZvaWQgdHN0X1FX
ZWJGcmFtZTo6aWNvbkNoYW5nZWRXaXRob3V0REIoKQoreworICAgIFFXZWJTZXR0aW5nczo6c2V0
SWNvbkRhdGFiYXNlUGF0aChRU3RyaW5nKCkpOworICAgIFFXZWJQYWdlKiB0ZXN0UGFnZSA9IG5l
dyBRV2ViUGFnZSh0aGlzKTsKKyAgICBRV2ViRnJhbWUqIG1haW5GcmFtZSA9IHRlc3RQYWdlLT5t
YWluRnJhbWUoKTsKKyAgICBRU2lnbmFsU3B5IGljb25DaGFuZ2VkU3B5KG1haW5GcmFtZSwgU0lH
TkFMKGljb25DaGFuZ2VkKCkpKTsKKyAgICBRU2lnbmFsU3B5IGxvYWRGaW5pc2hlZFNweShtYWlu
RnJhbWUsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpKTsKKyAgICBtYWluRnJhbWUtPmxvYWQo
UVVybCgicXJjOi9mYXZpY29uLmh0bWwiKSk7CisgICAgd2FpdEZvclNpZ25hbChtYWluRnJhbWUs
IFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7CisgICAgaWYgKGxvYWRGaW5pc2hlZFNweS5j
b3VudCgpIDwgMSkKKyAgICAgICAgd2FpdEZvclNpZ25hbChtYWluRnJhbWUsIFNJR05BTChsb2Fk
RmluaXNoZWQoYm9vbCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3Vu
dCgpLCAwKTsKKyAgICBRVkVSSUZZKG1haW5GcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKK30KKwor
CiBRVEVTVF9NQUlOKHRzdF9RV2ViRnJhbWUpCiAjaW5jbHVkZSAidHN0X3F3ZWJmcmFtZS5tb2Mi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZy
YW1lLnFyYyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUu
cXJjCmluZGV4IDJhN2QwYjljMjgyNWZmODUwNWFhNjFhZDg3NTNmYzU2MWQ2MjFlY2IuLjgzZDJh
ZDgwNmM2MTI2YWI2ODY0OWM0NGMzMWUzYTcwOGUzY2ZjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjCkBAIC0xLDEwICsxLDEx
IEBACi08IURPQ1RZUEUgUkNDPjxSQ0MgdmVyc2lvbj0iMS4wIj4KLTxxcmVzb3VyY2UgcHJlZml4
PSIvIj4KLTxmaWxlIGFsaWFzPSJpbWFnZS5wbmciPnJlc291cmNlcy9pbWFnZS5wbmc8L2ZpbGU+
Ci08ZmlsZSBhbGlhcz0ic3R5bGUuY3NzIj5yZXNvdXJjZXMvc3R5bGUuY3NzPC9maWxlPgotPGZp
bGUgYWxpYXM9InRlc3QxLmh0bWwiPnJlc291cmNlcy90ZXN0MS5odG1sPC9maWxlPgotPGZpbGUg
YWxpYXM9InRlc3QyLmh0bWwiPnJlc291cmNlcy90ZXN0Mi5odG1sPC9maWxlPgotPGZpbGUgYWxp
YXM9InRlc3RpZnJhbWUuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUuaHRtbDwvZmlsZT4KLTxm
aWxlIGFsaWFzPSJ0ZXN0aWZyYW1lMi5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZTIuaHRtbDwv
ZmlsZT4KLTwvcXJlc291cmNlPgorPFJDQz4KKyAgICA8cXJlc291cmNlIHByZWZpeD0iLyI+Cisg
ICAgICAgIDxmaWxlIGFsaWFzPSJpbWFnZS5wbmciPnJlc291cmNlcy9pbWFnZS5wbmc8L2ZpbGU+
CisgICAgICAgIDxmaWxlIGFsaWFzPSJzdHlsZS5jc3MiPnJlc291cmNlcy9zdHlsZS5jc3M8L2Zp
bGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0ZXN0MS5odG1sIj5yZXNvdXJjZXMvdGVzdDEuaHRt
bDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3QyLmh0bWwiPnJlc291cmNlcy90ZXN0
Mi5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdGlmcmFtZS5odG1sIj5yZXNv
dXJjZXMvdGVzdGlmcmFtZS5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdGlm
cmFtZTIuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUyLmh0bWw8L2ZpbGU+CisgICAgICAgIDxm
aWxlIGFsaWFzPSJmYXZpY29uLmh0bWwiPnJlc291cmNlcy9mYXZpY29uLmh0bWw8L2ZpbGU+Cisg
ICAgPC9xcmVzb3VyY2U+CiA8L1JDQz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdl
YnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCA0MTg4ODZkYWVjMjhlZjcyYzgwN2JlODMyMGU3
NTRiNjZhYzA2MTQ4Li5mNmZkZDBmN2ZkZTgyNDc5NGM3MDZjZWU2MzIwZjg0MWQ4MzBkMTg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3Bw
CkBAIC00NiwxNyArNDYsNiBAQAogI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8cWlt
YWdld3JpdGVyLmg+CiAKLXN0YXRpYyB2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3RyaW5n
JiBkaXJuYW1lKQotewotICAgIFFEaXIgZGlyKGRpcm5hbWUpOwotICAgIFFGaWxlSW5mb0xpc3Qg
ZW50cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMgfCBRRGly
OjpOb0RvdEFuZERvdERvdCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllcy5jb3Vu
dCgpOyArK2kpCi0gICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyKCkpCi0gICAgICAgICAgICBy
ZW1vdmVSZWN1cnNpdmUoZW50cmllc1tpXS5maWxlUGF0aCgpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzW2ldLmZpbGVOYW1lKCkpOwotICAgIFFEaXIoKS5y
bWRpcihkaXJuYW1lKTsKLX0KIAogY2xhc3MgRXZlbnRTcHkgOiBwdWJsaWMgUU9iamVjdCwgcHVi
bGljIFFMaXN0PFFFdmVudDo6VHlwZT4KIHsKQEAgLTE3NCwxMiArMTYzLDYgQEAgcHJpdmF0ZSBz
bG90czoKIHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKICAgICBRV2ViUGFnZSogbV9w
YWdlOwotICAgIFFTdHJpbmcgdG1wRGlyUGF0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0
aWMgUVN0cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3F3ZWJwYWdlLSIKLSAg
ICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0cmluZyhRTGF0aW4x
U3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJuIHRtcGQ7Ci0gICAgfQog
fTsKIAogdHN0X1FXZWJQYWdlOjp0c3RfUVdlYlBhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC90ZXN0cy90ZXN0cy5wcmkgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnBy
aQppbmRleCA1NDM3YmFhY2M5Y2FiYWM2MTNkNTc0OTE3ZjI0MzQwZDgzMmJiYWFlLi4wNzk1OThi
OWMzZTE3ODNhY2EyMjMzMTk0OGJhZmEyNjc2YjkzN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3Rlc3RzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3Rz
LnByaQpAQCAtMTEsNyArMTEsOCBAQCBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVk
aWEpIHsKICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfTVVMVElNRURJQT0xCiB9CiAKLVNPVVJD
RVMgKz0gJCR7VEFSR0VUfS5jcHAKK1NPVVJDRVMgKz0gJCR7VEFSR0VUfS5jcHAgXAorICAgICAg
ICAgICAkJFBXRC91dGlsLmNwcAogSU5DTFVERVBBVEggKz0gXAogICAgICQkUFdEIFwKICAgICAk
JFBXRC8uLi9BcGkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMjgxYzYxOWIz
OWQyOTE2NmFjMWNlYmFhMjgxZmNmZTI1NTIyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3V0aWwuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbmNsdWRlICJ1dGlsLmgiCisKKyNpbmNsdWRlIDxRRGF0ZVRpbWU+CisjaW5jbHVk
ZSA8UURpcj4KKworYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqIG9iaiwgY29uc3QgY2hhciog
c2lnbmFsLCBpbnQgdGltZW91dCkKK3sKKyAgICBRRXZlbnRMb29wIGxvb3A7CisgICAgUU9iamVj
dDo6Y29ubmVjdChvYmosIHNpZ25hbCwgJmxvb3AsIFNMT1QocXVpdCgpKSk7CisgICAgUVRpbWVy
IHRpbWVyOworICAgIFFTaWduYWxTcHkgdGltZW91dFNweSgmdGltZXIsIFNJR05BTCh0aW1lb3V0
KCkpKTsKKyAgICBpZiAodGltZW91dCA+IDApIHsKKyAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgm
dGltZXIsIFNJR05BTCh0aW1lb3V0KCkpLCAmbG9vcCwgU0xPVChxdWl0KCkpKTsKKyAgICAgICAg
dGltZXIuc2V0U2luZ2xlU2hvdCh0cnVlKTsKKyAgICAgICAgdGltZXIuc3RhcnQodGltZW91dCk7
CisgICAgfQorICAgIGxvb3AuZXhlYygpOworICAgIHJldHVybiB0aW1lb3V0U3B5LmlzRW1wdHko
KTsKK30KKworUVN0cmluZyB0bXBEaXJQYXRoKCkKK3sKKyAgICBzdGF0aWMgUVN0cmluZyB0bXBk
ID0gUURpcjo6dGVtcFBhdGgoKSArIFFMYXRpbjFTdHJpbmcoIi90c3RfcXdlYmZyYW1lLSIpCisg
ICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0cmluZyhRTGF0aW4xU3Ry
aW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKKyAgICByZXR1cm4gdG1wZDsKK30KKwordm9pZCByZW1v
dmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGlybmFtZSkKK3sKKyAgICBRRGlyIGRpcihkaXJu
YW1lKTsKKyAgICBRRmlsZUluZm9MaXN0IGVudHJpZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6
RGlycyB8IFFEaXI6OkZpbGVzIHwgUURpcjo6Tm9Eb3RBbmREb3REb3QpKTsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGVudHJpZXMuY291bnQoKTsgKytpKQorICAgICAgICBpZiAoZW50cmllcy5h
dChpKS5pc0RpcigpKQorICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGVudHJpZXMuYXQoaSku
ZmlsZVBhdGgoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpci5yZW1vdmUoZW50cmll
cy5hdChpKS5maWxlTmFtZSgpKTsKKyAgICBRRGlyKCkucm1kaXIoZGlybmFtZSk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvdXRpbC5oCmluZGV4IDI4Njk0NDBjYmM5ZjMxNjE2MjhiMWVlNGE4OTMwYTIyN2E3M2Jl
ZDguLmZhZjg4MThhNjNkOGIxZDliZjIxZWExOTk0NTlkNzA3ZGZkYTAyODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvdXRpbC5oCkBAIC0zOCwxOSArMzgsMzIgQEAKICAqIFxyZXR1cm4gXHAgdHJ1ZSBpZiB0aGUg
cmVxdWVzdGVkIHNpZ25hbCB3YXMgcmVjZWl2ZWQKICAqICAgICAgICAgXHAgZmFsc2Ugb24gdGlt
ZW91dAogICovCi1zdGF0aWMgYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqIG9iaiwgY29uc3Qg
Y2hhciogc2lnbmFsLCBpbnQgdGltZW91dCA9IDEwMDAwKQotewotICAgIFFFdmVudExvb3AgbG9v
cDsKLSAgICBRT2JqZWN0Ojpjb25uZWN0KG9iaiwgc2lnbmFsLCAmbG9vcCwgU0xPVChxdWl0KCkp
KTsKLSAgICBRVGltZXIgdGltZXI7Ci0gICAgUVNpZ25hbFNweSB0aW1lb3V0U3B5KCZ0aW1lciwg
U0lHTkFMKHRpbWVvdXQoKSkpOwotICAgIGlmICh0aW1lb3V0ID4gMCkgewotICAgICAgICBRT2Jq
ZWN0Ojpjb25uZWN0KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSksICZsb29wLCBTTE9UKHF1aXQo
KSkpOwotICAgICAgICB0aW1lci5zZXRTaW5nbGVTaG90KHRydWUpOwotICAgICAgICB0aW1lci5z
dGFydCh0aW1lb3V0KTsKLSAgICB9Ci0gICAgbG9vcC5leGVjKCk7Ci0gICAgcmV0dXJuIHRpbWVv
dXRTcHkuaXNFbXB0eSgpOwotfQorYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqLCBjb25zdCBj
aGFyKiBzaWduYWwsIGludCB0aW1lb3V0ID0gMTAwMDApOwogCiAjZGVmaW5lIFdfUVNLSVAoYSwg
YikgUVNLSVAoYSkKKworLyoqCisgKiBSZXR1cm5zIGEgdGVtcG9yYXJ5IHBhdGggdGhhdCBjYW4g
YmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZldGltZSBvZiB0aGUgdGVzdC4KKyAqIFRoaXMgY2Fu
IGJlIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UgdGVzdGluZyBuZWVkcy4KKyAqLworCitRU3RyaW5n
IHRtcERpclBhdGgoKTsKKworLyoqCisgKiBVc2VkIHRvIHJlbW92ZSB0ZW1wb3JhcnkgbG9jYWwg
c3RvcmFnZSBkaXJlY3RvcnkKKyAqLworCit2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3Ry
aW5nJiBkaXJuYW1lKTsKKworLyoqCisgKiBSZXR1cm5zIGEgdGVtcG9yYXJ5IHBhdGggdGhhdCBj
YW4gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZldGltZSBvZiB0aGUgdGVzdC4KKyAqIFRoaXMg
Y2FuIGJlIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UgdGVzdGluZyBuZWVkcy4KKyAqLworCitRU3Ry
aW5nIHRtcERpclBhdGgoKTsKKworLyoqCisgKiBVc2VkIHRvIHJlbW92ZSB0ZW1wb3JhcnkgbG9j
YWwgc3RvcmFnZSBkaXJlY3RvcnkKKyAqLworCit2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBR
U3RyaW5nJiBkaXJuYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158811</attachid>
            <date>2012-08-16 07:10:04 -0700</date>
            <delta_ts>2012-08-16 10:00:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20120816161231.patch</filename>
            <type>text/plain</type>
            <size>17931</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDFjYjFhYWU2NmU5
MTBkMTExNzZmYTBhYjgwZjM5Zjc4ZDU4MmIyY2EuLmM4Y2E5NWM2MzE3NThkOWZlMjU5NmJjODc2
MzBmYTZkNTJlZDFiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgt
MTAgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0
XSBGYXZpY29ucyBjYW4ndCBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMzcKKworICAgICAgICBTaW1wbHkg
ZW1pdCB0aGUgaWNvbkNoYW5nZWQgc2lnbmFsIG9uIHRoZSBRV2ViRnJhbWUKKyAgICAgICAgd2hl
biB0aGUgaWNvbiBpcyBjaGFuZ2VkLgorCisgICAgICAgIEF1dG90ZXN0IGFkZGVkIHRvIHRzdF9R
V2ViRnJhbWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHA6IEFkZCBhIG5vdGUgYWJvdXQKKyAgICAgICAg
dGhlIGNvbmRpdGlvbnMgd2hlbiB0aGUgc2lnbmFsIHdvbid0IGJlIGVtaXR0ZWQKKyAgICAgICAg
KiBBcGkvcXdlYmZyYW1lLmNwcDogRGl0dG8uCisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZENoYW5n
ZUljb25zKToKKyAgICAgICAgKiB0ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFy
YXRpdmV3ZWJ2aWV3LmNwcDoKKyAgICAgICAgRml4dXAgdG8gdXNlIHRoZSBjb21tb24gdGVzdCBm
dW5jdGlvbnMuCisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6Y2xlYW51cFRlc3RD
YXNlKToKKyAgICAgICAgKHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpiYXNpY1Byb3BlcnRpZXMp
OgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6Omhpc3RvcnlOYXYpOgorICAgICAg
ICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmxvYWRFcnJvcik6CisgICAgICAgICogdGVzdHMv
cXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHRzdF9RV2ViRnJhbWUpOgor
ICAgICAgICAodHN0X1FXZWJGcmFtZTo6aW5pdCk6CisgICAgICAgICh0c3RfUVdlYkZyYW1lOjpj
bGVhbnVwKToKKyAgICAgICAgKGdldEltYWdlKToKKyAgICAgICAgKHRzdF9RV2ViRnJhbWU6OmR5
bmFtaWNhbGx5Q2hhbmdpbmdGYXZpY29uKToKKyAgICAgICAgKHRzdF9RV2ViRnJhbWU6Omljb25D
aGFuZ2VkV2l0aG91dERCKToKKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFt
ZS5xcmM6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAg
ICAgKHRzdF9RV2ViUGFnZSk6CisgICAgICAgICogdGVzdHMvdGVzdHMucHJpOgorICAgICAgICAq
IHRlc3RzL3V0aWwuY3BwOiBBZGRlZC4KKyAgICAgICAgbW92ZWQgbG9jYWwgc3RvcmFnZSByZWxh
dGVkIGZ1bmN0aW9ucyBvdmVyIGZyb20KKyAgICAgICAgdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJw
YWdlLmNwcAorICAgICAgICAod2FpdEZvclNpZ25hbCk6CisgICAgICAgICh0bXBEaXJQYXRoKToK
KyAgICAgICAgKHJlbW92ZVJlY3Vyc2l2ZSk6CisgICAgICAgICogdGVzdHMvdXRpbC5oOgorCiAy
MDEyLTA4LTE0ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAog
ICAgICAgICBbUXRdIEZpeCBmYWlsaW5nIHRzdF9RV2ViUGFnZTo6ZmluZFRleHQgdW5pdCB0ZXN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4IDNlOGFiYmFk
OWQ4MTg5YmY2YzlhMmIzZmRiMDNjOWY5Zjg2YTAyYTYuLmU0NDY3OTU3NjJiYzNkMmI2ZmQyMWNi
ZDhmM2NiMDg0YzU5YzliM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFw
aGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZp
ZXcuY3BwCkBAIC0yMDgsNiArMjA4LDggQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
X3Ffc2NhbGVDaGFuZ2VkKCkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8gYmUgbG9hZGVkLCB5
b3Ugd2lsbCBuZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAgICB1c2luZyBRV2Vi
U2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3RlIFRoaXMgc2lnbmFs
IHdpbGwgbm90IGJlIGVtaXR0ZWQgaWYgdGhlIGljb24gZGF0YWJhc2UgaXMgZGlzYWJsZWQuCisK
ICAgICBcc2EgaWNvbigpLCBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKQogKi8K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggMjJlNDdjNTVkYjBjNjFmNGY5MGY1
MzBlODE3ZGU3ZjFmZGQ5MDg1ZC4uNTRjZWYyYzNiZGUzYzhlODU4YmYzNDkyYzAxOTNiN2MxMzNi
NWE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC0xNjEzLDcgKzE2MTMsMTAg
QEAgUVdlYkZyYW1lKiBRV2ViRnJhbWVQcml2YXRlOjpraXQoY29uc3QgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSkKICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHRoZSBpY29uICgiZmF2
aWNvbiIpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZnJhbWUKICAgaGFzIGJlZW4gbG9hZGVkLgogCi0g
IFxzYSBpY29uKCkKKyAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBpZiB0
aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZAorICAoc2VlIFxse1FXZWJTZXR0aW5nczo6c2V0
SWNvbkRhdGFiYXNlUGF0aCgpfXtzZXRJY29uRGF0YWJhc2VQYXRoKCl9KS4KKworICBcc2EgaWNv
bigpLCBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKQogKi8KIAogLyohCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2Vidmlldy5jcHAKaW5kZXggMDM2YzhlYTJlYjY2Y2E4NjI5YjQ3NTYzZmUyNjY3
ZWViYjM4YzA4Mi4uOTg2MWI0MTdiZThmYzQ3MTk1MGVkODI4MGNjMmVlN2Q2MDdhMzI5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcApAQCAtMTA3Nyw2ICsxMDc3LDggQEAgdm9pZCBRV2Vi
Vmlldzo6Y2hhbmdlRXZlbnQoUUV2ZW50ICplKQogICAgIEluIG9yZGVyIGZvciBpY29ucyB0byBi
ZSBsb2FkZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0YWJhc2UgcGF0aAogICAg
IHVzaW5nIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpLgogCisgICAgXG5vdGUg
VGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBk
aXNhYmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNl
UGF0aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCBhMTcwMzM2MjU0ZDAwYTg5MDlhMzg3MDg4
ZWJlOTZiNzQ1MjQ1OTk3Li4xNzNiNzk4ZGYyZjUzZGM4ZGE1NWM5ZjIwMmM4M2Q0M2E2Nzc5ODcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKQEAgLTQ2OCw4ICs0NjgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCiAgICAgaWYg
KCFtX3dlYkZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogSW4gb3JkZXIg
dG8gZ2V0IG5vdGlmaWVkIG9mIGljb24gVVJMUycgY2hhbmdlcywgYWRkIGEgbm90aWZpY2F0aW9u
LgotICAgIC8vIGVtaXQgaWNvbnNDaGFuZ2VkKCk7CisgICAgZW1pdCBtX3dlYkZyYW1lLT5pY29u
Q2hhbmdlZCgpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRl
Y2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcu
Y3BwCmluZGV4IDM2MjNjNmEzZmMyYTQxYjlkMDE5MmIxMWMzMDRiMTM2YzkxNWI0ZWYuLjU4MmRh
MDA0MzVmYzNiNTZiYmU1YjRhZWZmMDczYjIxNTJjZDYyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3Rz
dF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDQsMTIgKzQ0LDYgQEAgcHJpdmF0ZSBzbG90
czoKIAogcHJpdmF0ZToKICAgICB2b2lkIGNoZWNrTm9FcnJvcnMoY29uc3QgUURlY2xhcmF0aXZl
Q29tcG9uZW50Jik7Ci0gICAgUVN0cmluZyB0bXBEaXIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
c3RhdGljIFFTdHJpbmcgdG1wZCA9IFFEaXI6OnRlbXBQYXRoKCkgKyAiL3RzdF9xZGVjbGFyYXRp
dmV3ZWJ2aWV3LSIKLSAgICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50
b1N0cmluZyhRTGF0aW4xU3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJu
IHRtcGQ7Ci0gICAgfQogfTsKIAogdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnRzdF9RRGVjbGFy
YXRpdmVXZWJWaWV3KCkKQEAgLTcwLDE4ICs2NCw2IEBAIHN0YXRpYyBRU3RyaW5nIGZpbGVDb250
ZW50cyhjb25zdCBRU3RyaW5nJiBmaWxlbmFtZSkKICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbVV0
ZjgoZmlsZS5yZWFkQWxsKCkpOwogfQogCi1zdGF0aWMgdm9pZCByZW1vdmVSZWN1cnNpdmUoY29u
c3QgUVN0cmluZyYgZGlybmFtZSkKLXsKLSAgICBRRGlyIGRpcihkaXJuYW1lKTsKLSAgICBRRmls
ZUluZm9MaXN0IGVudHJpZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZp
bGVzIHwgUURpcjo6Tm9Eb3RBbmREb3REb3QpKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGVu
dHJpZXMuY291bnQoKTsgKytpKQotICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcigpKQotICAg
ICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGVudHJpZXNbaV0uZmlsZVBhdGgoKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGRpci5yZW1vdmUoZW50cmllc1tpXS5maWxlTmFtZSgpKTsKLSAg
ICBRRGlyKCkucm1kaXIoZGlybmFtZSk7Ci19Ci0KIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZp
ZXc6OmluaXRUZXN0Q2FzZSgpCiB7CiAgICAgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQ
YXRoKHRtcERpcigpKTsKQEAgLTkwLDcgKzcyLDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2Vi
Vmlldzo6aW5pdFRlc3RDYXNlKCkKIAogdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6Y2xl
YW51cFRlc3RDYXNlKCkKIHsKLSAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyKCkpOworICAgIHJl
bW92ZVJlY3Vyc2l2ZSh0bXBEaXJQYXRoKCkpOwogfQogCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVX
ZWJWaWV3OjpiYXNpY1Byb3BlcnRpZXMoKQpAQCAtOTgsNyArODAsNyBAQCB2b2lkIHRzdF9RRGVj
bGFyYXRpdmVXZWJWaWV3OjpiYXNpY1Byb3BlcnRpZXMoKQogICAgIFFEZWNsYXJhdGl2ZUVuZ2lu
ZSBlbmdpbmU7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5lLCBR
VXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2Jhc2ljLnFtbCIpKTsKICAgICBjaGVja05vRXJyb3JzKGNv
bXBvbmVudCk7Ci0gICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBE
aXIoKSk7CisgICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXJQ
YXRoKCkpOwogCiAgICAgUU9iamVjdCogd3YgPSBjb21wb25lbnQuY3JlYXRlKCk7CiAgICAgUVZF
UklGWSh3dik7CkBAIC0xNjQsNyArMTQ2LDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmll
dzo6aGlzdG9yeU5hdigpCiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVj
bGFyYXRpdmVDb21wb25lbnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJj
ZXMvYmFzaWMucW1sIikpOwogICAgIGNoZWNrTm9FcnJvcnMoY29tcG9uZW50KTsKLSAgICBRV2Vi
U2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpcigpKTsKKyAgICBRV2ViU2V0
dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpclBhdGgoKSk7CiAKICAgICBRT2Jq
ZWN0KiB3diA9IGNvbXBvbmVudC5jcmVhdGUoKTsKICAgICBRVkVSSUZZKHd2KTsKQEAgLTI1Nyw3
ICsyMzksNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IoKQogICAg
IFFEZWNsYXJhdGl2ZUVuZ2luZSBlbmdpbmU7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNv
bXBvbmVudCgmZW5naW5lLCBRVXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2xvYWRFcnJvci5xbWwiKSk7
CiAgICAgY2hlY2tOb0Vycm9ycyhjb21wb25lbnQpOwotICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxl
UGVyc2lzdGVudFN0b3JhZ2UodG1wRGlyKCkpOworICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVy
c2lzdGVudFN0b3JhZ2UodG1wRGlyUGF0aCgpKTsKIAogICAgIFFPYmplY3QqIHd2ID0gY29tcG9u
ZW50LmNyZWF0ZSgpOwogICAgIFFWRVJJRlkod3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCBiL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjBlNDAxY2ZlYWQzMmQ5OTFhMjgxNjIxNzFlZDI2ZmRkMjdmMmRmZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0
bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgaWQ9ImZhdmljb24iIHJl
bD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIi8+Cis8L3NjcmlwdD4KKzwvaGVhZD48
Ym9keT48L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9x
d2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJm
cmFtZS90c3RfcXdlYmZyYW1lLmNwcAppbmRleCBkN2RiODQ3MjZkYjA1N2YwYTM3YTE2MDQ3ODcx
ZDY2YjAwYmMyMTc3Li5jODZmYzhmZTBmMzAxMTI2YzViOTE0YjA4NDk1Njk5ZWE4YTU2MTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1l
LmNwcApAQCAtOTcsNiArOTcsOCBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgbG9hZEZpbmlz
aGVkQWZ0ZXJOb3RGb3VuZEVycm9yKCk7CiAgICAgdm9pZCBsb2FkSW5TaWduYWxIYW5kbGVyc19k
YXRhKCk7CiAgICAgdm9pZCBsb2FkSW5TaWduYWxIYW5kbGVycygpOworICAgIHZvaWQgZHluYW1p
Y2FsbHlDaGFuZ2luZ0Zhdmljb24oKTsKKyAgICB2b2lkIGljb25DaGFuZ2VkV2l0aG91dERCKCk7
CiAKIHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKQEAgLTExOSwxMSArMTIxLDE1IEBA
IHZvaWQgdHN0X1FXZWJGcmFtZTo6aW5pdCgpCiB7CiAgICAgbV92aWV3ID0gbmV3IFFXZWJWaWV3
KCk7CiAgICAgbV9wYWdlID0gbV92aWV3LT5wYWdlKCk7CisgICAgUURpciBkaXI7CisgICAgZGly
Lm1rcGF0aCh0bXBEaXJQYXRoKCkpOworICAgIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNl
UGF0aCh0bXBEaXJQYXRoKCkpOwogfQogCiB2b2lkIHRzdF9RV2ViRnJhbWU6OmNsZWFudXAoKQog
ewogICAgIGRlbGV0ZSBtX3ZpZXc7CisgICAgcmVtb3ZlUmVjdXJzaXZlKHRtcERpclBhdGgoKSk7
CiB9CiAKIHZvaWQgdHN0X1FXZWJGcmFtZTo6c3ltbWV0cmljVXJsKCkKQEAgLTE1NjUsNSArMTU3
MSw2NiBAQCB2b2lkIHRzdF9RV2ViRnJhbWU6OmxvYWRJblNpZ25hbEhhbmRsZXJzKCkKICAgICBR
Q09NUEFSRShmcmFtZS0+dXJsKCksIHVybEZvclNldHRlcik7CiB9CiAKK3N0YXRpYyBRSW1hZ2Ug
Z2V0SW1hZ2UoY29uc3QgUVNpemUmIHNpemUsIFF0OjpHbG9iYWxDb2xvciBjb2xvciwgUUJ5dGVB
cnJheSogaW1nRGF0YSkKK3sKKyAgICBRSW1hZ2UgcmV0KHNpemUsIFFJbWFnZTo6Rm9ybWF0X1JH
QjMyKTsKKyAgICByZXQuZmlsbChjb2xvcik7CisgICAgUUJ1ZmZlciBidWZmZXIoaW1nRGF0YSk7
CisgICAgcmV0LnNhdmUoJmJ1ZmZlciwgIlBORyIpOworICAgIHJldHVybiByZXQ7Cit9CisKK3Zv
aWQgdHN0X1FXZWJGcmFtZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKQoreworICAgIFFX
ZWJGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOworICAgIFFTaWduYWxTcHkgaWNv
bkNoYW5nZWRTcHkoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSk7CisgICAgY29uc3QgUVNp
emUgaWNvblNpemUoMTYsIDE2KTsKKyAgICBjb25zdCBRU3RyaW5nIGpzID0gUUxhdGluMVN0cmlu
ZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zhdmljb24nKS5zZXRBdHRyaWJ1dGUoJ2hyZWYn
LCAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCUxJykiKTsKKworICAgIGZyYW1lLT5sb2FkKFFVcmwo
InFyYzovZmF2aWNvbi5odG1sIikpOworICAgIHdhaXRGb3JTaWduYWwoZnJhbWUsIFNJR05BTChp
Y29uQ2hhbmdlZCgpKSwgMTAwMCk7CisKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3Vu
dCgpLCAwKTsKKyAgICBRVkVSSUZZKGZyYW1lLT5pY29uKCkuaXNOdWxsKCkpOworCisgICAgUUJ5
dGVBcnJheSBpbWdEYXRhOworICAgIFFJbWFnZSBibHVlSW1hZ2UgPSBnZXRJbWFnZShpY29uU2l6
ZSwgUXQ6OmJsdWUsICZpbWdEYXRhKTsKKyAgICBmcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KGpz
LmFyZyhpbWdEYXRhLnRvQmFzZTY0KCkuZGF0YSgpKSk7CisgICAgd2FpdEZvclNpZ25hbChmcmFt
ZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdl
ZFNweS5jb3VudCgpLCAxKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsK
KyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNFbXB0eSgpKTsK
KworICAgIFFJbWFnZSBpY29uICA9IGZyYW1lLT5pY29uKCkucGl4bWFwKGljb25TaXplKS50b0lt
YWdlKCk7CisgICAgUUNPTVBBUkUoaWNvbiwgYmx1ZUltYWdlKTsKKworICAgIFFJbWFnZSByZWRJ
bWFnZSA9IGdldEltYWdlKGljb25TaXplLCBRdDo6cmVkLCAmaW1nRGF0YSk7CisgICAgZnJhbWUt
PmV2YWx1YXRlSmF2YVNjcmlwdChqcy5hcmcoaW1nRGF0YS50b0Jhc2U2NCgpLmRhdGEoKSkpOwor
CisgICAgd2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpLCAxMDAwKTsK
KyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAyKTsKKyAgICBRVkVSSUZZKCFm
cmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmF2YWls
YWJsZVNpemVzKCkuaXNFbXB0eSgpKTsKKworICAgIGljb24gID0gZnJhbWUtPmljb24oKS5waXht
YXAoaWNvblNpemUpLnRvSW1hZ2UoKTsKKyAgICBRQ09NUEFSRShpY29uLCByZWRJbWFnZSk7Cit9
CisKK3ZvaWQgdHN0X1FXZWJGcmFtZTo6aWNvbkNoYW5nZWRXaXRob3V0REIoKQoreworICAgIFFX
ZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aChRU3RyaW5nKCkpOworICAgIFFXZWJQYWdl
KiB0ZXN0UGFnZSA9IG5ldyBRV2ViUGFnZSh0aGlzKTsKKyAgICBRV2ViRnJhbWUqIG1haW5GcmFt
ZSA9IHRlc3RQYWdlLT5tYWluRnJhbWUoKTsKKyAgICBRU2lnbmFsU3B5IGljb25DaGFuZ2VkU3B5
KG1haW5GcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpKTsKKyAgICBRU2lnbmFsU3B5IGxvYWRG
aW5pc2hlZFNweShtYWluRnJhbWUsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpKTsKKyAgICBt
YWluRnJhbWUtPmxvYWQoUVVybCgicXJjOi9mYXZpY29uLmh0bWwiKSk7CisgICAgd2FpdEZvclNp
Z25hbChtYWluRnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7CisgICAgaWYgKGxv
YWRGaW5pc2hlZFNweS5jb3VudCgpIDwgMSkKKyAgICAgICAgd2FpdEZvclNpZ25hbChtYWluRnJh
bWUsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29u
Q2hhbmdlZFNweS5jb3VudCgpLCAwKTsKKyAgICBRVkVSSUZZKG1haW5GcmFtZS0+aWNvbigpLmlz
TnVsbCgpKTsKK30KKworCiBRVEVTVF9NQUlOKHRzdF9RV2ViRnJhbWUpCiAjaW5jbHVkZSAidHN0
X3F3ZWJmcmFtZS5tb2MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJm
cmFtZS90c3RfcXdlYmZyYW1lLnFyYyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUucXJjCmluZGV4IDJhN2QwYjljMjgyNWZmODUwNWFhNjFhZDg3NTNmYzU2
MWQ2MjFlY2IuLjgzZDJhZDgwNmM2MTI2YWI2ODY0OWM0NGMzMWUzYTcwOGUzY2ZjYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJj
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJj
CkBAIC0xLDEwICsxLDExIEBACi08IURPQ1RZUEUgUkNDPjxSQ0MgdmVyc2lvbj0iMS4wIj4KLTxx
cmVzb3VyY2UgcHJlZml4PSIvIj4KLTxmaWxlIGFsaWFzPSJpbWFnZS5wbmciPnJlc291cmNlcy9p
bWFnZS5wbmc8L2ZpbGU+Ci08ZmlsZSBhbGlhcz0ic3R5bGUuY3NzIj5yZXNvdXJjZXMvc3R5bGUu
Y3NzPC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3QxLmh0bWwiPnJlc291cmNlcy90ZXN0MS5odG1s
PC9maWxlPgotPGZpbGUgYWxpYXM9InRlc3QyLmh0bWwiPnJlc291cmNlcy90ZXN0Mi5odG1sPC9m
aWxlPgotPGZpbGUgYWxpYXM9InRlc3RpZnJhbWUuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUu
aHRtbDwvZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1lMi5odG1sIj5yZXNvdXJjZXMvdGVz
dGlmcmFtZTIuaHRtbDwvZmlsZT4KLTwvcXJlc291cmNlPgorPFJDQz4KKyAgICA8cXJlc291cmNl
IHByZWZpeD0iLyI+CisgICAgICAgIDxmaWxlIGFsaWFzPSJpbWFnZS5wbmciPnJlc291cmNlcy9p
bWFnZS5wbmc8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJzdHlsZS5jc3MiPnJlc291cmNl
cy9zdHlsZS5jc3M8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0ZXN0MS5odG1sIj5yZXNv
dXJjZXMvdGVzdDEuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3QyLmh0bWwi
PnJlc291cmNlcy90ZXN0Mi5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdGlm
cmFtZS5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZS5odG1sPC9maWxlPgorICAgICAgICA8Zmls
ZSBhbGlhcz0idGVzdGlmcmFtZTIuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUyLmh0bWw8L2Zp
bGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJmYXZpY29uLmh0bWwiPnJlc291cmNlcy9mYXZpY29u
Lmh0bWw8L2ZpbGU+CisgICAgPC9xcmVzb3VyY2U+CiA8L1JDQz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCA0MTg4ODZkYWVjMjhl
ZjcyYzgwN2JlODMyMGU3NTRiNjZhYzA2MTQ4Li5mNmZkZDBmN2ZkZTgyNDc5NGM3MDZjZWU2MzIw
Zjg0MWQ4MzBkMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdl
L3RzdF9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwCkBAIC00NiwxNyArNDYsNiBAQAogI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+
CiAjaW5jbHVkZSA8cWltYWdld3JpdGVyLmg+CiAKLXN0YXRpYyB2b2lkIHJlbW92ZVJlY3Vyc2l2
ZShjb25zdCBRU3RyaW5nJiBkaXJuYW1lKQotewotICAgIFFEaXIgZGlyKGRpcm5hbWUpOwotICAg
IFFGaWxlSW5mb0xpc3QgZW50cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURp
cjo6RmlsZXMgfCBRRGlyOjpOb0RvdEFuZERvdERvdCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgZW50cmllcy5jb3VudCgpOyArK2kpCi0gICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyKCkp
Ci0gICAgICAgICAgICByZW1vdmVSZWN1cnNpdmUoZW50cmllc1tpXS5maWxlUGF0aCgpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzW2ldLmZpbGVOYW1lKCkp
OwotICAgIFFEaXIoKS5ybWRpcihkaXJuYW1lKTsKLX0KIAogY2xhc3MgRXZlbnRTcHkgOiBwdWJs
aWMgUU9iamVjdCwgcHVibGljIFFMaXN0PFFFdmVudDo6VHlwZT4KIHsKQEAgLTE3NCwxMiArMTYz
LDYgQEAgcHJpdmF0ZSBzbG90czoKIHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKICAg
ICBRV2ViUGFnZSogbV9wYWdlOwotICAgIFFTdHJpbmcgdG1wRGlyUGF0aCgpIGNvbnN0Ci0gICAg
ewotICAgICAgICBzdGF0aWMgUVN0cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0
X3F3ZWJwYWdlLSIKLSAgICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50
b1N0cmluZyhRTGF0aW4xU3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJu
IHRtcGQ7Ci0gICAgfQogfTsKIAogdHN0X1FXZWJQYWdlOjp0c3RfUVdlYlBhZ2UoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy90ZXN0cy5wcmkgYi9Tb3VyY2UvV2ViS2l0L3F0
L3Rlc3RzL3Rlc3RzLnByaQppbmRleCA1NDM3YmFhY2M5Y2FiYWM2MTNkNTc0OTE3ZjI0MzQwZDgz
MmJiYWFlLi4wNzk1OThiOWMzZTE3ODNhY2EyMjMzMTk0OGJhZmEyNjc2YjkzN2RmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3Rlc3RzLnByaQpAQCAtMTEsNyArMTEsOCBAQCBjb250YWlucyhNT0JJTElUWV9D
T05GSUcsIG11bHRpbWVkaWEpIHsKICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfTVVMVElNRURJ
QT0xCiB9CiAKLVNPVVJDRVMgKz0gJCR7VEFSR0VUfS5jcHAKK1NPVVJDRVMgKz0gJCR7VEFSR0VU
fS5jcHAgXAorICAgICAgICAgICAkJFBXRC91dGlsLmNwcAogSU5DTFVERVBBVEggKz0gXAogICAg
ICQkUFdEIFwKICAgICAkJFBXRC8uLi9BcGkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvdXRpbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZkMjgxYzYxOWIzOWQyOTE2NmFjMWNlYmFhMjgxZmNmZTI1NTIyNzEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuY3BwCkBAIC0wLDAgKzEsNTcgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJ1dGlsLmgiCisKKyNpbmNsdWRlIDxRRGF0
ZVRpbWU+CisjaW5jbHVkZSA8UURpcj4KKworYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqIG9i
aiwgY29uc3QgY2hhciogc2lnbmFsLCBpbnQgdGltZW91dCkKK3sKKyAgICBRRXZlbnRMb29wIGxv
b3A7CisgICAgUU9iamVjdDo6Y29ubmVjdChvYmosIHNpZ25hbCwgJmxvb3AsIFNMT1QocXVpdCgp
KSk7CisgICAgUVRpbWVyIHRpbWVyOworICAgIFFTaWduYWxTcHkgdGltZW91dFNweSgmdGltZXIs
IFNJR05BTCh0aW1lb3V0KCkpKTsKKyAgICBpZiAodGltZW91dCA+IDApIHsKKyAgICAgICAgUU9i
amVjdDo6Y29ubmVjdCgmdGltZXIsIFNJR05BTCh0aW1lb3V0KCkpLCAmbG9vcCwgU0xPVChxdWl0
KCkpKTsKKyAgICAgICAgdGltZXIuc2V0U2luZ2xlU2hvdCh0cnVlKTsKKyAgICAgICAgdGltZXIu
c3RhcnQodGltZW91dCk7CisgICAgfQorICAgIGxvb3AuZXhlYygpOworICAgIHJldHVybiB0aW1l
b3V0U3B5LmlzRW1wdHkoKTsKK30KKworUVN0cmluZyB0bXBEaXJQYXRoKCkKK3sKKyAgICBzdGF0
aWMgUVN0cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArIFFMYXRpbjFTdHJpbmcoIi90c3Rf
cXdlYmZyYW1lLSIpCisgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0
cmluZyhRTGF0aW4xU3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKKyAgICByZXR1cm4gdG1wZDsK
K30KKwordm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGlybmFtZSkKK3sKKyAg
ICBRRGlyIGRpcihkaXJuYW1lKTsKKyAgICBRRmlsZUluZm9MaXN0IGVudHJpZXMoZGlyLmVudHJ5
SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZpbGVzIHwgUURpcjo6Tm9Eb3RBbmREb3REb3Qp
KTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGVudHJpZXMuY291bnQoKTsgKytpKQorICAgICAg
ICBpZiAoZW50cmllcy5hdChpKS5pc0RpcigpKQorICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZl
KGVudHJpZXMuYXQoaSkuZmlsZVBhdGgoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRp
ci5yZW1vdmUoZW50cmllcy5hdChpKS5maWxlTmFtZSgpKTsKKyAgICBRRGlyKCkucm1kaXIoZGly
bmFtZSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuaCBiL1Nv
dXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5oCmluZGV4IDI4Njk0NDBjYmM5ZjMxNjE2MjhiMWVl
NGE4OTMwYTIyN2E3M2JlZDguLmZhZjg4MThhNjNkOGIxZDliZjIxZWExOTk0NTlkNzA3ZGZkYTAy
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5oCkBAIC0zOCwxOSArMzgsMzIgQEAKICAqIFxyZXR1cm4g
XHAgdHJ1ZSBpZiB0aGUgcmVxdWVzdGVkIHNpZ25hbCB3YXMgcmVjZWl2ZWQKICAqICAgICAgICAg
XHAgZmFsc2Ugb24gdGltZW91dAogICovCi1zdGF0aWMgYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmpl
Y3QqIG9iaiwgY29uc3QgY2hhciogc2lnbmFsLCBpbnQgdGltZW91dCA9IDEwMDAwKQotewotICAg
IFFFdmVudExvb3AgbG9vcDsKLSAgICBRT2JqZWN0Ojpjb25uZWN0KG9iaiwgc2lnbmFsLCAmbG9v
cCwgU0xPVChxdWl0KCkpKTsKLSAgICBRVGltZXIgdGltZXI7Ci0gICAgUVNpZ25hbFNweSB0aW1l
b3V0U3B5KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSkpOwotICAgIGlmICh0aW1lb3V0ID4gMCkg
ewotICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSksICZs
b29wLCBTTE9UKHF1aXQoKSkpOwotICAgICAgICB0aW1lci5zZXRTaW5nbGVTaG90KHRydWUpOwot
ICAgICAgICB0aW1lci5zdGFydCh0aW1lb3V0KTsKLSAgICB9Ci0gICAgbG9vcC5leGVjKCk7Ci0g
ICAgcmV0dXJuIHRpbWVvdXRTcHkuaXNFbXB0eSgpOwotfQorYm9vbCB3YWl0Rm9yU2lnbmFsKFFP
YmplY3QqLCBjb25zdCBjaGFyKiBzaWduYWwsIGludCB0aW1lb3V0ID0gMTAwMDApOwogCiAjZGVm
aW5lIFdfUVNLSVAoYSwgYikgUVNLSVAoYSkKKworLyoqCisgKiBSZXR1cm5zIGEgdGVtcG9yYXJ5
IHBhdGggdGhhdCBjYW4gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZldGltZSBvZiB0aGUgdGVz
dC4KKyAqIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UgdGVzdGluZyBuZWVkcy4K
KyAqLworCitRU3RyaW5nIHRtcERpclBhdGgoKTsKKworLyoqCisgKiBVc2VkIHRvIHJlbW92ZSB0
ZW1wb3JhcnkgbG9jYWwgc3RvcmFnZSBkaXJlY3RvcnkKKyAqLworCit2b2lkIHJlbW92ZVJlY3Vy
c2l2ZShjb25zdCBRU3RyaW5nJiBkaXJuYW1lKTsKKworLyoqCisgKiBSZXR1cm5zIGEgdGVtcG9y
YXJ5IHBhdGggdGhhdCBjYW4gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZldGltZSBvZiB0aGUg
dGVzdC4KKyAqIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UgdGVzdGluZyBuZWVk
cy4KKyAqLworCitRU3RyaW5nIHRtcERpclBhdGgoKTsKKworLyoqCisgKiBVc2VkIHRvIHJlbW92
ZSB0ZW1wb3JhcnkgbG9jYWwgc3RvcmFnZSBkaXJlY3RvcnkKKyAqLworCit2b2lkIHJlbW92ZVJl
Y3Vyc2l2ZShjb25zdCBRU3RyaW5nJiBkaXJuYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158847</attachid>
            <date>2012-08-16 10:00:42 -0700</date>
            <delta_ts>2012-09-06 07:18:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20120816190309.patch</filename>
            <type>text/plain</type>
            <size>18201</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDFjYjFhYWU2NmU5
MTBkMTExNzZmYTBhYjgwZjM5Zjc4ZDU4MmIyY2EuLjE1NDNkYmU1NWU0ZjVmYWQ3YzYyMjRjZjNk
MTBmNmQ2M2IyZTM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgt
MTAgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0
XSBGYXZpY29ucyBjYW4ndCBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMzcKKworICAgICAgICBXZSBkaWRu
J3QgdHJpZ2dlciBhIHJlbG9hZCBvZiB0aGUgaWNvbiB3aGVuCisgICAgICAgIG5vdGlmaWVkIGl0
cyBsaW5rIGVsZW1lbnQgY2hhbmdlZCBpbiB0aGUgRE9NLgorCisgICAgICAgIEF1dG90ZXN0IGFk
ZGVkIHRvIHRzdF9RV2ViRnJhbWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHA6IEFkZCBhIG5vdGUgYWJv
dXQKKyAgICAgICAgdGhlIGNvbmRpdGlvbnMgd2hlbiB0aGUgc2lnbmFsIHdvbid0IGJlIGVtaXR0
ZWQKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNwcDogRGl0dG8uCisgICAgICAgICogQXBpL3F3
ZWJ2aWV3LmNwcDogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNw
YXRjaERpZENoYW5nZUljb25zKToKKyAgICAgICAgKiB0ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3
L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcDoKKyAgICAgICAgRml4dXAgdG8gdXNlIHRoZSBj
b21tb24gdGVzdCBmdW5jdGlvbnMuCisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6
Y2xlYW51cFRlc3RDYXNlKToKKyAgICAgICAgKHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpiYXNp
Y1Byb3BlcnRpZXMpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6Omhpc3RvcnlO
YXYpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmxvYWRFcnJvcik6CisgICAg
ICAgICogdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHRzdF9R
V2ViRnJhbWUpOgorICAgICAgICAodHN0X1FXZWJGcmFtZTo6aW5pdCk6CisgICAgICAgICh0c3Rf
UVdlYkZyYW1lOjpjbGVhbnVwKToKKyAgICAgICAgKGdldEltYWdlKToKKyAgICAgICAgKHRzdF9R
V2ViRnJhbWU6OmR5bmFtaWNhbGx5Q2hhbmdpbmdGYXZpY29uKToKKyAgICAgICAgKHRzdF9RV2Vi
RnJhbWU6Omljb25DaGFuZ2VkV2l0aG91dERCKToKKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUv
dHN0X3F3ZWJmcmFtZS5xcmM6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdl
LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViUGFnZSk6CisgICAgICAgICogdGVzdHMvdGVzdHMucHJp
OgorICAgICAgICAqIHRlc3RzL3V0aWwuY3BwOiBBZGRlZC4KKyAgICAgICAgbW92ZWQgbG9jYWwg
c3RvcmFnZSByZWxhdGVkIGZ1bmN0aW9ucyBvdmVyIGZyb20KKyAgICAgICAgdGVzdHMvcXdlYnBh
Z2UvdHN0X3F3ZWJwYWdlLmNwcAorICAgICAgICAod2FpdEZvclNpZ25hbCk6CisgICAgICAgICh0
bXBEaXJQYXRoKToKKyAgICAgICAgKHJlbW92ZVJlY3Vyc2l2ZSk6CisgICAgICAgICogdGVzdHMv
dXRpbC5oOgorCiAyMDEyLTA4LTE0ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5v
a2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBmYWlsaW5nIHRzdF9RV2ViUGFnZTo6ZmluZFRl
eHQgdW5pdCB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3
ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmlu
ZGV4IDNlOGFiYmFkOWQ4MTg5YmY2YzlhMmIzZmRiMDNjOWY5Zjg2YTAyYTYuLmU0NDY3OTU3NjJi
YzNkMmI2ZmQyMWNiZDhmM2NiMDg0YzU5YzliM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3Fn
cmFwaGljc3dlYnZpZXcuY3BwCkBAIC0yMDgsNiArMjA4LDggQEAgdm9pZCBRR3JhcGhpY3NXZWJW
aWV3UHJpdmF0ZTo6X3Ffc2NhbGVDaGFuZ2VkKCkKICAgICBJbiBvcmRlciBmb3IgaWNvbnMgdG8g
YmUgbG9hZGVkLCB5b3Ugd2lsbCBuZWVkIHRvIHNldCBhbiBpY29uIGRhdGFiYXNlIHBhdGgKICAg
ICB1c2luZyBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKS4KIAorICAgIFxub3Rl
IFRoaXMgc2lnbmFsIHdpbGwgbm90IGJlIGVtaXR0ZWQgaWYgdGhlIGljb24gZGF0YWJhc2UgaXMg
ZGlzYWJsZWQuCisKICAgICBcc2EgaWNvbigpLCBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFz
ZVBhdGgoKQogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggMjJlNDdjNTVk
YjBjNjFmNGY5MGY1MzBlODE3ZGU3ZjFmZGQ5MDg1ZC4uNTRjZWYyYzNiZGUzYzhlODU4YmYzNDky
YzAxOTNiN2MxMzNiNWE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC0xNjEz
LDcgKzE2MTMsMTAgQEAgUVdlYkZyYW1lKiBRV2ViRnJhbWVQcml2YXRlOjpraXQoY29uc3QgV2Vi
Q29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKICAgVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHRo
ZSBpY29uICgiZmF2aWNvbiIpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZnJhbWUKICAgaGFzIGJlZW4g
bG9hZGVkLgogCi0gIFxzYSBpY29uKCkKKyAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUg
ZW1pdHRlZCBpZiB0aGUgaWNvbiBkYXRhYmFzZSBpcyBkaXNhYmxlZAorICAoc2VlIFxse1FXZWJT
ZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpfXtzZXRJY29uRGF0YWJhc2VQYXRoKCl9KS4K
KworICBcc2EgaWNvbigpLCBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoKQogKi8K
IAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKaW5kZXggMDM2YzhlYTJlYjY2Y2E4NjI5
YjQ3NTYzZmUyNjY3ZWViYjM4YzA4Mi4uOTg2MWI0MTdiZThmYzQ3MTk1MGVkODI4MGNjMmVlN2Q2
MDdhMzI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcApAQCAtMTA3Nyw2ICsxMDc3LDgg
QEAgdm9pZCBRV2ViVmlldzo6Y2hhbmdlRXZlbnQoUUV2ZW50ICplKQogICAgIEluIG9yZGVyIGZv
ciBpY29ucyB0byBiZSBsb2FkZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0YWJh
c2UgcGF0aAogICAgIHVzaW5nIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCgpLgog
CisgICAgXG5vdGUgVGhpcyBzaWduYWwgd2lsbCBub3QgYmUgZW1pdHRlZCBpZiB0aGUgaWNvbiBk
YXRhYmFzZSBpcyBkaXNhYmxlZC4KKwogICAgIFxzYSBpY29uKCksIFFXZWJTZXR0aW5nczo6c2V0
SWNvbkRhdGFiYXNlUGF0aCgpCiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCBhMTcwMzM2MjU0ZDAw
YTg5MDlhMzg3MDg4ZWJlOTZiNzQ1MjQ1OTk3Li43YTRmOGUzZDQ0YTQ4ZThkMmFjNzEyZDIxYzg5
OWFjZTM3NmUxMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTQ2MiwxNCArNDYyLDE0IEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5n
V2l0aERpcmVjdGlvbiYgdGl0CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hE
aWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHsKKyAgICBBU1NFUlQobV9mcmFtZSk7
CiAgICAgaWYgKGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcykKICAgICAgICAgcHJpbnRmKCIlcyAt
IGRpZENoYW5nZUljb25zXG4iLCBxUHJpbnRhYmxlKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KG1fZnJhbWUpKSk7CiAKICAgICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIEZJWE1FOiBJbiBvcmRlciB0byBnZXQgbm90aWZpZWQgb2YgaWNvbiBV
UkxTJyBjaGFuZ2VzLCBhZGQgYSBub3RpZmljYXRpb24uCi0gICAgLy8gZW1pdCBpY29uc0NoYW5n
ZWQoKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT5zdGFydExvYWRlcigpOwogfQog
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmll
dy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IDM2MjNj
NmEzZmMyYTQxYjlkMDE5MmIxMWMzMDRiMTM2YzkxNWI0ZWYuLjU4MmRhMDA0MzVmYzNiNTZiYmU1
YjRhZWZmMDczYjIxNTJjZDYyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3
ZWJ2aWV3LmNwcApAQCAtNDQsMTIgKzQ0LDYgQEAgcHJpdmF0ZSBzbG90czoKIAogcHJpdmF0ZToK
ICAgICB2b2lkIGNoZWNrTm9FcnJvcnMoY29uc3QgUURlY2xhcmF0aXZlQ29tcG9uZW50Jik7Ci0g
ICAgUVN0cmluZyB0bXBEaXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgc3RhdGljIFFTdHJpbmcg
dG1wZCA9IFFEaXI6OnRlbXBQYXRoKCkgKyAiL3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LSIKLSAg
ICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0cmluZyhRTGF0aW4x
U3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJuIHRtcGQ7Ci0gICAgfQog
fTsKIAogdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3KCkK
QEAgLTcwLDE4ICs2NCw2IEBAIHN0YXRpYyBRU3RyaW5nIGZpbGVDb250ZW50cyhjb25zdCBRU3Ry
aW5nJiBmaWxlbmFtZSkKICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbVV0ZjgoZmlsZS5yZWFkQWxs
KCkpOwogfQogCi1zdGF0aWMgdm9pZCByZW1vdmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGly
bmFtZSkKLXsKLSAgICBRRGlyIGRpcihkaXJuYW1lKTsKLSAgICBRRmlsZUluZm9MaXN0IGVudHJp
ZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZpbGVzIHwgUURpcjo6Tm9E
b3RBbmREb3REb3QpKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGVudHJpZXMuY291bnQoKTsg
KytpKQotICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcigpKQotICAgICAgICAgICAgcmVtb3Zl
UmVjdXJzaXZlKGVudHJpZXNbaV0uZmlsZVBhdGgoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGRpci5yZW1vdmUoZW50cmllc1tpXS5maWxlTmFtZSgpKTsKLSAgICBRRGlyKCkucm1kaXIo
ZGlybmFtZSk7Ci19Ci0KIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmluaXRUZXN0Q2Fz
ZSgpCiB7CiAgICAgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJhc2VQYXRoKHRtcERpcigpKTsK
QEAgLTkwLDcgKzcyLDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aW5pdFRlc3RD
YXNlKCkKIAogdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6Y2xlYW51cFRlc3RDYXNlKCkK
IHsKLSAgICByZW1vdmVSZWN1cnNpdmUodG1wRGlyKCkpOworICAgIHJlbW92ZVJlY3Vyc2l2ZSh0
bXBEaXJQYXRoKCkpOwogfQogCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpiYXNpY1By
b3BlcnRpZXMoKQpAQCAtOTgsNyArODAsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3
OjpiYXNpY1Byb3BlcnRpZXMoKQogICAgIFFEZWNsYXJhdGl2ZUVuZ2luZSBlbmdpbmU7CiAgICAg
UURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5lLCBRVXJsKCJxcmM6Ly8vcmVz
b3VyY2VzL2Jhc2ljLnFtbCIpKTsKICAgICBjaGVja05vRXJyb3JzKGNvbXBvbmVudCk7Ci0gICAg
UVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXIoKSk7CisgICAgUVdl
YlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSh0bXBEaXJQYXRoKCkpOwogCiAgICAg
UU9iamVjdCogd3YgPSBjb21wb25lbnQuY3JlYXRlKCk7CiAgICAgUVZFUklGWSh3dik7CkBAIC0x
NjQsNyArMTQ2LDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aGlzdG9yeU5hdigp
CiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVDb21wb25l
bnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvYmFzaWMucW1sIikp
OwogICAgIGNoZWNrTm9FcnJvcnMoY29tcG9uZW50KTsKLSAgICBRV2ViU2V0dGluZ3M6OmVuYWJs
ZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpcigpKTsKKyAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBl
cnNpc3RlbnRTdG9yYWdlKHRtcERpclBhdGgoKSk7CiAKICAgICBRT2JqZWN0KiB3diA9IGNvbXBv
bmVudC5jcmVhdGUoKTsKICAgICBRVkVSSUZZKHd2KTsKQEAgLTI1Nyw3ICsyMzksNyBAQCB2b2lk
IHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpsb2FkRXJyb3IoKQogICAgIFFEZWNsYXJhdGl2ZUVu
Z2luZSBlbmdpbmU7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50IGNvbXBvbmVudCgmZW5naW5l
LCBRVXJsKCJxcmM6Ly8vcmVzb3VyY2VzL2xvYWRFcnJvci5xbWwiKSk7CiAgICAgY2hlY2tOb0Vy
cm9ycyhjb21wb25lbnQpOwotICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3Jh
Z2UodG1wRGlyKCkpOworICAgIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2Uo
dG1wRGlyUGF0aCgpKTsKIAogICAgIFFPYmplY3QqIHd2ID0gY29tcG9uZW50LmNyZWF0ZSgpOwog
ICAgIFFWRVJJRlkod3YpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2Vi
ZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdl
YmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBlNDAxY2ZlYWQzMmQ5
OTFhMjgxNjIxNzFlZDI2ZmRkMjdmMmRmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYmZyYW1lL3Jlc291cmNlcy9mYXZpY29uLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgaWQ9ImZhdmljb24iIHJlbD0ic2hvcnRjdXQgaWNv
biIgdHlwZT0iaW1hZ2UvcG5nIi8+Cis8L3NjcmlwdD4KKzwvaGVhZD48Ym9keT48L2JvZHk+PC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3
ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZy
YW1lLmNwcAppbmRleCBkN2RiODQ3MjZkYjA1N2YwYTM3YTE2MDQ3ODcxZDY2YjAwYmMyMTc3Li5j
ODZmYzhmZTBmMzAxMTI2YzViOTE0YjA4NDk1Njk5ZWE4YTU2MTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcApAQCAtOTcsNiAr
OTcsOCBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgbG9hZEZpbmlzaGVkQWZ0ZXJOb3RGb3Vu
ZEVycm9yKCk7CiAgICAgdm9pZCBsb2FkSW5TaWduYWxIYW5kbGVyc19kYXRhKCk7CiAgICAgdm9p
ZCBsb2FkSW5TaWduYWxIYW5kbGVycygpOworICAgIHZvaWQgZHluYW1pY2FsbHlDaGFuZ2luZ0Zh
dmljb24oKTsKKyAgICB2b2lkIGljb25DaGFuZ2VkV2l0aG91dERCKCk7CiAKIHByaXZhdGU6CiAg
ICAgUVdlYlZpZXcqIG1fdmlldzsKQEAgLTExOSwxMSArMTIxLDE1IEBAIHZvaWQgdHN0X1FXZWJG
cmFtZTo6aW5pdCgpCiB7CiAgICAgbV92aWV3ID0gbmV3IFFXZWJWaWV3KCk7CiAgICAgbV9wYWdl
ID0gbV92aWV3LT5wYWdlKCk7CisgICAgUURpciBkaXI7CisgICAgZGlyLm1rcGF0aCh0bXBEaXJQ
YXRoKCkpOworICAgIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aCh0bXBEaXJQYXRo
KCkpOwogfQogCiB2b2lkIHRzdF9RV2ViRnJhbWU6OmNsZWFudXAoKQogewogICAgIGRlbGV0ZSBt
X3ZpZXc7CisgICAgcmVtb3ZlUmVjdXJzaXZlKHRtcERpclBhdGgoKSk7CiB9CiAKIHZvaWQgdHN0
X1FXZWJGcmFtZTo6c3ltbWV0cmljVXJsKCkKQEAgLTE1NjUsNSArMTU3MSw2NiBAQCB2b2lkIHRz
dF9RV2ViRnJhbWU6OmxvYWRJblNpZ25hbEhhbmRsZXJzKCkKICAgICBRQ09NUEFSRShmcmFtZS0+
dXJsKCksIHVybEZvclNldHRlcik7CiB9CiAKK3N0YXRpYyBRSW1hZ2UgZ2V0SW1hZ2UoY29uc3Qg
UVNpemUmIHNpemUsIFF0OjpHbG9iYWxDb2xvciBjb2xvciwgUUJ5dGVBcnJheSogaW1nRGF0YSkK
K3sKKyAgICBRSW1hZ2UgcmV0KHNpemUsIFFJbWFnZTo6Rm9ybWF0X1JHQjMyKTsKKyAgICByZXQu
ZmlsbChjb2xvcik7CisgICAgUUJ1ZmZlciBidWZmZXIoaW1nRGF0YSk7CisgICAgcmV0LnNhdmUo
JmJ1ZmZlciwgIlBORyIpOworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgdHN0X1FXZWJGcmFt
ZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24oKQoreworICAgIFFXZWJGcmFtZSogZnJhbWUg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpOworICAgIFFTaWduYWxTcHkgaWNvbkNoYW5nZWRTcHkoZnJh
bWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSk7CisgICAgY29uc3QgUVNpemUgaWNvblNpemUoMTYs
IDE2KTsKKyAgICBjb25zdCBRU3RyaW5nIGpzID0gUUxhdGluMVN0cmluZygiZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2Zhdmljb24nKS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnZGF0YTppbWFnZS9w
bmc7YmFzZTY0LCUxJykiKTsKKworICAgIGZyYW1lLT5sb2FkKFFVcmwoInFyYzovZmF2aWNvbi5o
dG1sIikpOworICAgIHdhaXRGb3JTaWduYWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwg
MTAwMCk7CisKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAwKTsKKyAgICBR
VkVSSUZZKGZyYW1lLT5pY29uKCkuaXNOdWxsKCkpOworCisgICAgUUJ5dGVBcnJheSBpbWdEYXRh
OworICAgIFFJbWFnZSBibHVlSW1hZ2UgPSBnZXRJbWFnZShpY29uU2l6ZSwgUXQ6OmJsdWUsICZp
bWdEYXRhKTsKKyAgICBmcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KGpzLmFyZyhpbWdEYXRhLnRv
QmFzZTY0KCkuZGF0YSgpKSk7CisgICAgd2FpdEZvclNpZ25hbChmcmFtZSwgU0lHTkFMKGljb25D
aGFuZ2VkKCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3VudCgpLCAx
KTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKyAgICBRVkVSSUZZKCFm
cmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNFbXB0eSgpKTsKKworICAgIFFJbWFnZSBp
Y29uICA9IGZyYW1lLT5pY29uKCkucGl4bWFwKGljb25TaXplKS50b0ltYWdlKCk7CisgICAgUUNP
TVBBUkUoaWNvbiwgYmx1ZUltYWdlKTsKKworICAgIFFJbWFnZSByZWRJbWFnZSA9IGdldEltYWdl
KGljb25TaXplLCBRdDo6cmVkLCAmaW1nRGF0YSk7CisgICAgZnJhbWUtPmV2YWx1YXRlSmF2YVNj
cmlwdChqcy5hcmcoaW1nRGF0YS50b0Jhc2U2NCgpLmRhdGEoKSkpOworCisgICAgd2FpdEZvclNp
Z25hbChmcmFtZSwgU0lHTkFMKGljb25DaGFuZ2VkKCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShp
Y29uQ2hhbmdlZFNweS5jb3VudCgpLCAyKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmlz
TnVsbCgpKTsKKyAgICBRVkVSSUZZKCFmcmFtZS0+aWNvbigpLmF2YWlsYWJsZVNpemVzKCkuaXNF
bXB0eSgpKTsKKworICAgIGljb24gID0gZnJhbWUtPmljb24oKS5waXhtYXAoaWNvblNpemUpLnRv
SW1hZ2UoKTsKKyAgICBRQ09NUEFSRShpY29uLCByZWRJbWFnZSk7Cit9CisKK3ZvaWQgdHN0X1FX
ZWJGcmFtZTo6aWNvbkNoYW5nZWRXaXRob3V0REIoKQoreworICAgIFFXZWJTZXR0aW5nczo6c2V0
SWNvbkRhdGFiYXNlUGF0aChRU3RyaW5nKCkpOworICAgIFFXZWJQYWdlKiB0ZXN0UGFnZSA9IG5l
dyBRV2ViUGFnZSh0aGlzKTsKKyAgICBRV2ViRnJhbWUqIG1haW5GcmFtZSA9IHRlc3RQYWdlLT5t
YWluRnJhbWUoKTsKKyAgICBRU2lnbmFsU3B5IGljb25DaGFuZ2VkU3B5KG1haW5GcmFtZSwgU0lH
TkFMKGljb25DaGFuZ2VkKCkpKTsKKyAgICBRU2lnbmFsU3B5IGxvYWRGaW5pc2hlZFNweShtYWlu
RnJhbWUsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpKTsKKyAgICBtYWluRnJhbWUtPmxvYWQo
UVVybCgicXJjOi9mYXZpY29uLmh0bWwiKSk7CisgICAgd2FpdEZvclNpZ25hbChtYWluRnJhbWUs
IFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7CisgICAgaWYgKGxvYWRGaW5pc2hlZFNweS5j
b3VudCgpIDwgMSkKKyAgICAgICAgd2FpdEZvclNpZ25hbChtYWluRnJhbWUsIFNJR05BTChsb2Fk
RmluaXNoZWQoYm9vbCkpLCAxMDAwKTsKKyAgICBRQ09NUEFSRShpY29uQ2hhbmdlZFNweS5jb3Vu
dCgpLCAwKTsKKyAgICBRVkVSSUZZKG1haW5GcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKK30KKwor
CiBRVEVTVF9NQUlOKHRzdF9RV2ViRnJhbWUpCiAjaW5jbHVkZSAidHN0X3F3ZWJmcmFtZS5tb2Mi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZy
YW1lLnFyYyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUu
cXJjCmluZGV4IDJhN2QwYjljMjgyNWZmODUwNWFhNjFhZDg3NTNmYzU2MWQ2MjFlY2IuLjgzZDJh
ZDgwNmM2MTI2YWI2ODY0OWM0NGMzMWUzYTcwOGUzY2ZjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUucXJjCkBAIC0xLDEwICsxLDEx
IEBACi08IURPQ1RZUEUgUkNDPjxSQ0MgdmVyc2lvbj0iMS4wIj4KLTxxcmVzb3VyY2UgcHJlZml4
PSIvIj4KLTxmaWxlIGFsaWFzPSJpbWFnZS5wbmciPnJlc291cmNlcy9pbWFnZS5wbmc8L2ZpbGU+
Ci08ZmlsZSBhbGlhcz0ic3R5bGUuY3NzIj5yZXNvdXJjZXMvc3R5bGUuY3NzPC9maWxlPgotPGZp
bGUgYWxpYXM9InRlc3QxLmh0bWwiPnJlc291cmNlcy90ZXN0MS5odG1sPC9maWxlPgotPGZpbGUg
YWxpYXM9InRlc3QyLmh0bWwiPnJlc291cmNlcy90ZXN0Mi5odG1sPC9maWxlPgotPGZpbGUgYWxp
YXM9InRlc3RpZnJhbWUuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUuaHRtbDwvZmlsZT4KLTxm
aWxlIGFsaWFzPSJ0ZXN0aWZyYW1lMi5odG1sIj5yZXNvdXJjZXMvdGVzdGlmcmFtZTIuaHRtbDwv
ZmlsZT4KLTwvcXJlc291cmNlPgorPFJDQz4KKyAgICA8cXJlc291cmNlIHByZWZpeD0iLyI+Cisg
ICAgICAgIDxmaWxlIGFsaWFzPSJpbWFnZS5wbmciPnJlc291cmNlcy9pbWFnZS5wbmc8L2ZpbGU+
CisgICAgICAgIDxmaWxlIGFsaWFzPSJzdHlsZS5jc3MiPnJlc291cmNlcy9zdHlsZS5jc3M8L2Zp
bGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0ZXN0MS5odG1sIj5yZXNvdXJjZXMvdGVzdDEuaHRt
bDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3QyLmh0bWwiPnJlc291cmNlcy90ZXN0
Mi5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdGlmcmFtZS5odG1sIj5yZXNv
dXJjZXMvdGVzdGlmcmFtZS5odG1sPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdGlm
cmFtZTIuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUyLmh0bWw8L2ZpbGU+CisgICAgICAgIDxm
aWxlIGFsaWFzPSJmYXZpY29uLmh0bWwiPnJlc291cmNlcy9mYXZpY29uLmh0bWw8L2ZpbGU+Cisg
ICAgPC9xcmVzb3VyY2U+CiA8L1JDQz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdl
YnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCA0MTg4ODZkYWVjMjhlZjcyYzgwN2JlODMyMGU3
NTRiNjZhYzA2MTQ4Li5mNmZkZDBmN2ZkZTgyNDc5NGM3MDZjZWU2MzIwZjg0MWQ4MzBkMTg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3Bw
CkBAIC00NiwxNyArNDYsNiBAQAogI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8cWlt
YWdld3JpdGVyLmg+CiAKLXN0YXRpYyB2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3RyaW5n
JiBkaXJuYW1lKQotewotICAgIFFEaXIgZGlyKGRpcm5hbWUpOwotICAgIFFGaWxlSW5mb0xpc3Qg
ZW50cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMgfCBRRGly
OjpOb0RvdEFuZERvdERvdCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllcy5jb3Vu
dCgpOyArK2kpCi0gICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyKCkpCi0gICAgICAgICAgICBy
ZW1vdmVSZWN1cnNpdmUoZW50cmllc1tpXS5maWxlUGF0aCgpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzW2ldLmZpbGVOYW1lKCkpOwotICAgIFFEaXIoKS5y
bWRpcihkaXJuYW1lKTsKLX0KIAogY2xhc3MgRXZlbnRTcHkgOiBwdWJsaWMgUU9iamVjdCwgcHVi
bGljIFFMaXN0PFFFdmVudDo6VHlwZT4KIHsKQEAgLTE3NCwxMiArMTYzLDYgQEAgcHJpdmF0ZSBz
bG90czoKIHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKICAgICBRV2ViUGFnZSogbV9w
YWdlOwotICAgIFFTdHJpbmcgdG1wRGlyUGF0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0
aWMgUVN0cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3F3ZWJwYWdlLSIKLSAg
ICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0cmluZyhRTGF0aW4x
U3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJuIHRtcGQ7Ci0gICAgfQog
fTsKIAogdHN0X1FXZWJQYWdlOjp0c3RfUVdlYlBhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC90ZXN0cy90ZXN0cy5wcmkgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnBy
aQppbmRleCA1NDM3YmFhY2M5Y2FiYWM2MTNkNTc0OTE3ZjI0MzQwZDgzMmJiYWFlLi4wNzk1OThi
OWMzZTE3ODNhY2EyMjMzMTk0OGJhZmEyNjc2YjkzN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3Rlc3RzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3Rz
LnByaQpAQCAtMTEsNyArMTEsOCBAQCBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIG11bHRpbWVk
aWEpIHsKICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfTVVMVElNRURJQT0xCiB9CiAKLVNPVVJD
RVMgKz0gJCR7VEFSR0VUfS5jcHAKK1NPVVJDRVMgKz0gJCR7VEFSR0VUfS5jcHAgXAorICAgICAg
ICAgICAkJFBXRC91dGlsLmNwcAogSU5DTFVERVBBVEggKz0gXAogICAgICQkUFdEIFwKICAgICAk
JFBXRC8uLi9BcGkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMjgxYzYxOWIz
OWQyOTE2NmFjMWNlYmFhMjgxZmNmZTI1NTIyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3V0aWwuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbmNsdWRlICJ1dGlsLmgiCisKKyNpbmNsdWRlIDxRRGF0ZVRpbWU+CisjaW5jbHVk
ZSA8UURpcj4KKworYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqIG9iaiwgY29uc3QgY2hhciog
c2lnbmFsLCBpbnQgdGltZW91dCkKK3sKKyAgICBRRXZlbnRMb29wIGxvb3A7CisgICAgUU9iamVj
dDo6Y29ubmVjdChvYmosIHNpZ25hbCwgJmxvb3AsIFNMT1QocXVpdCgpKSk7CisgICAgUVRpbWVy
IHRpbWVyOworICAgIFFTaWduYWxTcHkgdGltZW91dFNweSgmdGltZXIsIFNJR05BTCh0aW1lb3V0
KCkpKTsKKyAgICBpZiAodGltZW91dCA+IDApIHsKKyAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgm
dGltZXIsIFNJR05BTCh0aW1lb3V0KCkpLCAmbG9vcCwgU0xPVChxdWl0KCkpKTsKKyAgICAgICAg
dGltZXIuc2V0U2luZ2xlU2hvdCh0cnVlKTsKKyAgICAgICAgdGltZXIuc3RhcnQodGltZW91dCk7
CisgICAgfQorICAgIGxvb3AuZXhlYygpOworICAgIHJldHVybiB0aW1lb3V0U3B5LmlzRW1wdHko
KTsKK30KKworUVN0cmluZyB0bXBEaXJQYXRoKCkKK3sKKyAgICBzdGF0aWMgUVN0cmluZyB0bXBk
ID0gUURpcjo6dGVtcFBhdGgoKSArIFFMYXRpbjFTdHJpbmcoIi90c3RfcXdlYmZyYW1lLSIpCisg
ICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0cmluZyhRTGF0aW4xU3Ry
aW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKKyAgICByZXR1cm4gdG1wZDsKK30KKwordm9pZCByZW1v
dmVSZWN1cnNpdmUoY29uc3QgUVN0cmluZyYgZGlybmFtZSkKK3sKKyAgICBRRGlyIGRpcihkaXJu
YW1lKTsKKyAgICBRRmlsZUluZm9MaXN0IGVudHJpZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6
RGlycyB8IFFEaXI6OkZpbGVzIHwgUURpcjo6Tm9Eb3RBbmREb3REb3QpKTsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGVudHJpZXMuY291bnQoKTsgKytpKQorICAgICAgICBpZiAoZW50cmllcy5h
dChpKS5pc0RpcigpKQorICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGVudHJpZXMuYXQoaSku
ZmlsZVBhdGgoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpci5yZW1vdmUoZW50cmll
cy5hdChpKS5maWxlTmFtZSgpKTsKKyAgICBRRGlyKCkucm1kaXIoZGlybmFtZSk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3V0aWwuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvdXRpbC5oCmluZGV4IDI4Njk0NDBjYmM5ZjMxNjE2MjhiMWVlNGE4OTMwYTIyN2E3M2Jl
ZDguLmZhZjg4MThhNjNkOGIxZDliZjIxZWExOTk0NTlkNzA3ZGZkYTAyODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdXRpbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvdXRpbC5oCkBAIC0zOCwxOSArMzgsMzIgQEAKICAqIFxyZXR1cm4gXHAgdHJ1ZSBpZiB0aGUg
cmVxdWVzdGVkIHNpZ25hbCB3YXMgcmVjZWl2ZWQKICAqICAgICAgICAgXHAgZmFsc2Ugb24gdGlt
ZW91dAogICovCi1zdGF0aWMgYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqIG9iaiwgY29uc3Qg
Y2hhciogc2lnbmFsLCBpbnQgdGltZW91dCA9IDEwMDAwKQotewotICAgIFFFdmVudExvb3AgbG9v
cDsKLSAgICBRT2JqZWN0Ojpjb25uZWN0KG9iaiwgc2lnbmFsLCAmbG9vcCwgU0xPVChxdWl0KCkp
KTsKLSAgICBRVGltZXIgdGltZXI7Ci0gICAgUVNpZ25hbFNweSB0aW1lb3V0U3B5KCZ0aW1lciwg
U0lHTkFMKHRpbWVvdXQoKSkpOwotICAgIGlmICh0aW1lb3V0ID4gMCkgewotICAgICAgICBRT2Jq
ZWN0Ojpjb25uZWN0KCZ0aW1lciwgU0lHTkFMKHRpbWVvdXQoKSksICZsb29wLCBTTE9UKHF1aXQo
KSkpOwotICAgICAgICB0aW1lci5zZXRTaW5nbGVTaG90KHRydWUpOwotICAgICAgICB0aW1lci5z
dGFydCh0aW1lb3V0KTsKLSAgICB9Ci0gICAgbG9vcC5leGVjKCk7Ci0gICAgcmV0dXJuIHRpbWVv
dXRTcHkuaXNFbXB0eSgpOwotfQorYm9vbCB3YWl0Rm9yU2lnbmFsKFFPYmplY3QqLCBjb25zdCBj
aGFyKiBzaWduYWwsIGludCB0aW1lb3V0ID0gMTAwMDApOwogCiAjZGVmaW5lIFdfUVNLSVAoYSwg
YikgUVNLSVAoYSkKKworLyoqCisgKiBSZXR1cm5zIGEgdGVtcG9yYXJ5IHBhdGggdGhhdCBjYW4g
YmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZldGltZSBvZiB0aGUgdGVzdC4KKyAqIFRoaXMgY2Fu
IGJlIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UgdGVzdGluZyBuZWVkcy4KKyAqLworCitRU3RyaW5n
IHRtcERpclBhdGgoKTsKKworLyoqCisgKiBVc2VkIHRvIHJlbW92ZSB0ZW1wb3JhcnkgbG9jYWwg
c3RvcmFnZSBkaXJlY3RvcnkKKyAqLworCit2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3Ry
aW5nJiBkaXJuYW1lKTsKKworLyoqCisgKiBSZXR1cm5zIGEgdGVtcG9yYXJ5IHBhdGggdGhhdCBj
YW4gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWZldGltZSBvZiB0aGUgdGVzdC4KKyAqIFRoaXMg
Y2FuIGJlIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UgdGVzdGluZyBuZWVkcy4KKyAqLworCitRU3Ry
aW5nIHRtcERpclBhdGgoKTsKKworLyoqCisgKiBVc2VkIHRvIHJlbW92ZSB0ZW1wb3JhcnkgbG9j
YWwgc3RvcmFnZSBkaXJlY3RvcnkKKyAqLworCit2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBR
U3RyaW5nJiBkaXJuYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162503</attachid>
            <date>2012-09-06 07:19:02 -0700</date>
            <delta_ts>2013-10-02 21:15:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65237-20120906162023.patch</filename>
            <type>text/plain</type>
            <size>14126</size>
            <attacher name="Pierre Rossi">pierre.rossi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDAxNGRjYmIwODA0
YjQ0ODJhYjJiYmIxMjY1ZTQ3YTM1MTllMTJlYzAuLjVmMWJkYTliZjIxNjgzYmM1ZjM3M2JkNGVi
NzkzZjU2ZTYwY2MxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDgt
MTAgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0
XSBGYXZpY29ucyBjYW4ndCBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMzcKKworICAgICAgICBFbWl0IFFX
ZWJGcmFtZTo6aWNvbkNoYW5nZWQoKSBkaXJlY3RseSBpbgorICAgICAgICBkaXNwYXRjaERpZENo
YW5nZUljb25zIGlmIHRoZSBpY29uIGRhdGFiYXNlCisgICAgICAgIGlzIG5vdCB1c2VkLgorCisg
ICAgICAgIEF1dG90ZXN0IGFkZGVkIHRvIHRzdF9RV2ViRnJhbWUuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMpOgorICAgICAgICAqIHRlc3RzL3FkZWNsYXJhdGl2ZXdl
YnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICBGaXh1cCB0byB1c2Ug
dGhlIGNvbW1vbiB0ZXN0IGZ1bmN0aW9ucy4KKyAgICAgICAgKHRzdF9RRGVjbGFyYXRpdmVXZWJW
aWV3OjpjbGVhbnVwVGVzdENhc2UpOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6
OmJhc2ljUHJvcGVydGllcyk6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aGlz
dG9yeU5hdik6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6bG9hZEVycm9yKToK
KyAgICAgICAgKiB0ZXN0cy9xd2ViZnJhbWUvcmVzb3VyY2VzL2Zhdmljb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwOgorICAgICAgICAo
dHN0X1FXZWJGcmFtZSk6CisgICAgICAgICh0c3RfUVdlYkZyYW1lOjppbml0KToKKyAgICAgICAg
KHRzdF9RV2ViRnJhbWU6OmNsZWFudXApOgorICAgICAgICAoZ2V0SW1hZ2UpOgorICAgICAgICAo
dHN0X1FXZWJGcmFtZTo6ZHluYW1pY2FsbHlDaGFuZ2luZ0Zhdmljb24pOgorICAgICAgICAodHN0
X1FXZWJGcmFtZTo6aWNvbkNoYW5nZWRXaXRob3V0REIpOgorICAgICAgICAqIHRlc3RzL3F3ZWJm
cmFtZS90c3RfcXdlYmZyYW1lLnFyYzoKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdl
YnBhZ2UuY3BwOgorICAgICAgICAodHN0X1FXZWJQYWdlKToKKyAgICAgICAgKiB0ZXN0cy90ZXN0
cy5wcmk6CisgICAgICAgICogdGVzdHMvdXRpbC5jcHA6IEFkZGVkLgorICAgICAgICBtb3ZlZCBs
b2NhbCBzdG9yYWdlIHJlbGF0ZWQgZnVuY3Rpb25zIG92ZXIgZnJvbQorICAgICAgICB0ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisgICAgICAgICh3YWl0Rm9yU2lnbmFsKToKKyAgICAg
ICAgKHRtcERpclBhdGgpOgorICAgICAgICAocmVtb3ZlUmVjdXJzaXZlKToKKyAgICAgICAgKiB0
ZXN0cy91dGlsLmg6CisKIDIwMTItMDktMDUgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHVi
aEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RSVF0gTFRDOjogTW92ZSBwcmludGluZyByZWxh
dGVkIEFQSXMgZnJvbSBMYXlvdXRUZXN0Q29udHJvbGxlciB0byBJbnRlcm5hbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCmluZGV4IGJjZjA3MmQ2NWI1NjRmZjFlZDVhYjZhZDUxMjk0NjE4NDA5MWIwNjEuLjI1N2Vk
ZTY1OTFhYzdmODU2Yjc4YjE5MWYzMGZmOGUzMTFlYjgxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAt
NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkhUVFBTdGF0dXNDb2Rlcy5oIgogI2luY2x1ZGUgIkhp
c3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIkljb25E
YXRhYmFzZUJhc2UuaCIKICNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQogI2luY2x1ZGUgIkljb25E
YXRhYmFzZUNsaWVudFF0LmgiCiAjZW5kaWYKQEAgLTQ2MiwxNCArNDYzLDE2IEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0
aERpcmVjdGlvbiYgdGl0CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRD
aGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHsKKyAgICBBU1NFUlQobV9mcmFtZSk7CiAg
ICAgaWYgKGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcykKICAgICAgICAgcHJpbnRmKCIlcyAtIGRp
ZENoYW5nZUljb25zXG4iLCBxUHJpbnRhYmxlKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0
UmVzdWx0KG1fZnJhbWUpKSk7CiAKLSAgICBpZiAoIW1fd2ViRnJhbWUpCisgICAgLy8gSWYgdGhl
IGljb24gZGF0YWJhc2UgaXMgZW5hYmxlZCwgdGhpcyBzaWduYWwgd2lsbCBiZSBmaXJlZCBpbiBk
aXNwYXRjaERpZFJlY2VpdmVJY29uKCkKKyAgICAvLyBhbHJlYWR5LCBubyBuZWVkIHRvIGZpcmUg
aXQgdHdpY2UuCisgICAgaWYgKCFtX3dlYkZyYW1lIHx8IGljb25EYXRhYmFzZSgpLmlzRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogSW4gb3JkZXIgdG8gZ2V0IG5v
dGlmaWVkIG9mIGljb24gVVJMUycgY2hhbmdlcywgYWRkIGEgbm90aWZpY2F0aW9uLgotICAgIC8v
IGVtaXQgaWNvbnNDaGFuZ2VkKCk7CisgICAgZW1pdCBtX3dlYkZyYW1lLT5pY29uQ2hhbmdlZCgp
OwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZl
d2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4
IDk3ZGEzNTM5YTg5ODA5ZGQ4OGNiMTg1OTc5MDMwMWU5NGIxZWMwYjguLmMyZmI3YzFiOTVjNzli
MTdlMTA5YzE2MWQyY2E3MzIyNGFhODA0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFy
YXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDQsMTIgKzQ0LDYgQEAgcHJpdmF0ZSBRX1NMT1RTOgogCiBw
cml2YXRlOgogICAgIHZvaWQgY2hlY2tOb0Vycm9ycyhjb25zdCBRRGVjbGFyYXRpdmVDb21wb25l
bnQmKTsKLSAgICBRU3RyaW5nIHRtcERpcigpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0aWMg
UVN0cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3FkZWNsYXJhdGl2ZXdlYnZp
ZXctIgotICAgICAgICAgICAgKyBRRGF0ZVRpbWU6OmN1cnJlbnREYXRlVGltZSgpLnRvU3RyaW5n
KFFMYXRpbjFTdHJpbmcoInl5eXlNTWRkaGhtbXNzIikpOwotICAgICAgICByZXR1cm4gdG1wZDsK
LSAgICB9CiB9OwogCiB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6dHN0X1FEZWNsYXJhdGl2ZVdl
YlZpZXcoKQpAQCAtNzAsMTggKzY0LDYgQEAgc3RhdGljIFFTdHJpbmcgZmlsZUNvbnRlbnRzKGNv
bnN0IFFTdHJpbmcmIGZpbGVuYW1lKQogICAgIHJldHVybiBRU3RyaW5nOjpmcm9tVXRmOChmaWxl
LnJlYWRBbGwoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbW92ZVJlY3Vyc2l2ZShjb25zdCBRU3Ry
aW5nJiBkaXJuYW1lKQotewotICAgIFFEaXIgZGlyKGRpcm5hbWUpOwotICAgIFFGaWxlSW5mb0xp
c3QgZW50cmllcyhkaXIuZW50cnlJbmZvTGlzdChRRGlyOjpEaXJzIHwgUURpcjo6RmlsZXMgfCBR
RGlyOjpOb0RvdEFuZERvdERvdCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllcy5j
b3VudCgpOyArK2kpCi0gICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyKCkpCi0gICAgICAgICAg
ICByZW1vdmVSZWN1cnNpdmUoZW50cmllc1tpXS5maWxlUGF0aCgpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgZGlyLnJlbW92ZShlbnRyaWVzW2ldLmZpbGVOYW1lKCkpOwotICAgIFFEaXIo
KS5ybWRpcihkaXJuYW1lKTsKLX0KLQogdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6aW5p
dFRlc3RDYXNlKCkKIHsKICAgICBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgodG1w
RGlyKCkpOwpAQCAtOTAsNyArNzIsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3Ojpp
bml0VGVzdENhc2UoKQogCiB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpjbGVhbnVwVGVz
dENhc2UoKQogewotICAgIHJlbW92ZVJlY3Vyc2l2ZSh0bXBEaXIoKSk7CisgICAgcmVtb3ZlUmVj
dXJzaXZlKHRtcERpclBhdGgoKSk7CiB9CiAKIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6
OmJhc2ljUHJvcGVydGllcygpCkBAIC05OCw3ICs4MCw3IEBAIHZvaWQgdHN0X1FEZWNsYXJhdGl2
ZVdlYlZpZXc6OmJhc2ljUHJvcGVydGllcygpCiAgICAgUURlY2xhcmF0aXZlRW5naW5lIGVuZ2lu
ZTsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQgY29tcG9uZW50KCZlbmdpbmUsIFFVcmwoInFy
YzovLy9yZXNvdXJjZXMvYmFzaWMucW1sIikpOwogICAgIGNoZWNrTm9FcnJvcnMoY29tcG9uZW50
KTsKLSAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpcigpKTsK
KyAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKHRtcERpclBhdGgoKSk7
CiAKICAgICBRT2JqZWN0KiB3diA9IGNvbXBvbmVudC5jcmVhdGUoKTsKICAgICBRVkVSSUZZKHd2
KTsKQEAgLTE2NCw3ICsxNDYsNyBAQCB2b2lkIHRzdF9RRGVjbGFyYXRpdmVXZWJWaWV3OjpoaXN0
b3J5TmF2KCkKICAgICBRRGVjbGFyYXRpdmVFbmdpbmUgZW5naW5lOwogICAgIFFEZWNsYXJhdGl2
ZUNvbXBvbmVudCBjb21wb25lbnQoJmVuZ2luZSwgUVVybCgicXJjOi8vL3Jlc291cmNlcy9iYXNp
Yy5xbWwiKSk7CiAgICAgY2hlY2tOb0Vycm9ycyhjb21wb25lbnQpOwotICAgIFFXZWJTZXR0aW5n
czo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UodG1wRGlyKCkpOworICAgIFFXZWJTZXR0aW5nczo6
ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UodG1wRGlyUGF0aCgpKTsKIAogICAgIFFPYmplY3QqIHd2
ID0gY29tcG9uZW50LmNyZWF0ZSgpOwogICAgIFFWRVJJRlkod3YpOwpAQCAtMjU3LDcgKzIzOSw3
IEBAIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OmxvYWRFcnJvcigpCiAgICAgUURlY2xh
cmF0aXZlRW5naW5lIGVuZ2luZTsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQgY29tcG9uZW50
KCZlbmdpbmUsIFFVcmwoInFyYzovLy9yZXNvdXJjZXMvbG9hZEVycm9yLnFtbCIpKTsKICAgICBj
aGVja05vRXJyb3JzKGNvbXBvbmVudCk7Ci0gICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0
ZW50U3RvcmFnZSh0bXBEaXIoKSk7CisgICAgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50
U3RvcmFnZSh0bXBEaXJQYXRoKCkpOwogCiAgICAgUU9iamVjdCogd3YgPSBjb21wb25lbnQuY3Jl
YXRlKCk7CiAgICAgUVZFUklGWSh3dik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IDRjMmQwNDJmOGY5MjUxZjgyMDJlOWI4
MDczNjllZWI3ZTUwMTNmNWYuLmQ4ZjM1MDA1OTZkYzdmZDg5ZmQ1NDBiYTdjMjRkODI1MGMzM2Vi
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2Vi
ZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2Vi
ZnJhbWUuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIHByaXZhdGUgUV9TTE9UUzoKICAgICB2b2lkIGxv
YWRGaW5pc2hlZEFmdGVyTm90Rm91bmRFcnJvcigpOwogICAgIHZvaWQgbG9hZEluU2lnbmFsSGFu
ZGxlcnNfZGF0YSgpOwogICAgIHZvaWQgbG9hZEluU2lnbmFsSGFuZGxlcnMoKTsKKyAgICB2b2lk
IGR5bmFtaWNhbGx5Q2hhbmdpbmdGYXZpY29uKCk7CisgICAgdm9pZCBpY29uQ2hhbmdlZFdpdGhv
dXREQigpOwogCiBwcml2YXRlOgogICAgIFFXZWJWaWV3KiBtX3ZpZXc7CkBAIC0xMTksMTEgKzEy
MSwxNSBAQCB2b2lkIHRzdF9RV2ViRnJhbWU6OmluaXQoKQogewogICAgIG1fdmlldyA9IG5ldyBR
V2ViVmlldygpOwogICAgIG1fcGFnZSA9IG1fdmlldy0+cGFnZSgpOworICAgIFFEaXIgZGlyOwor
ICAgIGRpci5ta3BhdGgodG1wRGlyUGF0aCgpKTsKKyAgICBRV2ViU2V0dGluZ3M6OnNldEljb25E
YXRhYmFzZVBhdGgodG1wRGlyUGF0aCgpKTsKIH0KIAogdm9pZCB0c3RfUVdlYkZyYW1lOjpjbGVh
bnVwKCkKIHsKICAgICBkZWxldGUgbV92aWV3OworICAgIHJlbW92ZVJlY3Vyc2l2ZSh0bXBEaXJQ
YXRoKCkpOwogfQogCiB2b2lkIHRzdF9RV2ViRnJhbWU6OnN5bW1ldHJpY1VybCgpCkBAIC0xNTY1
LDUgKzE1NzEsNzQgQEAgdm9pZCB0c3RfUVdlYkZyYW1lOjpsb2FkSW5TaWduYWxIYW5kbGVycygp
CiAgICAgUUNPTVBBUkUoZnJhbWUtPnVybCgpLCB1cmxGb3JTZXR0ZXIpOwogfQogCitzdGF0aWMg
UUltYWdlIGdldEltYWdlKGNvbnN0IFFTaXplJiBzaXplLCBRdDo6R2xvYmFsQ29sb3IgY29sb3Is
IFFCeXRlQXJyYXkqIGltZ0RhdGEpCit7CisgICAgUUltYWdlIHJldChzaXplLCBRSW1hZ2U6OkZv
cm1hdF9SR0IzMik7CisgICAgcmV0LmZpbGwoY29sb3IpOworICAgIFFCdWZmZXIgYnVmZmVyKGlt
Z0RhdGEpOworICAgIHJldC5zYXZlKCZidWZmZXIsICJQTkciKTsKKyAgICByZXR1cm4gcmV0Owor
fQorCit2b2lkIHRzdF9RV2ViRnJhbWU6OmR5bmFtaWNhbGx5Q2hhbmdpbmdGYXZpY29uKCkKK3sK
KyAgICBRV2ViRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKKyAgICBRU2lnbmFs
U3B5IGljb25DaGFuZ2VkU3B5KGZyYW1lLCBTSUdOQUwoaWNvbkNoYW5nZWQoKSkpOworICAgIGNv
bnN0IFFTaXplIGljb25TaXplKDE2LCAxNik7CisgICAgY29uc3QgUVN0cmluZyBqcyA9IFFMYXRp
bjFTdHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYXZpY29uJykuc2V0QXR0cmlidXRl
KCdocmVmJywgJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwlMScpIik7CisKKyAgICBmcmFtZS0+bG9h
ZChRVXJsKCJxcmM6L2Zhdmljb24uaHRtbCIpKTsKKyAgICB3YWl0Rm9yU2lnbmFsKGZyYW1lLCBT
SUdOQUwoaWNvbkNoYW5nZWQoKSksIDEwMDApOworCisgICAgUUNPTVBBUkUoaWNvbkNoYW5nZWRT
cHkuY291bnQoKSwgMCk7CisgICAgUVZFUklGWShmcmFtZS0+aWNvbigpLmlzTnVsbCgpKTsKKwor
ICAgIFFCeXRlQXJyYXkgaW1nRGF0YTsKKyAgICBRSW1hZ2UgYmx1ZUltYWdlID0gZ2V0SW1hZ2Uo
aWNvblNpemUsIFF0OjpibHVlLCAmaW1nRGF0YSk7CisgICAgZnJhbWUtPmV2YWx1YXRlSmF2YVNj
cmlwdChqcy5hcmcoaW1nRGF0YS50b0Jhc2U2NCgpLmRhdGEoKSkpOworICAgIHdhaXRGb3JTaWdu
YWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7CisgICAgUUNPTVBBUkUoaWNv
bkNoYW5nZWRTcHkuY291bnQoKSwgMSk7CisgICAgUVZFUklGWSghZnJhbWUtPmljb24oKS5pc051
bGwoKSk7CisgICAgUVZFUklGWSghZnJhbWUtPmljb24oKS5hdmFpbGFibGVTaXplcygpLmlzRW1w
dHkoKSk7CisKKyAgICBRSW1hZ2UgaWNvbiAgPSBmcmFtZS0+aWNvbigpLnBpeG1hcChpY29uU2l6
ZSkudG9JbWFnZSgpOworICAgIFFDT01QQVJFKGljb24sIGJsdWVJbWFnZSk7CisKKyAgICBRSW1h
Z2UgcmVkSW1hZ2UgPSBnZXRJbWFnZShpY29uU2l6ZSwgUXQ6OnJlZCwgJmltZ0RhdGEpOworICAg
IGZyYW1lLT5ldmFsdWF0ZUphdmFTY3JpcHQoanMuYXJnKGltZ0RhdGEudG9CYXNlNjQoKS5kYXRh
KCkpKTsKKworICAgIHdhaXRGb3JTaWduYWwoZnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwg
MTAwMCk7CisgICAgUUNPTVBBUkUoaWNvbkNoYW5nZWRTcHkuY291bnQoKSwgMik7CisgICAgUVZF
UklGWSghZnJhbWUtPmljb24oKS5pc051bGwoKSk7CisgICAgUVZFUklGWSghZnJhbWUtPmljb24o
KS5hdmFpbGFibGVTaXplcygpLmlzRW1wdHkoKSk7CisKKyAgICBpY29uICA9IGZyYW1lLT5pY29u
KCkucGl4bWFwKGljb25TaXplKS50b0ltYWdlKCk7CisgICAgUUNPTVBBUkUoaWNvbiwgcmVkSW1h
Z2UpOworfQorCit2b2lkIHRzdF9RV2ViRnJhbWU6Omljb25DaGFuZ2VkV2l0aG91dERCKCkKK3sK
KyAgICBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBhdGgoUVN0cmluZygpKTsKKyAgICBR
V2ViUGFnZSogdGVzdFBhZ2UgPSBuZXcgUVdlYlBhZ2UodGhpcyk7CisgICAgUVdlYkZyYW1lKiBt
YWluRnJhbWUgPSB0ZXN0UGFnZS0+bWFpbkZyYW1lKCk7CisgICAgUVNpZ25hbFNweSBpY29uQ2hh
bmdlZFNweShtYWluRnJhbWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSk7CisgICAgY29uc3QgUVNp
emUgaWNvblNpemUoMTYsIDE2KTsKKyAgICBjb25zdCBRU3RyaW5nIGpzID0gUUxhdGluMVN0cmlu
ZygiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zhdmljb24nKS5zZXRBdHRyaWJ1dGUoJ2hyZWYn
LCAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCUxJykiKTsKKworICAgIG1haW5GcmFtZS0+bG9hZChR
VXJsKCJxcmM6L2Zhdmljb24uaHRtbCIpKTsKKyAgICB3YWl0Rm9yU2lnbmFsKG1haW5GcmFtZSwg
U0lHTkFMKGljb25DaGFuZ2VkKCkpLCAxMDAwKTsKKworICAgIFFDT01QQVJFKGljb25DaGFuZ2Vk
U3B5LmNvdW50KCksIDApOworICAgIFFWRVJJRlkobWFpbkZyYW1lLT5pY29uKCkuaXNOdWxsKCkp
OworCisgICAgUUJ5dGVBcnJheSBpbWdEYXRhOworICAgIGdldEltYWdlKGljb25TaXplLCBRdDo6
Ymx1ZSwgJmltZ0RhdGEpOworICAgIG1haW5GcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KGpzLmFy
ZyhpbWdEYXRhLnRvQmFzZTY0KCkuZGF0YSgpKSk7CisgICAgd2FpdEZvclNpZ25hbChtYWluRnJh
bWUsIFNJR05BTChpY29uQ2hhbmdlZCgpKSwgMTAwMCk7CisgICAgUUNPTVBBUkUoaWNvbkNoYW5n
ZWRTcHkuY291bnQoKSwgMSk7CisgICAgUVZFUklGWShtYWluRnJhbWUtPmljb24oKS5pc051bGwo
KSk7Cit9CisKKwogUVRFU1RfTUFJTih0c3RfUVdlYkZyYW1lKQogI2luY2x1ZGUgInRzdF9xd2Vi
ZnJhbWUubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUv
dHN0X3F3ZWJmcmFtZS5xcmMgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3Rf
cXdlYmZyYW1lLnFyYwppbmRleCAyYTdkMGI5YzI4MjVmZjg1MDVhYTYxYWQ4NzUzZmM1NjFkNjIx
ZWNiLi44M2QyYWQ4MDZjNjEyNmFiNjg2NDljNDRjMzFlM2E3MDhlM2NmY2E3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYworKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLnFyYwpAQCAt
MSwxMCArMSwxMSBAQAotPCFET0NUWVBFIFJDQz48UkNDIHZlcnNpb249IjEuMCI+Ci08cXJlc291
cmNlIHByZWZpeD0iLyI+Ci08ZmlsZSBhbGlhcz0iaW1hZ2UucG5nIj5yZXNvdXJjZXMvaW1hZ2Uu
cG5nPC9maWxlPgotPGZpbGUgYWxpYXM9InN0eWxlLmNzcyI+cmVzb3VyY2VzL3N0eWxlLmNzczwv
ZmlsZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0MS5odG1sIj5yZXNvdXJjZXMvdGVzdDEuaHRtbDwvZmls
ZT4KLTxmaWxlIGFsaWFzPSJ0ZXN0Mi5odG1sIj5yZXNvdXJjZXMvdGVzdDIuaHRtbDwvZmlsZT4K
LTxmaWxlIGFsaWFzPSJ0ZXN0aWZyYW1lLmh0bWwiPnJlc291cmNlcy90ZXN0aWZyYW1lLmh0bWw8
L2ZpbGU+Ci08ZmlsZSBhbGlhcz0idGVzdGlmcmFtZTIuaHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJh
bWUyLmh0bWw8L2ZpbGU+Ci08L3FyZXNvdXJjZT4KKzxSQ0M+CisgICAgPHFyZXNvdXJjZSBwcmVm
aXg9Ii8iPgorICAgICAgICA8ZmlsZSBhbGlhcz0iaW1hZ2UucG5nIj5yZXNvdXJjZXMvaW1hZ2Uu
cG5nPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0ic3R5bGUuY3NzIj5yZXNvdXJjZXMvc3R5
bGUuY3NzPC9maWxlPgorICAgICAgICA8ZmlsZSBhbGlhcz0idGVzdDEuaHRtbCI+cmVzb3VyY2Vz
L3Rlc3QxLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlIGFsaWFzPSJ0ZXN0Mi5odG1sIj5yZXNv
dXJjZXMvdGVzdDIuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxpYXM9InRlc3RpZnJhbWUu
aHRtbCI+cmVzb3VyY2VzL3Rlc3RpZnJhbWUuaHRtbDwvZmlsZT4KKyAgICAgICAgPGZpbGUgYWxp
YXM9InRlc3RpZnJhbWUyLmh0bWwiPnJlc291cmNlcy90ZXN0aWZyYW1lMi5odG1sPC9maWxlPgor
ICAgICAgICA8ZmlsZSBhbGlhcz0iZmF2aWNvbi5odG1sIj5yZXNvdXJjZXMvZmF2aWNvbi5odG1s
PC9maWxlPgorICAgIDwvcXJlc291cmNlPgogPC9SQ0M+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKaW5kZXggNjdiNDViMThlZjI4ZGYzMDU3
NDExMGE0NGZiNTEwMGM4YzQ5MWY5OC4uOWY2ZDFjZmU0ODYxOTQxZjdhMTVkNTI3YzEzNGRmMzRm
NDhkN2QxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3Rf
cXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3
ZWJwYWdlLmNwcApAQCAtNDYsMTcgKzQ2LDYgQEAKICNpbmNsdWRlIDxxd2Vidmlldy5oPgogI2lu
Y2x1ZGUgPHFpbWFnZXdyaXRlci5oPgogCi1zdGF0aWMgdm9pZCByZW1vdmVSZWN1cnNpdmUoY29u
c3QgUVN0cmluZyYgZGlybmFtZSkKLXsKLSAgICBRRGlyIGRpcihkaXJuYW1lKTsKLSAgICBRRmls
ZUluZm9MaXN0IGVudHJpZXMoZGlyLmVudHJ5SW5mb0xpc3QoUURpcjo6RGlycyB8IFFEaXI6OkZp
bGVzIHwgUURpcjo6Tm9Eb3RBbmREb3REb3QpKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGVu
dHJpZXMuY291bnQoKTsgKytpKQotICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcigpKQotICAg
ICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGVudHJpZXNbaV0uZmlsZVBhdGgoKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGRpci5yZW1vdmUoZW50cmllc1tpXS5maWxlTmFtZSgpKTsKLSAg
ICBRRGlyKCkucm1kaXIoZGlybmFtZSk7Ci19CiAKIGNsYXNzIEV2ZW50U3B5IDogcHVibGljIFFP
YmplY3QsIHB1YmxpYyBRTGlzdDxRRXZlbnQ6OlR5cGU+CiB7CkBAIC0xNzQsMTIgKzE2Myw2IEBA
IHByaXZhdGUgUV9TTE9UUzoKIHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKICAgICBR
V2ViUGFnZSogbV9wYWdlOwotICAgIFFTdHJpbmcgdG1wRGlyUGF0aCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBzdGF0aWMgUVN0cmluZyB0bXBkID0gUURpcjo6dGVtcFBhdGgoKSArICIvdHN0X3F3
ZWJwYWdlLSIKLSAgICAgICAgICAgICsgUURhdGVUaW1lOjpjdXJyZW50RGF0ZVRpbWUoKS50b1N0
cmluZyhRTGF0aW4xU3RyaW5nKCJ5eXl5TU1kZGhobW1zcyIpKTsKLSAgICAgICAgcmV0dXJuIHRt
cGQ7Ci0gICAgfQogfTsKIAogdHN0X1FXZWJQYWdlOjp0c3RfUVdlYlBhZ2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy90ZXN0cy5wcmkgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3Rlc3RzLnByaQppbmRleCA1NDM3YmFhY2M5Y2FiYWM2MTNkNTc0OTE3ZjI0MzQwZDgzMmJi
YWFlLi4wNzk1OThiOWMzZTE3ODNhY2EyMjMzMTk0OGJhZmEyNjc2YjkzN2RmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L3Rlc3RzL3Rlc3RzLnByaQpAQCAtMTEsNyArMTEsOCBAQCBjb250YWlucyhNT0JJTElUWV9DT05G
SUcsIG11bHRpbWVkaWEpIHsKICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfTVVMVElNRURJQT0x
CiB9CiAKLVNPVVJDRVMgKz0gJCR7VEFSR0VUfS5jcHAKK1NPVVJDRVMgKz0gJCR7VEFSR0VUfS5j
cHAgXAorICAgICAgICAgICAkJFBXRC91dGlsLmNwcAogSU5DTFVERVBBVEggKz0gXAogICAgICQk
UFdEIFwKICAgICAkJFBXRC8uLi9BcGkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVz
dHMvdXRpbC5oIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKaW5kZXggMjg2OTQ0MGNi
YzlmMzE2MTYyOGIxZWU0YTg5MzBhMjI3YTczYmVkOC4uZmFmODgxOGE2M2Q4YjFkOWJmMjFlYTE5
OTQ1OWQ3MDdkZmRhMDI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGls
LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy91dGlsLmgKQEAgLTM4LDE5ICszOCwzMiBA
QAogICogXHJldHVybiBccCB0cnVlIGlmIHRoZSByZXF1ZXN0ZWQgc2lnbmFsIHdhcyByZWNlaXZl
ZAogICogICAgICAgICBccCBmYWxzZSBvbiB0aW1lb3V0CiAgKi8KLXN0YXRpYyBib29sIHdhaXRG
b3JTaWduYWwoUU9iamVjdCogb2JqLCBjb25zdCBjaGFyKiBzaWduYWwsIGludCB0aW1lb3V0ID0g
MTAwMDApCi17Ci0gICAgUUV2ZW50TG9vcCBsb29wOwotICAgIFFPYmplY3Q6OmNvbm5lY3Qob2Jq
LCBzaWduYWwsICZsb29wLCBTTE9UKHF1aXQoKSkpOwotICAgIFFUaW1lciB0aW1lcjsKLSAgICBR
U2lnbmFsU3B5IHRpbWVvdXRTcHkoJnRpbWVyLCBTSUdOQUwodGltZW91dCgpKSk7Ci0gICAgaWYg
KHRpbWVvdXQgPiAwKSB7Ci0gICAgICAgIFFPYmplY3Q6OmNvbm5lY3QoJnRpbWVyLCBTSUdOQUwo
dGltZW91dCgpKSwgJmxvb3AsIFNMT1QocXVpdCgpKSk7Ci0gICAgICAgIHRpbWVyLnNldFNpbmds
ZVNob3QodHJ1ZSk7Ci0gICAgICAgIHRpbWVyLnN0YXJ0KHRpbWVvdXQpOwotICAgIH0KLSAgICBs
b29wLmV4ZWMoKTsKLSAgICByZXR1cm4gdGltZW91dFNweS5pc0VtcHR5KCk7Ci19Citib29sIHdh
aXRGb3JTaWduYWwoUU9iamVjdCosIGNvbnN0IGNoYXIqIHNpZ25hbCwgaW50IHRpbWVvdXQgPSAx
MDAwMCk7CiAKICNkZWZpbmUgV19RU0tJUChhLCBiKSBRU0tJUChhKQorCisvKioKKyAqIFJldHVy
bnMgYSB0ZW1wb3JhcnkgcGF0aCB0aGF0IGNhbiBiZSB1c2VkIHRocm91Z2hvdXQgdGhlIGxpZmV0
aW1lIG9mIHRoZSB0ZXN0LgorICogVGhpcyBjYW4gYmUgdXNlZCBmb3IgbG9jYWwgc3RvcmFnZSB0
ZXN0aW5nIG5lZWRzLgorICovCisKK1FTdHJpbmcgdG1wRGlyUGF0aCgpOworCisvKioKKyAqIFVz
ZWQgdG8gcmVtb3ZlIHRlbXBvcmFyeSBsb2NhbCBzdG9yYWdlIGRpcmVjdG9yeQorICovCisKK3Zv
aWQgcmVtb3ZlUmVjdXJzaXZlKGNvbnN0IFFTdHJpbmcmIGRpcm5hbWUpOworCisvKioKKyAqIFJl
dHVybnMgYSB0ZW1wb3JhcnkgcGF0aCB0aGF0IGNhbiBiZSB1c2VkIHRocm91Z2hvdXQgdGhlIGxp
ZmV0aW1lIG9mIHRoZSB0ZXN0LgorICogVGhpcyBjYW4gYmUgdXNlZCBmb3IgbG9jYWwgc3RvcmFn
ZSB0ZXN0aW5nIG5lZWRzLgorICovCisKK1FTdHJpbmcgdG1wRGlyUGF0aCgpOworCisvKioKKyAq
IFVzZWQgdG8gcmVtb3ZlIHRlbXBvcmFyeSBsb2NhbCBzdG9yYWdlIGRpcmVjdG9yeQorICovCisK
K3ZvaWQgcmVtb3ZlUmVjdXJzaXZlKGNvbnN0IFFTdHJpbmcmIGRpcm5hbWUpOwo=
</data>
<flag name="commit-queue"
          id="173647"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>