<?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>67250</bug_id>
          
          <creation_ts>2011-08-30 17:48:53 -0700</creation_ts>
          <short_desc>Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp}</short_desc>
          <delta_ts>2011-09-09 16:39:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>aroben</cc>
    
    <cc>bdakin</cc>
    
    <cc>fsamuel</cc>
    
    <cc>gustavo</cc>
    
    <cc>rjkroege</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>varunjain</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>459369</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-08-30 17:48:53 -0700</bug_when>
    <thetext>Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459370</commentid>
    <comment_count>1</comment_count>
      <attachid>105725</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-08-30 17:49:29 -0700</bug_when>
    <thetext>Created attachment 105725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459371</commentid>
    <comment_count>2</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-08-30 17:50:59 -0700</bug_when>
    <thetext>This is based on a comment aroben added to Page.h last week. I&apos;m not yet done refactoring (will try to finish tonight) but I thought I&apos;d let you guys take a look at a work in progress to give me early feedback. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459373</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-30 17:52:42 -0700</bug_when>
    <thetext>What happens when a page goes into and out of the page cache? Seems like we&apos;d want to preserve the scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459385</commentid>
    <comment_count>4</comment_count>
      <attachid>105725</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-30 18:26:56 -0700</bug_when>
    <thetext>Comment on attachment 105725
Patch

Attachment 105725 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9572400</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459386</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-30 18:28:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; What happens when a page goes into and out of the page cache? Seems like we&apos;d want to preserve the scale.

Yes, our current implementation preserves scale for a page in the page cache, and we definitely want to maintain that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459480</commentid>
    <comment_count>6</comment_count>
      <attachid>105725</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-31 00:09:54 -0700</bug_when>
    <thetext>Comment on attachment 105725
Patch

Attachment 105725 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9572459</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459621</commentid>
    <comment_count>7</comment_count>
      <attachid>105725</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-08-31 07:41:04 -0700</bug_when>
    <thetext>Comment on attachment 105725
Patch

Attachment 105725 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9564832</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459722</commentid>
    <comment_count>8</comment_count>
      <attachid>105789</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-08-31 10:42:59 -0700</bug_when>
    <thetext>Created attachment 105789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459729</commentid>
    <comment_count>9</comment_count>
      <attachid>105789</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-31 10:48:47 -0700</bug_when>
    <thetext>Comment on attachment 105789
Patch

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

review- because there seem to be many missing Page null checks

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1173
&gt; -    documentStyle-&gt;setPageScaleTransform(frame ? frame-&gt;pageScaleFactor() : 1);
&gt; +    documentStyle-&gt;setPageScaleTransform(document-&gt;page()-&gt;pageScaleFactor());

document-&gt;page() can be 0; this is not safe without a null check

&gt; Source/WebCore/html/HTMLBodyElement.cpp:271
&gt; +    Page* page = document-&gt;page();
&gt; +    float zoomFactor = frame-&gt;pageZoomFactor() * page-&gt;pageScaleFactor();

Unlike frame, page can be 0, so this is not safe without a null check (unless you can somehow prove that it is).

&gt; Source/WebCore/html/HTMLBodyElement.cpp:300
&gt; +    view-&gt;setScrollPosition(IntPoint(static_cast&lt;int&gt;(scrollLeft * frame-&gt;pageZoomFactor() * page-&gt;pageScaleFactor()), view-&gt;scrollY()));

Unlike frame, page can be 0, so this is not safe without a null check (unless you can somehow prove that it is).

&gt; Source/WebCore/html/HTMLBodyElement.cpp:323
&gt; +    view-&gt;setScrollPosition(IntPoint(view-&gt;scrollX(), static_cast&lt;int&gt;(scrollTop * frame-&gt;pageZoomFactor() * page-&gt;pageScaleFactor())));

Unlike frame, page can be 0, so this is not safe without a null check (unless you can somehow prove that it is).

&gt; Source/WebCore/loader/HistoryController.cpp:89
&gt; +    item-&gt;setPageScaleFactor(m_frame-&gt;page()-&gt;pageScaleFactor());

Unlike frame, page can be 0, so this is not safe without a null check (unless you can somehow prove that it is).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461255</commentid>
    <comment_count>10</comment_count>
      <attachid>105789</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-02 09:29:31 -0700</bug_when>
    <thetext>Comment on attachment 105789
Patch

I agree with all the comments made so far. We should ensure that this doesn&apos;t change our behavior wrt. scaled pages going into/out of the page cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461398</commentid>
    <comment_count>11</comment_count>
      <attachid>106172</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 11:54:10 -0700</bug_when>
    <thetext>Created attachment 106172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461424</commentid>
    <comment_count>12</comment_count>
      <attachid>106172</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 12:29:06 -0700</bug_when>
    <thetext>Comment on attachment 106172
Patch

Attachment 106172 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9586531</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461456</commentid>
    <comment_count>13</comment_count>
      <attachid>106181</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 13:06:13 -0700</bug_when>
    <thetext>Created attachment 106181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461466</commentid>
    <comment_count>14</comment_count>
      <attachid>106181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-02 13:18:39 -0700</bug_when>
    <thetext>Comment on attachment 106181
Patch

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1173
&gt; -    documentStyle-&gt;setPageScaleTransform(frame ? frame-&gt;pageScaleFactor() : 1);
&gt; +    documentStyle-&gt;setPageScaleTransform(document-&gt;page() ? document-&gt;page()-&gt;pageScaleFactor() : 1.0f);

Why the 1.0f? It wasn’t needed before, isn’t needed now, is inconsistent with the line of code above, and unnecessarily ties the code to a specific type.

Seeing all these call sites makes me think we need a helper functions somewhere to implement the default of 1 so we don’t have to have explicit null checks repeated everywhere. Given what I see at all the call sites, the helper function could take a Document* and would make the code a lot easier to read, eliminating many local variables and extra lines of code.

It could just be in the Page.h header:

    float pageScaleFactor(Document*);

And then implemented in Page.cpp in the obvious way.

&gt; Source/WebCore/html/HTMLBodyElement.cpp:271
&gt; +    float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1.0f;

Our style is to just use &quot;1&quot; in cases like this instead of &quot;1.0f&quot;.

&gt; Source/WebCore/html/HTMLBodyElement.cpp:301
&gt; +    float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1.0f;

Same &quot;1&quot; thing.

&gt; Source/WebCore/page/FrameView.cpp:1341
&gt; -    float pageScaleFactor = m_frame-&gt;pageScaleFactor();
&gt; +    float pageScaleFactor = m_frame-&gt;page()-&gt;pageScaleFactor();

What guarantees page() is non-zero here?

&gt; Source/WebCore/page/FrameView.cpp:1376
&gt; -    float pageScaleFactor = m_frame-&gt;pageScaleFactor();
&gt; +    float pageScaleFactor = m_frame-&gt;page()-&gt;pageScaleFactor();

What guarantees page() is non-zero here?

&gt; Source/WebCore/page/Page.cpp:616
&gt; +    Document* document = mainFrame()-&gt;document();
&gt; +    if (!document)
&gt; +        return;

I know the old code checked for a document of 0, but it can never be zero.

&gt; Source/WebCore/page/Page.cpp:631
&gt; +    if (FrameView* view = mainFrame()-&gt;view()) {

Would probably be better to just get the view from the view() function on Document.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1254
&gt;      Page* page = frame ? frame-&gt;page() : 0;
&gt; -    if (page-&gt;mainFrame()-&gt;pageScaleFactor() != 1)
&gt; +    if (page-&gt;pageScaleFactor() != 1)

Makes no sense that this does not check for zero. The line above goes to the trouble of checking the frame for zero, but then goes ahead and does a null-dereference in that case anyway!

&gt; Source/WebCore/rendering/RenderView.cpp:231
&gt; +    float pageScaleFactor = document()-&gt;page()-&gt;pageScaleFactor();

What guarantees that page() won’t be 0 here?

&gt; Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:788
&gt; +    coreFrame-&gt;page()-&gt;scalePage(scalefactor, origin);

What guarantees page() is non-zero here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461493</commentid>
    <comment_count>15</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 13:47:56 -0700</bug_when>
    <thetext>Thanks for catching these Darin!!! :)

I don&apos;t understand your suggestion about the helper method. page might be null, and yet the helper method is in page? Should it be a static method of Page, then? 

Fady

(In reply to comment #14)
&gt; (From update of attachment 106181 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106181&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:1173
&gt; &gt; -    documentStyle-&gt;setPageScaleTransform(frame ? frame-&gt;pageScaleFactor() : 1);
&gt; &gt; +    documentStyle-&gt;setPageScaleTransform(document-&gt;page() ? document-&gt;page()-&gt;pageScaleFactor() : 1.0f);
&gt; 
&gt; Why the 1.0f? It wasn’t needed before, isn’t needed now, is inconsistent with the line of code above, and unnecessarily ties the code to a specific type.
&gt; 
&gt; Seeing all these call sites makes me think we need a helper functions somewhere to implement the default of 1 so we don’t have to have explicit null checks repeated everywhere. Given what I see at all the call sites, the helper function could take a Document* and would make the code a lot easier to read, eliminating many local variables and extra lines of code.
&gt; 
&gt; It could just be in the Page.h header:
&gt; 
&gt;     float pageScaleFactor(Document*);
&gt; 
&gt; And then implemented in Page.cpp in the obvious way.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLBodyElement.cpp:271
&gt; &gt; +    float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1.0f;
&gt; 
&gt; Our style is to just use &quot;1&quot; in cases like this instead of &quot;1.0f&quot;.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLBodyElement.cpp:301
&gt; &gt; +    float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1.0f;
&gt; 
&gt; Same &quot;1&quot; thing.
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:1341
&gt; &gt; -    float pageScaleFactor = m_frame-&gt;pageScaleFactor();
&gt; &gt; +    float pageScaleFactor = m_frame-&gt;page()-&gt;pageScaleFactor();
&gt; 
&gt; What guarantees page() is non-zero here?
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:1376
&gt; &gt; -    float pageScaleFactor = m_frame-&gt;pageScaleFactor();
&gt; &gt; +    float pageScaleFactor = m_frame-&gt;page()-&gt;pageScaleFactor();
&gt; 
&gt; What guarantees page() is non-zero here?
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:616
&gt; &gt; +    Document* document = mainFrame()-&gt;document();
&gt; &gt; +    if (!document)
&gt; &gt; +        return;
&gt; 
&gt; I know the old code checked for a document of 0, but it can never be zero.
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:631
&gt; &gt; +    if (FrameView* view = mainFrame()-&gt;view()) {
&gt; 
&gt; Would probably be better to just get the view from the view() function on Document.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1254
&gt; &gt;      Page* page = frame ? frame-&gt;page() : 0;
&gt; &gt; -    if (page-&gt;mainFrame()-&gt;pageScaleFactor() != 1)
&gt; &gt; +    if (page-&gt;pageScaleFactor() != 1)
&gt; 
&gt; Makes no sense that this does not check for zero. The line above goes to the trouble of checking the frame for zero, but then goes ahead and does a null-dereference in that case anyway!
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderView.cpp:231
&gt; &gt; +    float pageScaleFactor = document()-&gt;page()-&gt;pageScaleFactor();
&gt; 
&gt; What guarantees that page() won’t be 0 here?
&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:788
&gt; &gt; +    coreFrame-&gt;page()-&gt;scalePage(scalefactor, origin);
&gt; 
&gt; What guarantees page() is non-zero here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461525</commentid>
    <comment_count>16</comment_count>
      <attachid>106199</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 14:26:10 -0700</bug_when>
    <thetext>Created attachment 106199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461527</commentid>
    <comment_count>17</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 14:29:43 -0700</bug_when>
    <thetext>Darin,

I&apos;ve addressed all your points except the helper method at the moment. Could you please clarify? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461588</commentid>
    <comment_count>18</comment_count>
      <attachid>106199</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 15:39:49 -0700</bug_when>
    <thetext>Comment on attachment 106199
Patch

Attachment 106199 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9584622</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461631</commentid>
    <comment_count>19</comment_count>
      <attachid>106222</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 16:41:08 -0700</bug_when>
    <thetext>Created attachment 106222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461672</commentid>
    <comment_count>20</comment_count>
      <attachid>106232</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-02 18:00:30 -0700</bug_when>
    <thetext>Created attachment 106232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461716</commentid>
    <comment_count>21</comment_count>
      <attachid>106232</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 21:01:49 -0700</bug_when>
    <thetext>Comment on attachment 106232
Patch

Attachment 106232 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9582916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463433</commentid>
    <comment_count>22</comment_count>
      <attachid>106596</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-07 10:33:35 -0700</bug_when>
    <thetext>Created attachment 106596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464163</commentid>
    <comment_count>23</comment_count>
      <attachid>106596</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-08 10:55:05 -0700</bug_when>
    <thetext>Comment on attachment 106596
Patch

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

&gt; Source/WebCore/loader/HistoryController.cpp:90
&gt; +    item-&gt;setPageScaleFactor(page ? page-&gt;pageScaleFactor() : 1.0f);

Should be 1, not 1.0f

&gt; Source/WebCore/page/Page.cpp:633
&gt; +    if (FrameView* view = document-&gt;view()) {
&gt; +        if (document-&gt;renderer() &amp;&amp; document-&gt;renderer()-&gt;needsLayout() &amp;&amp; view-&gt;didFirstLayout())
&gt; +            view-&gt;layout();
&gt; +        view-&gt;setScrollPosition(origin);
&gt; +    }

Why does this still do the layout if the scale didn&apos;t change?

&gt; Source/WebCore/page/Page.h:248
&gt; +        void scalePage(float scale, const LayoutPoint&amp; origin);
&gt; +        float pageScaleFactor() const { return m_pageScaleFactor; }

It bugs me that these names are not symmetrical. Either call the first one setPageScaleFactor(), or call the second one pageScale().

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:594
&gt; +        Page* page = frame()-&gt;page();
&gt; +        float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1;

All this null checking is really tedious. Maybe Frame should have a convenience method that just turns around and calls Page, doing the null check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464171</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-08 10:58:12 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I don&apos;t understand your suggestion about the helper method. page might be null, and yet the helper method is in page? Should it be a static method of Page, then? 

I believe Darin was suggesting a free function (i.e., not a member function). The function would be declared in Page.h but would not be a member of the Page class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464189</commentid>
    <comment_count>25</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-08 11:18:15 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 106596 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106596&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/HistoryController.cpp:90
&gt; &gt; +    item-&gt;setPageScaleFactor(page ? page-&gt;pageScaleFactor() : 1.0f);
&gt; 
&gt; Should be 1, not 1.0f
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:633
&gt; &gt; +    if (FrameView* view = document-&gt;view()) {
&gt; &gt; +        if (document-&gt;renderer() &amp;&amp; document-&gt;renderer()-&gt;needsLayout() &amp;&amp; view-&gt;didFirstLayout())
&gt; &gt; +            view-&gt;layout();
&gt; &gt; +        view-&gt;setScrollPosition(origin);
&gt; &gt; +    }
&gt; 
&gt; Why does this still do the layout if the scale didn&apos;t change?
&gt; 
&gt; &gt; Source/WebCore/page/Page.h:248
&gt; &gt; +        void scalePage(float scale, const LayoutPoint&amp; origin);
&gt; &gt; +        float pageScaleFactor() const { return m_pageScaleFactor; }
&gt; 
&gt; It bugs me that these names are not symmetrical. Either call the first one setPageScaleFactor(), or call the second one pageScale().
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:594
&gt; &gt; +        Page* page = frame()-&gt;page();
&gt; &gt; +        float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1;
&gt; 
&gt; All this null checking is really tedious. Maybe Frame should have a convenience method that just turns around and calls Page, doing the null check.

Ok, I&apos;ll change scalePage to setPageScaleFactor, and I&apos;ll clean up all the null checking with a helper method. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464290</commentid>
    <comment_count>26</comment_count>
      <attachid>106778</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-08 13:25:34 -0700</bug_when>
    <thetext>Created attachment 106778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464292</commentid>
    <comment_count>27</comment_count>
      <attachid>106778</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-08 13:27:29 -0700</bug_when>
    <thetext>Comment on attachment 106778
Patch

Is there a reason why you haven&apos;t added the helper function that Darin recommended?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464295</commentid>
    <comment_count>28</comment_count>
      <attachid>106778</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-08 13:29:27 -0700</bug_when>
    <thetext>Comment on attachment 106778
Patch

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

&gt; Source/WebCore/dom/Range.cpp:2032
&gt; +    if (Page* page = document-&gt;page())
&gt; +        pageScale = page-&gt;pageScaleFactor();

Why not use Frame::pageScaleFactor()?

&gt; Source/WebCore/loader/HistoryController.cpp:90
&gt; +    Page* page = m_frame-&gt;page();
&gt; +    item-&gt;setPageScaleFactor(page ? page-&gt;pageScaleFactor() : 1);

Why not use Frame::pageScaleFactor()?

&gt; Source/WebCore/page/Page.cpp:635
&gt; +    if (FrameView* view = document-&gt;view()) {
&gt; +        if (view-&gt;scrollPosition() != origin) {
&gt; +          if (document-&gt;renderer() &amp;&amp; document-&gt;renderer()-&gt;needsLayout() &amp;&amp; view-&gt;didFirstLayout())
&gt; +              view-&gt;layout();
&gt; +          view-&gt;setScrollPosition(origin);
&gt; +        }
&gt; +    }

Why do layout if the scale didn&apos;t change?

&gt; Source/WebCore/rendering/RenderView.cpp:232
&gt; +    Page* page = document()-&gt;page();
&gt; +    float pageScaleFactor = page ? page-&gt;pageScaleFactor() : 1;

Why not use Frame::pageScaleFactor()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464326</commentid>
    <comment_count>29</comment_count>
      <attachid>106778</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-08 13:51:21 -0700</bug_when>
    <thetext>Comment on attachment 106778
Patch

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

&gt;&gt; Source/WebCore/dom/Range.cpp:2032
&gt;&gt; +        pageScale = page-&gt;pageScaleFactor();
&gt; 
&gt; Why not use Frame::pageScaleFactor()?

More code?

&gt;&gt; Source/WebCore/loader/HistoryController.cpp:90
&gt;&gt; +    item-&gt;setPageScaleFactor(page ? page-&gt;pageScaleFactor() : 1);
&gt; 
&gt; Why not use Frame::pageScaleFactor()?

Fixed.

&gt;&gt; Source/WebCore/page/Page.cpp:635
&gt;&gt; +    }
&gt; 
&gt; Why do layout if the scale didn&apos;t change?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464327</commentid>
    <comment_count>30</comment_count>
      <attachid>106783</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-08 13:51:42 -0700</bug_when>
    <thetext>Created attachment 106783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464422</commentid>
    <comment_count>31</comment_count>
      <attachid>106783</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-08 15:11:04 -0700</bug_when>
    <thetext>Comment on attachment 106783
Patch

Attachment 106783 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9622421</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464440</commentid>
    <comment_count>32</comment_count>
      <attachid>106783</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-09-08 15:24:09 -0700</bug_when>
    <thetext>Comment on attachment 106783
Patch

Attachment 106783 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9623391</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464446</commentid>
    <comment_count>33</comment_count>
      <attachid>106804</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-08 15:37:56 -0700</bug_when>
    <thetext>Created attachment 106804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464529</commentid>
    <comment_count>34</comment_count>
      <attachid>106804</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-08 17:36:24 -0700</bug_when>
    <thetext>Comment on attachment 106804
Patch

Attachment 106804 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9623456</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464550</commentid>
    <comment_count>35</comment_count>
      <attachid>106804</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-08 18:10:38 -0700</bug_when>
    <thetext>Comment on attachment 106804
Patch

Attachment 106804 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9624396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464949</commentid>
    <comment_count>36</comment_count>
      <attachid>106893</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-09-09 11:43:41 -0700</bug_when>
    <thetext>Created attachment 106893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465098</commentid>
    <comment_count>37</comment_count>
      <attachid>106893</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 16:39:04 -0700</bug_when>
    <thetext>Comment on attachment 106893
Patch

Clearing flags on attachment: 106893

Committed r94889: &lt;http://trac.webkit.org/changeset/94889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465099</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 16:39:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105725</attachid>
            <date>2011-08-30 17:49:29 -0700</date>
            <delta_ts>2011-08-31 10:42:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110830204928.patch</filename>
            <type>text/plain</type>
            <size>18982</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM5ODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDE1MjYyZDgwYWRjN2Rl
Y2U5MTUyMzM0M2QyZDYxNDNkZGM4ZTZlLi5hOGMyZTk0MjcxODdjYzk1ZDY5OTZmOGNiNDFmNzZk
ZGVjM2EzZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDgtMzAgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMh
KQorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudCk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KToKKyAgICAg
ICAgKiBkb20vUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0RmxvYXRRdWFkc0Zv
clNjcm9sbEFuZEFic29sdXRlWm9vbUFuZFBhZ2VTY2FsZSk6CisgICAgICAgICogaHRtbC9IVE1M
Qm9keUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0Rm9yWm9vbSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxUb3ApOgorICAgICAgICAqIGxvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJv
bGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3Rh
dGUpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6
OkZyYW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphcHBseU92ZXJmbG93VG9WaWV3
cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRp
b24pOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQ
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNjYWxlUGFnZSk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwYWdlU2NhbGVGYWN0b3IpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1Rv
RW5jbG9zaW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorCiAy
MDExLTA4LTIzICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBb
bWFjXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCBmb3IgbWFjIHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAwODQ1YjdhZDUwZjI2YjU5NjMyNDYz
OTc4MTQwMjFlNzY5NGEwNjEzLi4zMjZhZDI4NjA5YWE3YzVlZWQwOWI0MTczYzQwNGJjY2UzOTA5
NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTU5LDcg
KzExNTksNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHls
ZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXRE
aXNwbGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVu
dC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxPcmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAg
ZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDog
MSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJh
bWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7CisgICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNj
YWxlVHJhbnNmb3JtKGRvY3VtZW50LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKICAgICBk
b2N1bWVudFN0eWxlLT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJF
QURfV1JJVEUgOiBSRUFEX09OTFkpOwogCiAgICAgRWxlbWVudCogZG9jRWxlbWVudCA9IGRvY3Vt
ZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3MTY4ZTEy
YmI0YmQ4NDY4MWIxNWY4ZDUxNzcxNmJiMDMzZDA4OWViLi5iYjZkNTJlMTczNWRjMTk3ZGU3YTkz
OWZmOTlhNjlkNTE3YmE4ZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NjEsMTAgKzU2
MSw4IEBAIFBhc3NSZWZQdHI8Q2xpZW50UmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3Rz
KCkKICAgICByZW5kZXJCb3hNb2RlbE9iamVjdC0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CiAKICAg
ICBmbG9hdCBwYWdlU2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+
cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkK
LSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9
CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIAorICAgICAgICBwYWdl
U2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHZp
ZXcgPSBkb2N1bWVudCgpLT52aWV3KCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCB2aXNpYmxlQ29u
dGVudFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKQEAgLTYxMiwxMCArNjEwLDgg
QEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KQogICAgIH0KIAogICAgIGFkanVzdEZsb2F0UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJl
bmRlcmVyKCkpOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0g
ICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAg
IGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIGZyYW1lLT5wYWdlU2NhbGVGYWN0
b3IoKSk7Ci0gICAgfQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQor
ICAgICAgICBhZGp1c3RGbG9hdFJlY3RGb3JQYWdlU2NhbGUocmVzdWx0LCBwYWdlLT5wYWdlU2Nh
bGVGYWN0b3IoKSk7CiAKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHJlc3VsdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmNwcAppbmRleCBlMTgwNjZlOGFlOWRlNTFlZDgyZmU0YzgxNmQ3N2ZjNmZh
ZDMzZjlkLi45NDgxMzQ2ZjM5NjI2M2Y3NTY0YjI0OWI5ZGVlM2E1YjVmOTdhNzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZS5jcHAKQEAgLTE5NjgsMTAgKzE5NjgsOCBAQCBzdGF0aWMgdm9pZCBhZGp1c3RGbG9h
dFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKFZlY3RvcjxGbG9hdFF1
YQogICAgICAgICByZXR1cm47CiAKICAgICBmbG9hdCBwYWdlU2NhbGUgPSAxOwotICAgIGlmIChQ
YWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gcGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgICAgICBwYWdlU2NhbGUgPSBmcmFtZS0+cGFn
ZVNjYWxlRmFjdG9yKCk7Ci0gICAgfQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBh
Z2UoKSkKKyAgICAgICAgcGFnZVNjYWxlID0gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiAKICAg
ICBMYXlvdXRSZWN0IHZpc2libGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVj
dCgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAppbmRleCAwMzhjNTZhNjI4M2YzZTIy
NmFjMDU0ODk2MTBjM2MxNTEzNDdjODY4Li5mMjkwYzlhOWE5MWZkZWIxMGQwZWFiZjgzNzFkMWNm
NmQwMjc1Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC0y
NjcsNyArMjY3LDggQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnNldFZMaW5rKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCiBzdGF0aWMgaW50IGFkanVzdEZvclpvb20oaW50IHZhbHVlLCBEb2N1bWVudCog
ZG9jdW1lbnQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7Ci0gICAg
ZmxvYXQgem9vbUZhY3RvciA9IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPnBhZ2VT
Y2FsZUZhY3RvcigpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGZs
b2F0IHpvb21GYWN0b3IgPSBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIHBhZ2UtPnBhZ2VTY2Fs
ZUZhY3RvcigpOwogICAgIGlmICh6b29tRmFjdG9yID09IDEpCiAgICAgICAgIHJldHVybiB2YWx1
ZTsKICAgICAvLyBOZWVkZWQgYmVjYXVzZSBvZiB0cnVuY2F0aW9uIChyYXRoZXIgdGhhbiByb3Vu
ZGluZykgd2hlbiBzY2FsaW5nIHVwLgpAQCAtMjg4LDYgKzI4OSw3IEBAIGludCBIVE1MQm9keUVs
ZW1lbnQ6OnNjcm9sbExlZnQoKQogdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnNldFNjcm9sbExlZnQo
aW50IHNjcm9sbExlZnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1l
bnQoKTsKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKICAgICBkb2N1bWVudC0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTI5NSw3ICsyOTcsNyBA
QCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdChpbnQgc2Nyb2xsTGVmdCkKICAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAg
ICAgcmV0dXJuOwotICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19j
YXN0PGludD4oc2Nyb2xsTGVmdCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPnBh
Z2VTY2FsZUZhY3RvcigpKSwgdmlldy0+c2Nyb2xsWSgpKSk7CisgICAgdmlldy0+c2V0U2Nyb2xs
UG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBh
Z2Vab29tRmFjdG9yKCkgKiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSksIHZpZXctPnNjcm9sbFko
KSkpOwogfQogCiBpbnQgSFRNTEJvZHlFbGVtZW50OjpzY3JvbGxUb3AoKQpAQCAtMzEwLDYgKzMx
Miw3IEBAIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbFRvcCgpCiB2b2lkIEhUTUxCb2R5RWxl
bWVudDo6c2V0U2Nyb2xsVG9wKGludCBzY3JvbGxUb3ApCiB7CiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkK
QEAgLTMxNyw3ICszMjAsNyBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsVG9wKGlu
dCBzY3JvbGxUb3ApCiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBp
ZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKLSAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihJ
bnRQb2ludCh2aWV3LT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGludD4oc2Nyb2xsVG9wICogZnJh
bWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkpKSk7CisgICAg
dmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQodmlldy0+c2Nyb2xsWCgpLCBzdGF0aWNf
Y2FzdDxpbnQ+KHNjcm9sbFRvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogcGFnZS0+cGFn
ZVNjYWxlRmFjdG9yKCkpKSk7CiB9CiAKIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbEhlaWdo
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRleCA1
YzM5Zjk2ZjA0NjZkOGVlNWY2Y2ZhYzM5ZjQxOTVkYjYzODlkOTQ2Li45ZWRhYzlmMTQ5NzZmNjdl
MjdiN2ZlZTFiYTBiZGY0Zjg5ZWU0ZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxl
cjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKiBpdGVt
KQogICAgIGVsc2UKICAgICAgICAgaXRlbS0+c2V0U2Nyb2xsUG9pbnQobV9mcmFtZS0+dmlldygp
LT5zY3JvbGxQb3NpdGlvbigpKTsKIAotICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihtX2Zy
YW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1f
ZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwogICAgIAogICAgIC8vIEZJWE1FOiBJ
dCB3b3VsZCBiZSBncmVhdCB0byB3b3JrIG91dCBhIHdheSB0byBwdXQgdGhpcyBjb2RlIGluIFdl
YkNvcmUgaW5zdGVhZCBvZiBjYWxsaW5nIHRocm91Z2ggdG8gdGhlIGNsaWVudC4KICAgICBtX2Zy
YW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNhdmVWaWV3U3RhdGVUb0l0ZW0oaXRlbSk7CkBAIC0x
MjUsNyArMTI1LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0
aW9uQW5kVmlld1N0YXRlKCkKICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmll
dygpKSB7CiAgICAgICAgIGlmICghdmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkgewogICAgICAg
ICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQo
KSk7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5zY2FsZVBhZ2UobV9jdXJyZW50SXRlbS0+cGFnZVNj
YWxlRmFjdG9yKCksIG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOworICAgICAgICAgICAg
bV9mcmFtZS0+cGFnZSgpLT5zY2FsZVBhZ2UobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9y
KCksIG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOwogICAgICAgICB9CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBiZGRhZTYxMTMxZmQ1ZGMyOTVjMDk3MTNkMmYxNDM3M2Q1
YWMxYzZjLi45ZjhjZmY4MzBmNjY3ODQyMWZjNmRiZjgxYzg1YmE5MGIyNzYzNDQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtMTYwLDcgKzE2MCw2IEBAIGlubGluZSBGcmFtZTo6RnJhbWUoUGFn
ZSogcGFnZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIEZyYW1lTG9hZGVy
CiAgICAgLCBtX2FuaW1hdGlvbkNvbnRyb2xsZXIodGhpcykKICAgICAsIG1fcGFnZVpvb21GYWN0
b3IocGFyZW50UGFnZVpvb21GYWN0b3IodGhpcykpCiAgICAgLCBtX3RleHRab29tRmFjdG9yKHBh
cmVudFRleHRab29tRmFjdG9yKHRoaXMpKQotICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICNp
ZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgICwgbV9vcmllbnRhdGlvbigwKQogI2Vu
ZGlmCkBAIC0xMDM3LDMzICsxMDM2LDYgQEAgdm9pZCBGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCkKICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5kZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWQoKTsKIH0KICNlbmRpZgotCi12b2lkIEZyYW1lOjpzY2FsZVBhZ2Uo
ZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pCi17Ci0gICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoc2NhbGUgIT0gbV9wYWdlU2NhbGVGYWN0b3IpIHsKLSAgICAg
ICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZTsKLQotICAgICAgICBpZiAoZG9jdW1lbnQtPnJl
bmRlcmVyKCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlv
dXQodHJ1ZSk7Ci0KLSAgICAgICAgZG9jdW1lbnQtPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsK
LQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgZGV2aWNlT3JQYWdl
U2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBpZiAoRnJhbWVWaWV3
KiB2aWV3ID0gdGhpcy0+dmlldygpKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIo
KSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJz
dExheW91dCgpKQotICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7Ci0gICAgICAgIHZpZXctPnNl
dFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0gICAgfQotfQotCiB2b2lkIEZyYW1lOjpub3RpZnlD
aHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0CiB7CiAgICAg
Ly8gRW5zdXJlIHRoYXQgdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIG9uIHRoZSBtYWluIGZy
YW1lIG9mIHRoZSBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDM1ZmU4YTI3ZDFmOGExOGRiYzYz
MDdlMzk1ZGUwNGUzMmRiM2JhMGQuLmVlMGJhMjZlMTZmNjhjNjJmODgwYmZkYWU4YzAxNmI2Y2Q0
NGYyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE2Miw4ICsxNjIsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgc2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdl
Wm9vbUZhY3RvciwgZmxvYXQgdGV4dFpvb21GYWN0b3IpOwogCiAgICAgICAgIC8vIEZJWE1FOiBU
aGVzZSBmdW5jdGlvbnMgc2hvdWxkIG1vdmUgdG8gUGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBh
Z2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pOwotICAgICAgICBmbG9h
dCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgdm9pZCBkZXZpY2VPclBh
Z2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICNlbmRpZgpAQCAtMjQxLDggKzIzOSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbV9wYWdlWm9vbUZhY3RvcjsKICAgICAgICAg
ZmxvYXQgbV90ZXh0Wm9vbUZhY3RvcjsKIAotICAgICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3Rv
cjsKLQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgICAgIGludCBtX29yaWVu
dGF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggODQzNTYwZDAy
YTU4ZTc1NjI2NzU3ODg4NTFmNzFhMThhMjhmZjZiYy4uYjA2MmNhZWUwMWI0Njg4MzFkZTVhYzQ5
ZjY3ODMzMWU5NzEzMGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTI3LDcg
KzUyNyw3IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBseU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJP
YmplY3QqIG8sIFNjcm9sbGJhck1vZGUmIGhNb2RlLCBTCiAgICAgLy8gVG8gY29tYmF0IHRoZSBp
bmFiaWxpdHkgdG8gc2Nyb2xsIG9uIGEgcGFnZSB3aXRoIG92ZXJmbG93OmhpZGRlbiBvbiB0aGUg
cm9vdCB3aGVuIHNjYWxlZCwgZGlzcmVnYXJkIGhpZGRlbiB3aGVuCiAgICAgLy8gdGhlcmUgaXMg
YSBwYWdlU2NhbGVGYWN0b3IgdGhhdCBpcyBncmVhdGVyIHRoYW4gb25lIG9uIHRoZSBtYWluIGZy
YW1lLgogCi0gICAgYm9vbCBvdmVycmlkZUhpZGRlbiA9IG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2Zy
YW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZVNjYWxl
RmFjdG9yKCkgPiAxOworICAgIGJvb2wgb3ZlcnJpZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkg
JiYgbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBh
Z2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOwogCiAgICAgc3dpdGNoIChvLT5zdHlsZSgpLT5v
dmVyZmxvd1goKSkgewogICAgICAgICBjYXNlIE9ISURERU46CkBAIC0xMzM4LDcgKzEzMzgsNyBA
QCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIHg7CiAKLSAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgLy8g
V2hlbiB0aGUgcGFnZSBpcyBzY2FsZWQsIHRoZSBzY2FsZWQgInZpZXdwb3J0IiB3aXRoIHJlc3Bl
Y3QgdG8gd2hpY2ggZml4ZWQgb2JqZWN0IGFyZSBwb3NpdGlvbmVkCiAgICAgLy8gZG9lc24ndCBt
b3ZlIGFzIGZhc3QgYXMgdGhlIGNvbnRlbnQgdmlldywgc28gdGhhdCB3aGVuIHRoZSBjb250ZW50
IGlzIHNjcm9sbGVkIGFsbCB0aGUgd2F5IHRvIHRoZQpAQCAtMTM3Myw3ICsxMzczLDcgQEAgTGF5
b3V0VW5pdCBGcmFtZVZpZXc6OnNjcm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAgICBp
ZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiB5OwogCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gbV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gbV9mcmFtZS0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICBmbG9hdCBkcmFn
RmFjdG9yID0gKGNvbnRlbnRzSGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVudEhlaWdodCAqIHBhZ2VT
Y2FsZUZhY3RvcikgLyBtYXhZOwogCiAgICAgcmV0dXJuIHkgKiBkcmFnRmFjdG9yIC8gcGFnZVNj
YWxlRmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNmQxZjI5OGNjYTE4ZWU5YzhhYTcyYmM3
NzQ1OTViYWI5OWM2MmYzMi4uMGY3ZjU1MDZmMjIzOTkxODJkYWM2ODQ1ODBmNDk3MTc3NGQwNjlk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNDcsNiArMTQ3LDcgQEAgUGFnZTo6UGFnZShQYWdl
Q2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkKICAgICAs
IG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fbWVkaWFW
b2x1bWUoMSkKKyAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2RldmljZVNjYWxl
RmFjdG9yKDEpCiAgICAgLCBtX2phdmFTY3JpcHRVUkxzQXJlQWxsb3dlZCh0cnVlKQogICAgICwg
bV9kaWRMb2FkVXNlclN0eWxlU2hlZXQoZmFsc2UpCkBAIC01ODAsNiArNTgxLDM1IEBAIHZvaWQg
UGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIH0KIH0KIAordm9pZCBQYWdl
OjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pCit7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjYWxlICE9IG1fcGFnZVNj
YWxlRmFjdG9yKSB7CisgICAgICAgIG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGU7CisKKyAgICAg
ICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJlbmRl
cmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCisgICAgICAgIGRvY3VtZW50LT5yZWNhbGNT
dHlsZShOb2RlOjpGb3JjZSk7CisKKy8qCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorICAgICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKyNlbmRpZgorKi8K
KyAgICB9CisKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lKCktPnZpZXcoKSkg
eworICAgICAgICBpZiAoZG9jdW1lbnQtPnJlbmRlcmVyKCkgJiYgZG9jdW1lbnQtPnJlbmRlcmVy
KCktPm5lZWRzTGF5b3V0KCkgJiYgdmlldy0+ZGlkRmlyc3RMYXlvdXQoKSkKKyAgICAgICAgICAg
IHZpZXctPmxheW91dCgpOworICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihvcmlnaW4p
OworICAgIH0KK30KKworCiB2b2lkIFBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNj
YWxlRmFjdG9yKQogewogICAgIGlmIChtX2RldmljZVNjYWxlRmFjdG9yID09IHNjYWxlRmFjdG9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAppbmRleCA5YjIwYzgxN2Q3YjI3YTQ1NmQ3YzMyMjEzOTllYmRiMTgyMTZk
M2VkLi5jNzAxMDExMDg4Y2JlNzdmMTZkN2FhZjQ1MjVlN2ZhODdkMWNkY2Q5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgog
I2luY2x1ZGUgIkZpbmRPcHRpb25zLmgiCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNs
dWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgpAQCAtMjM5LDYgKzI0MCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbWVkaWFWb2x1bWUoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhVm9sdW1lOyB9CiAgICAgICAgIHZvaWQgc2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9s
dW1lKTsKIAorICAgICAgICB2b2lkIHNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0
UG9pbnQmIG9yaWdpbik7CisgICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsg
cmV0dXJuIG1fcGFnZVNjYWxlRmFjdG9yOyB9CisKICAgICAgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2RldmljZVNjYWxlRmFjdG9yOyB9CiAgICAgICAgIHZv
aWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogCkBAIC0zNjUsNiArMzY5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQ7CiAgICAgICAgIGZsb2F0IG1fbWVkaWFWb2x1bWU7CiAKKyAgICAgICAgZmxvYXQg
bV9wYWdlU2NhbGVGYWN0b3I7CiAgICAgICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3I7CiAK
ICAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRVUkxzQXJlQWxsb3dlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggYWM4NDE1
NjNmZTFlNWJmYzQwZTA4ZTJmNDM2NmNkODRkN2JlOWRlOS4uM2QxMjdkMDhkNWFlN2EwOTI3ZjA2
NDI0MDY3OWIzYTlmY2RjNmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGJvb2wgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5n
RnJhbWUoKSBjb25zdAogICAgIC8vIGRvY3VtZW50LCBvciB0aGUgcGFyZW50IGlzIGFscmVhZHkg
Y29tcG9zaXRpbmcsIG9yIHRoZSBtYWluIGZyYW1lIGlzIHNjYWxlZC4KICAgICBGcmFtZSogZnJh
bWUgPSBtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5mcmFtZSgpOwogICAgIFBhZ2UqIHBhZ2Ug
PSBmcmFtZSA/IGZyYW1lLT5wYWdlKCkgOiAwOwotICAgIGlmIChwYWdlLT5tYWluRnJhbWUoKS0+
cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKKyAgICBpZiAocGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
IT0gMSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgUmVuZGVyUGFydCogZnJhbWVS
ZW5kZXJlciA9IHRvUmVuZGVyUGFydChyZW5kZXJlcik7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBm
bG9hdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAg
UGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gMTsKLSAgICByZXR1cm4gcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpOwor
ICAgIHJldHVybiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVy
KikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBjMWZm
YjVhNmU4NzQ2Zjc1YTA3OTZkNjg4NTBkMzAwODI2NzYyYTA5Li5jNWZlNTdlMjk1MjRjNmU5Njgx
YzIxYzU0ZjZmMTMxYzJmZWJkOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAj
aW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTZWxlY3Rpb25JbmZvLmgi
CkBAIC0yMjcsOSArMjI4LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25z
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgIHJvb3RG
aWxsc1ZpZXdwb3J0ID0gcm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkg
JiYgcm9vdEJveC0+d2lkdGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhl
aWdodCgpOwogICAgIH0KIAotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYg
KEZyYW1lKiBmcmFtZSA9IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVG
YWN0b3IgPSBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIC8vIElm
IHBhaW50aW5nIHdpbGwgZW50aXJlbHkgZmlsbCB0aGUgdmlldywgbm8gbmVlZCB0byBmaWxsIHRo
ZSBiYWNrZ3JvdW5kLgogICAgIGlmIChyb290RmlsbHNWaWV3cG9ydCAmJiByZW5kZXJlck9ic2N1
cmVzQmFja2dyb3VuZChmaXJzdENoaWxkKCkpICYmIHBhZ2VTY2FsZUZhY3RvciA+PSAxKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwNDZmYjEzYzliNzhmODBjYjljZmEyYWMxYTYwMDA1
NjcyM2Y1ODdjLi5kMjM3NjIwMDQzOGI2Y2RiNjM3OWM5N2RlOThhODlmNjNlNzZmNDBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTMwICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxl
RmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWdlU2NhbGVGYWN0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2NhbGVQYWdlKToKKwogMjAxMS0wOC0yNyAgUGV0
ZXIgQmV2ZXJsb28gIDxwZXRlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGVhY2ggdGhlIHVw
ZGF0ZSBhbmQgYnVpbGQgc2NyaXB0cyBob3cgdG8gaGFuZGxlIGRlcGVuZGVuY2llcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGNlNGIzZjFlZWM5NDNm
NGIyYmU5NDcyYzQ0OGJkMTQ1ZTlhYmVhZTQuLjM2YzM4OWVkZDc0YjYwZGFlZjg3YjA1M2ViMjY3
ZDVmM2Q1MTNjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKQEAgLTE4MzcsMTEgKzE4MzcsNyBAQCBmbG9hdCBXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0dXJuIDEuMDsKIAotICAg
IEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuIDEuMDsKLQotICAgIHJldHVybiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7
CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQpAQCAt
MTg0OSwxMSArMTg0NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2Fs
ZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICgh
ZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0
b3IsIG9yaWdpbik7CisgICAgcGFnZSgpLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7
CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105789</attachid>
            <date>2011-08-31 10:42:59 -0700</date>
            <delta_ts>2011-09-02 11:54:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110831134257.patch</filename>
            <type>text/plain</type>
            <size>23749</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQxOTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzJmMDM4MDI2MjM1ZTYw
NWRjNjk0YmE5ZDdhNzlmYzU2MWVlM2YxLi41NWIyOTI1Y2FjMzZhMTViM2M0NWM1ODJjNGEwNzY3
OTIwNzc3Yzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDgtMzEgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZv
ckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpnZXRDbGllbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpn
ZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kUGFn
ZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVu
dDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnNl
dFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRW
aWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJl
c3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9GcmFtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmll
dzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDgtMzEgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgSFRNTE1lZGlhRWxlbWVu
dCBiZWhhdmlvciByZXN0cmljdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCA4MWIyY2UxNDVhMWIyMGIxMTIzMzgzMWZmZTdjZTE5YTliMzc3MGI2Li5iYjBi
ZTQ4M2JhM2UxNGQxZDNhMmVjYWQ3ZGViYzg4ODFlN2ViMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBk
b2N1bWVudCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAgICBkb2N1
bWVudFN0eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBW
aXN1YWxPcmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShm
cmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+
c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDog
MSk7CisgICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3VtZW50LT5w
YWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRVc2VyTW9k
aWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJVEUgOiBSRUFEX09OTFkpOwog
CiAgICAgRWxlbWVudCogZG9jRWxlbWVudCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3MTY4ZTEyYmI0YmQ4NDY4MWIxNWY4ZDUxNzcxNmJi
MDMzZDA4OWViLi5iYjZkNTJlMTczNWRjMTk3ZGU3YTkzOWZmOTlhNjlkNTE3YmE4ZWI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NjEsMTAgKzU2MSw4IEBAIFBhc3NSZWZQdHI8Q2xpZW50
UmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKICAgICByZW5kZXJCb3hNb2RlbE9i
amVjdC0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CiAKICAgICBmbG9hdCBwYWdlU2NhbGUgPSAxOwot
ICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9
IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBk
b2N1bWVudCgpLT5wYWdlKCkpIAorICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVG
YWN0b3IoKTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVudCgpLT52aWV3KCkp
IHsKICAgICAgICAgTGF5b3V0UmVjdCB2aXNpYmxlQ29udGVudFJlY3QgPSB2aWV3LT52aXNpYmxl
Q29udGVudFJlY3QoKTsKQEAgLTYxMiwxMCArNjEwLDggQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0
PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQogICAgIH0KIAogICAgIGFkanVzdEZs
b2F0UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRlcmVyKCkpOwotICAgIGlmIChQYWdl
KiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUg
PSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIGFkanVzdEZsb2F0UmVjdEZvclBhZ2VT
Y2FsZShyZXN1bHQsIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAgfQorICAgIGlmIChQ
YWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICBhZGp1c3RGbG9hdFJlY3RG
b3JQYWdlU2NhbGUocmVzdWx0LCBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CiAKICAgICByZXR1
cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCBl
MTgwNjZlOGFlOWRlNTFlZDgyZmU0YzgxNmQ3N2ZjNmZhZDMzZjlkLi45NDgxMzQ2ZjM5NjI2M2Y3
NTY0YjI0OWI5ZGVlM2E1YjVmOTdhNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTE5NjgsMTAg
KzE5NjgsOCBAQCBzdGF0aWMgdm9pZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1
dGVab29tQW5kUGFnZVNjYWxlKFZlY3RvcjxGbG9hdFF1YQogICAgICAgICByZXR1cm47CiAKICAg
ICBmbG9hdCBwYWdlU2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBh
Z2UoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCkpCi0g
ICAgICAgICAgICBwYWdlU2NhbGUgPSBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgfQor
ICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgcGFnZVNjYWxl
ID0gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiAKICAgICBMYXlvdXRSZWN0IHZpc2libGVDb250
ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlF
bGVtZW50LmNwcAppbmRleCAwMzhjNTZhNjI4M2YzZTIyNmFjMDU0ODk2MTBjM2MxNTEzNDdjODY4
Li5mMjkwYzlhOWE5MWZkZWIxMGQwZWFiZjgzNzFkMWNmNmQwMjc1Njk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC0yNjcsNyArMjY3LDggQEAgdm9pZCBIVE1M
Qm9keUVsZW1lbnQ6OnNldFZMaW5rKGNvbnN0IFN0cmluZyYgdmFsdWUpCiBzdGF0aWMgaW50IGFk
anVzdEZvclpvb20oaW50IHZhbHVlLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7Ci0gICAgZmxvYXQgem9vbUZhY3RvciA9IGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGZsb2F0IHpvb21GYWN0b3IgPSBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogICAgIGlmICh6b29t
RmFjdG9yID09IDEpCiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAvLyBOZWVkZWQgYmVjYXVz
ZSBvZiB0cnVuY2F0aW9uIChyYXRoZXIgdGhhbiByb3VuZGluZykgd2hlbiBzY2FsaW5nIHVwLgpA
QCAtMjg4LDYgKzI4OSw3IEBAIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbExlZnQoKQogdm9p
ZCBIVE1MQm9keUVsZW1lbnQ6OnNldFNjcm9sbExlZnQoaW50IHNjcm9sbExlZnQpCiB7CiAgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBQYWdlKiBwYWdlID0g
ZG9jdW1lbnQtPnBhZ2UoKTsKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAg
ICAgaWYgKCFmcmFtZSkKQEAgLTI5NSw3ICsyOTcsNyBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6
c2V0U2Nyb2xsTGVmdChpbnQgc2Nyb2xsTGVmdCkKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFt
ZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwotICAgIHZpZXctPnNl
dFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4oc2Nyb2xsTGVmdCAqIGZy
YW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKSwgdmlldy0+
c2Nyb2xsWSgpKSk7CisgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGlj
X2Nhc3Q8aW50PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlLT5w
YWdlU2NhbGVGYWN0b3IoKSksIHZpZXctPnNjcm9sbFkoKSkpOwogfQogCiBpbnQgSFRNTEJvZHlF
bGVtZW50OjpzY3JvbGxUb3AoKQpAQCAtMzEwLDYgKzMxMiw3IEBAIGludCBIVE1MQm9keUVsZW1l
bnQ6OnNjcm9sbFRvcCgpCiB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBz
Y3JvbGxUb3ApCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsK
KyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKICAgICBkb2N1bWVudC0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQtPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMxNyw3ICszMjAsNyBAQCB2b2lk
IEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsVG9wKGludCBzY3JvbGxUb3ApCiAgICAgRnJhbWVW
aWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVy
bjsKLSAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCh2aWV3LT5zY3JvbGxYKCks
IHN0YXRpY19jYXN0PGludD4oc2Nyb2xsVG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBm
cmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkpKSk7CisgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24o
SW50UG9pbnQodmlldy0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxpbnQ+KHNjcm9sbFRvcCAqIGZy
YW1lLT5wYWdlWm9vbUZhY3RvcigpICogcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkpKSk7CiB9CiAK
IGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbEhlaWdodCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRleCA1YzM5Zjk2ZjA0NjZkOGVlNWY2Y2ZhYzM5
ZjQxOTVkYjYzODlkOTQ2Li45ZWRhYzlmMTQ5NzZmNjdlMjdiN2ZlZTFiYTBiZGY0Zjg5ZWU0ZGFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKQEAgLTg2
LDcgKzg2LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5k
Vmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKiBpdGVtKQogICAgIGVsc2UKICAgICAgICAgaXRl
bS0+c2V0U2Nyb2xsUG9pbnQobV9mcmFtZS0+dmlldygpLT5zY3JvbGxQb3NpdGlvbigpKTsKIAot
ICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihtX2ZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7
CisgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1fZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxl
RmFjdG9yKCkpOwogICAgIAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBncmVhdCB0byB3b3Jr
IG91dCBhIHdheSB0byBwdXQgdGhpcyBjb2RlIGluIFdlYkNvcmUgaW5zdGVhZCBvZiBjYWxsaW5n
IHRocm91Z2ggdG8gdGhlIGNsaWVudC4KICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkt
PnNhdmVWaWV3U3RhdGVUb0l0ZW0oaXRlbSk7CkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBp
ZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7CiAgICAgICAgIGlmICghdmll
dy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkgewogICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9z
aXRpb24obV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7Ci0gICAgICAgICAgICBtX2ZyYW1l
LT5zY2FsZVBhZ2UobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCksIG1fY3VycmVudEl0
ZW0tPnNjcm9sbFBvaW50KCkpOworICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5zY2FsZVBh
Z2UobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCksIG1fY3VycmVudEl0ZW0tPnNjcm9s
bFBvaW50KCkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBi
ZGRhZTYxMTMxZmQ1ZGMyOTVjMDk3MTNkMmYxNDM3M2Q1YWMxYzZjLi45ZjhjZmY4MzBmNjY3ODQy
MWZjNmRiZjgxYzg1YmE5MGIyNzYzNDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTYwLDcg
KzE2MCw2IEBAIGlubGluZSBGcmFtZTo6RnJhbWUoUGFnZSogcGFnZSwgSFRNTEZyYW1lT3duZXJF
bGVtZW50KiBvd25lckVsZW1lbnQsIEZyYW1lTG9hZGVyCiAgICAgLCBtX2FuaW1hdGlvbkNvbnRy
b2xsZXIodGhpcykKICAgICAsIG1fcGFnZVpvb21GYWN0b3IocGFyZW50UGFnZVpvb21GYWN0b3Io
dGhpcykpCiAgICAgLCBtX3RleHRab29tRmFjdG9yKHBhcmVudFRleHRab29tRmFjdG9yKHRoaXMp
KQotICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZF
TlRTKQogICAgICwgbV9vcmllbnRhdGlvbigwKQogI2VuZGlmCkBAIC0xMDM3LDMzICsxMDM2LDYg
QEAgdm9pZCBGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKICAgICAgICAg
cm9vdC0+Y29tcG9zaXRvcigpLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKIH0K
ICNlbmRpZgotCi12b2lkIEZyYW1lOjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91
dFBvaW50JiBvcmlnaW4pCi17Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1l
bnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoc2Nh
bGUgIT0gbV9wYWdlU2NhbGVGYWN0b3IpIHsKLSAgICAgICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBz
Y2FsZTsKLQotICAgICAgICBpZiAoZG9jdW1lbnQtPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICBk
b2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7Ci0KLSAgICAgICAgZG9j
dW1lbnQtPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLSAgICAgICAgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0j
ZW5kaWYKLSAgICB9Ci0KLSAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gdGhpcy0+dmlldygpKSB7
Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVuZGVyZXIo
KS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQotICAgICAgICAgICAg
dmlldy0+bGF5b3V0KCk7Ci0gICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7
Ci0gICAgfQotfQotCiB2b2lkIEZyYW1lOjpub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFu
ZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0CiB7CiAgICAgLy8gRW5zdXJlIHRoYXQgdGhpcyBtZXRo
b2QgaXMgYmVpbmcgY2FsbGVkIG9uIHRoZSBtYWluIGZyYW1lIG9mIHRoZSBwYWdlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oCmluZGV4IDM1ZmU4YTI3ZDFmOGExOGRiYzYzMDdlMzk1ZGUwNGUzMmRiM2JhMGQuLjAx
NDdmYjE3MGQzMTJkNjk0NmMwYjk1OGU2YTY2MWU1MDBlNWNjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
QEAgLTE2MSw5ICsxNjEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0IHRl
eHRab29tRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Wm9vbUZhY3RvcjsgfQogICAgICAg
ICB2b2lkIHNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoZmxvYXQgcGFnZVpvb21GYWN0b3IsIGZs
b2F0IHRleHRab29tRmFjdG9yKTsKIAotICAgICAgICAvLyBGSVhNRTogVGhlc2UgZnVuY3Rpb25z
IHNob3VsZCBtb3ZlIHRvIFBhZ2UuCi0gICAgICAgIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxl
LCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKTsKLSAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JD
aGFuZ2VkKCk7CiAjZW5kaWYKQEAgLTI0MSw4ICsyMzgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGZsb2F0IG1fcGFnZVpvb21GYWN0b3I7CiAgICAgICAgIGZsb2F0IG1fdGV4dFpv
b21GYWN0b3I7CiAKLSAgICAgICAgZmxvYXQgbV9wYWdlU2NhbGVGYWN0b3I7Ci0KICNpZiBFTkFC
TEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgICAgICBpbnQgbV9vcmllbnRhdGlvbjsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDFhN2E4ZWZiN2NkMGRjNWM2MmJmOTQx
ZDIzNGY3OTYwZDVlMDE1NDYuLmIwMzIxYzJhZjIwMDVkYTcxYWY4NTM0ZjkzZGNiMjlhM2Y1MTM2
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lk
IEZyYW1lVmlldzo6YXBwbHlPdmVyZmxvd1RvVmlld3BvcnQoUmVuZGVyT2JqZWN0KiBvLCBTY3Jv
bGxiYXJNb2RlJiBoTW9kZSwgUwogICAgIC8vIFRvIGNvbWJhdCB0aGUgaW5hYmlsaXR5IHRvIHNj
cm9sbCBvbiBhIHBhZ2Ugd2l0aCBvdmVyZmxvdzpoaWRkZW4gb24gdGhlIHJvb3Qgd2hlbiBzY2Fs
ZWQsIGRpc3JlZ2FyZCBoaWRkZW4gd2hlbgogICAgIC8vIHRoZXJlIGlzIGEgcGFnZVNjYWxlRmFj
dG9yIHRoYXQgaXMgZ3JlYXRlciB0aGFuIG9uZSBvbiB0aGUgbWFpbiBmcmFtZS4KIAotICAgIGJv
b2wgb3ZlcnJpZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpID4gMTsK
KyAgICBib29sIG92ZXJyaWRlSGlkZGVuID0gbV9mcmFtZS0+cGFnZSgpICYmIG1fZnJhbWUtPnBh
Z2UoKS0+bWFpbkZyYW1lKCkgPT0gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCktPnBhZ2VTY2Fs
ZUZhY3RvcigpID4gMTsKIAogICAgIHN3aXRjaCAoby0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkpIHsK
ICAgICAgICAgY2FzZSBPSElEREVOOgpAQCAtMTMzOCw3ICsxMzM4LDcgQEAgTGF5b3V0VW5pdCBG
cmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAgICBpZiAoIW1fZnJh
bWUpCiAgICAgICAgIHJldHVybiB4OwogCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gbV9m
cmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gbV9m
cmFtZS0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIC8vIFdoZW4gdGhlIHBhZ2Ug
aXMgc2NhbGVkLCB0aGUgc2NhbGVkICJ2aWV3cG9ydCIgd2l0aCByZXNwZWN0IHRvIHdoaWNoIGZp
eGVkIG9iamVjdCBhcmUgcG9zaXRpb25lZAogICAgIC8vIGRvZXNuJ3QgbW92ZSBhcyBmYXN0IGFz
IHRoZSBjb250ZW50IHZpZXcsIHNvIHRoYXQgd2hlbiB0aGUgY29udGVudCBpcyBzY3JvbGxlZCBh
bGwgdGhlIHdheSB0byB0aGUKQEAgLTEzNzMsNyArMTM3Myw3IEBAIExheW91dFVuaXQgRnJhbWVW
aWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0CiAgICAgaWYgKCFtX2ZyYW1lKQog
ICAgICAgICByZXR1cm4geTsKIAotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IG1fZnJhbWUt
PnBhZ2VTY2FsZUZhY3RvcigpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IG1fZnJhbWUt
PnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgZmxvYXQgZHJhZ0ZhY3RvciA9IChjb250
ZW50c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBwYWdlU2NhbGVGYWN0b3IpIC8g
bWF4WTsKIAogICAgIHJldHVybiB5ICogZHJhZ0ZhY3RvciAvIHBhZ2VTY2FsZUZhY3RvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IGIxOGZkMzkyZTlkMTBkZmQ1NjAzZGJkNjVmNWFlMTMyOWJjMTlj
N2QuLjBjOWZlNTlmY2FmNzAzMDdjZDkzYjk2YTc5NTA4Mjk4NTE0YmE4OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VD
bGllbnRzKQogICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZU1lbW9yeUNh
Y2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCisgICAg
LCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQogICAg
ICwgbV9qYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQodHJ1ZSkKICAgICAsIG1fZGlkTG9hZFVzZXJT
dHlsZVNoZWV0KGZhbHNlKQpAQCAtNjA4LDYgKzYwOSwzMyBAQCB2b2lkIFBhZ2U6OnNldE1lZGlh
Vm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICB9CiB9CiAKK3ZvaWQgUGFnZTo6c2NhbGVQYWdlKGZs
b2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKQoreworICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChzY2FsZSAhPSBtX3BhZ2VTY2FsZUZhY3Rvcikgewor
ICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOworCisgICAgICAgIGlmIChkb2N1bWVu
dC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5yZW5kZXJlcigpLT5zZXROZWVk
c0xheW91dCh0cnVlKTsKKworICAgICAgICBkb2N1bWVudC0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9y
Y2UpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICBtYWluRnJh
bWUoKS0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisjZW5kaWYKKyAgICB9CisK
KyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lKCktPnZpZXcoKSkgeworICAgICAg
ICBpZiAoZG9jdW1lbnQtPnJlbmRlcmVyKCkgJiYgZG9jdW1lbnQtPnJlbmRlcmVyKCktPm5lZWRz
TGF5b3V0KCkgJiYgdmlldy0+ZGlkRmlyc3RMYXlvdXQoKSkKKyAgICAgICAgICAgIHZpZXctPmxh
eW91dCgpOworICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihvcmlnaW4pOworICAgIH0K
K30KKworCiB2b2lkIFBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9y
KQogewogICAgIGlmIChtX2RldmljZVNjYWxlRmFjdG9yID09IHNjYWxlRmFjdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCBlZmQxMzAzMzMzNmU5ZDFlMzdiN2IwZTRkMmI0MmYxNjc4N2VmY2E5Li5hYzk3
YjI4OWNkYzRlYTVmNzM0MzBlOTM4NzY4NmY0OWNhOTI0ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
MjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUg
IkZpbmRPcHRpb25zLmgiCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQYWdl
VmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJWaWV3cG9ydEFyZ3VtZW50cy5oIgpAQCAtMjQzLDYgKzI0NCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgZmxvYXQgbWVkaWFWb2x1bWUoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
Vm9sdW1lOyB9CiAgICAgICAgIHZvaWQgc2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKTsKIAor
ICAgICAgICB2b2lkIHNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9y
aWdpbik7CisgICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZVNjYWxlRmFjdG9yOyB9CisKICAgICAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX2RldmljZVNjYWxlRmFjdG9yOyB9CiAgICAgICAgIHZvaWQgc2V0RGV2
aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogCkBAIC0zNjksNiArMzczLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQ7
CiAgICAgICAgIGZsb2F0IG1fbWVkaWFWb2x1bWU7CiAKKyAgICAgICAgZmxvYXQgbV9wYWdlU2Nh
bGVGYWN0b3I7CiAgICAgICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3I7CiAKICAgICAgICAg
Ym9vbCBtX2phdmFTY3JpcHRVUkxzQXJlQWxsb3dlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggYWM4NDE1NjNmZTFlNWJm
YzQwZTA4ZTJmNDM2NmNkODRkN2JlOWRlOS4uM2QxMjdkMDhkNWFlN2EwOTI3ZjA2NDI0MDY3OWIz
YTlmY2RjNmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBj
b25zdAogICAgIC8vIGRvY3VtZW50LCBvciB0aGUgcGFyZW50IGlzIGFscmVhZHkgY29tcG9zaXRp
bmcsIG9yIHRoZSBtYWluIGZyYW1lIGlzIHNjYWxlZC4KICAgICBGcmFtZSogZnJhbWUgPSBtX3Jl
bmRlclZpZXctPmZyYW1lVmlldygpLT5mcmFtZSgpOwogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSA/
IGZyYW1lLT5wYWdlKCkgOiAwOwotICAgIGlmIChwYWdlLT5tYWluRnJhbWUoKS0+cGFnZVNjYWxl
RmFjdG9yKCkgIT0gMSkKKyAgICBpZiAocGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgUmVuZGVyUGFydCogZnJhbWVSZW5kZXJlciA9
IHRvUmVuZGVyUGFydChyZW5kZXJlcik7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBmbG9hdCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgUGFnZSogcGFn
ZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMTsKLSAg
ICByZXR1cm4gcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVy
biBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBjMWZmYjVhNmU4NzQ2
Zjc1YTA3OTZkNjg4NTBkMzAwODI2NzYyYTA5Li5jNWZlNTdlMjk1MjRjNmU5NjgxYzIxYzU0ZjZm
MTMxYzJmZWJkOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTZWxlY3Rpb25JbmZvLmgiCkBAIC0yMjcs
OSArMjI4LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgIHJvb3RGaWxsc1ZpZXdw
b3J0ID0gcm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJv
eC0+d2lkdGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwog
ICAgIH0KIAotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBm
cmFtZSA9IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBm
cmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gZG9j
dW1lbnQoKS0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIC8vIElmIHBhaW50aW5n
IHdpbGwgZW50aXJlbHkgZmlsbCB0aGUgdmlldywgbm8gbmVlZCB0byBmaWxsIHRoZSBiYWNrZ3Jv
dW5kLgogICAgIGlmIChyb290RmlsbHNWaWV3cG9ydCAmJiByZW5kZXJlck9ic2N1cmVzQmFja2dy
b3VuZChmaXJzdENoaWxkKCkpICYmIHBhZ2VTY2FsZUZhY3RvciA+PSAxKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA4NjJjMzVmNzMzMmE1ZWMxZjUxYmNjOGZjNGZhMThiMDNkNTU0NzVl
Li5jNmM0NWI3ZDMzOGE5NDFmYmIzNmJmNDJhODZjODkwZTU5N2MzNTNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTMxICBGYWR5IFNhbXVlbCAg
PGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNv
ZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2NhbGVQYWdlKToKKwogMjAxMS0wOC0zMCAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjk0MTQyLCByOTQxNDQsIHI5NDE0NSwgYW5kIHI5NDE0OC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA3ZjI4YmY4MmI0M2Y5ODJmNzhk
Y2IxMWIzMjE1NTljYjAyY2FhYTI2Li5iYWQxMGJhOWQ0ZjVkMmUzOTVlYmY2NGY1ODQ4OTBhNTA2
ODJjMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBA
IC0xODQwLDExICsxODQwLDcgQEAgZmxvYXQgV2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZhY3Rvcigp
IGNvbnN0CiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAgIHJldHVybiAxLjA7CiAKLSAgICBGcmFt
ZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAg
IHJldHVybiAxLjA7Ci0KLSAgICByZXR1cm4gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAg
IHJldHVybiBwYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBs
OjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGVGYWN0b3IsIFdlYlBvaW50IG9yaWdpbikKQEAgLTE4NTIs
MTEgKzE4NDgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGVGYWN0
b3IsIFdlYlBvaW50IG9yaWdpbikKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgRnJhbWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBmcmFtZS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBv
cmlnaW4pOworICAgIHBhZ2UoKS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBvcmlnaW4pOwogfQog
CiBib29sIFdlYlZpZXdJbXBsOjppc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGVmMjBkZWUwNWM4ZTMzNmEzMDE1N2I4YzdmNmU3ZThhZmEwMTdhNTAu
LmZkMmU3YjhmZGMxZTBkNDRkN2JhNTg5ODdiOGVmMWU5MjBlOWZjM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wOC0zMSAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJh
bWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeSk6
CisKIDIwMTEtMDgtMzAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NDE0Miwgcjk0MTQ0LCByOTQx
NDUsIGFuZCByOTQxNDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA1ZDVhMDc4MjI1
ZWIwMWJlOTljN2RjYTliNTJkMjAyN2NjYjJmMGY5Li5hYjg2ZmFkODJhYmRkNzZkYTIzMDQyNGRm
YTVhYTFmMWM5Zjc5ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgwMyw5ICs4
MDMsNSBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2hvdWxkQ2xvc2UoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2NhbGVQ
YWdlQnkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0IHgs
IGZsb2F0IHkpCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUod2ViVmlldyktPm1haW5G
cmFtZSgpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb3Jl
RnJhbWUtPnNjYWxlUGFnZShzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOworICAgIGNvcmUo
d2ViVmlldyktPnNjYWxlUGFnZShzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCAyMjFhZjNlMzhjZjAzZGViNTE3Nzc4MjA3ZDJhM2M1Yjc0NDU3OTczLi42
MGZiNjY0ODJjZWUyMWNlNjIzYTEyZDcwODM3YmJlNjk4MDI2NzIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDExLTA4LTMxICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57
aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBhZ2VCeSk6CisKIDIw
MTEtMDgtMzEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFA
b3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFVuc2tpcCBBUEkgdGVzdCBmb3IgbG9hZCBz
aWduYWxzIG9yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGY0YTE1OTYxYzkzNjMzMGY3
ZjcxYmM3ZWMyNGE0NDQ2NDk0YzdiMTAuLjk5OTdlMjIwZjE4MGIzMGM4M2YyYmIzZmJlNGQwZThm
OTJhZmFmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03ODUsNyArNzg1LDcgQEAgUVN0
cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dmlld3BvcnRBc1RleHQoUVdlYlBhZ2UqIHBh
Z2UsIGludCBkZXZpY2VEUEksIGMKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNjYWxl
UGFnZUJ5KFFXZWJGcmFtZSogZnJhbWUsIGZsb2F0IHNjYWxlZmFjdG9yLCBjb25zdCBRUG9pbnQm
IG9yaWdpbikKIHsKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJp
dmF0ZTo6Y29yZShmcmFtZSk7Ci0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVmYWN0b3Is
IG9yaWdpbik7CisgICAgY29yZUZyYW1lLT5wYWdlKCktPnNjYWxlUGFnZShzY2FsZWZhY3Rvciwg
b3JpZ2luKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6YWN0aXZlTW9ja0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50KGJvb2wgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMmM3YzVkYzVjYmVj
ZTk0MGQ1Y2RlZDY1OWI4MmRhMDk5ZTI3ZjE2Li4yY2UyMTg2NzQwMTFlOWFhZWQ0M2U3NThlMzcz
ZjdhMjI2OTNmMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMzEgIEZh
ZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2Nh
bGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZVBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwYWdlU2NhbGVGYWN0b3IpOgorCiAyMDExLTA4LTMw
ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcxNTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiYzIwZmJlY2RlMmM2NjUyOGI1ZTkxMjM4
N2YyZGE0ZTI3YjBhYTcwLi44NTJlZmE3NDQyYmI5NWE2OTllOTRlNDQ2MGYxY2E2ZDM4MWQ5MmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC03NzYsMjAgKzc3NiwxNCBAQCB2b2lkIFdlYlBhZ2U6OnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3Rv
cnMoZG91YmxlIHBhZ2Vab29tRmFjdG9yLCBkb3VibGUgdGV4dFpvb21GYQogCiB2b2lkIFdlYlBh
Z2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIGlmICghZnJh
bWUpCi0gICAgICAgIHJldHVybjsKLSAgICBmcmFtZS0+c2NhbGVQYWdlKHNjYWxlLCBvcmlnaW4p
OworICAgIG1fcGFnZS0+c2NhbGVQYWdlKHNjYWxlLCBvcmlnaW4pOwogCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQYWdlU2NhbGVGYWN0b3JEaWRDaGFuZ2Uoc2NhbGUpKTsKIH0K
IAogZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7Ci0gICAgRnJhbWUq
IGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAg
ICAgIHJldHVybiAxOwotICAgIHJldHVybiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAg
cmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0
RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106172</attachid>
            <date>2011-09-02 11:54:10 -0700</date>
            <delta_ts>2011-09-02 13:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110902145409.patch</filename>
            <type>text/plain</type>
            <size>24012</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDYwMmQ1M2E4YTdiZjM0
YWExYmU1YjdkZGNlY2Q2NjMzMzViNDY3Li4zNjIwMDg4Nzc0MTJiODU1Nzc1NjYyOWRhNmRiOWZk
Y2M0ODUyNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDktMDIgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29t
QW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5
RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnNldFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRp
b25BbmRWaWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDIgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5NDQwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCBjYWVjYTE3YTA4MWQ0NDM3MjRjY2UxZDM4NDUwNTJmYjdmZDAyMmE5Li5jOTA3NTRmYzNm
MjAwNTE2ZmIyZDdlY2NmZTc5NjY0YjE5MTQzNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0
eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxP
cmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFn
ZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7Cisg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3VtZW50LT5wYWdlKCkg
PyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEuMGYpOwogICAgIGRvY3Vt
ZW50U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9X
UklURSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQt
PmRvY3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGZmMmZlMGI1Njhk
MmVmYWFlYTVjNDhhZWEyZGFhMzRjZjIxNWI5OGUuLjZjYjkwZjYzNGVkODFiNzNmYjc4YjlkMjlj
MDQ4MDEzYTEwYzJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU2MiwxMCArNTYyLDgg
QEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQog
ICAgIHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKIAogICAgIGZs
b2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdl
KCkpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAg
ICAgICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIH0KKyAg
ICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAgICAgIHBhZ2VTY2Fs
ZSA9IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9
IGRvY3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZpc2libGVDb250ZW50
UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNjEzLDEwICs2MTEsOCBAQCBQ
YXNzUmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpCiAg
ICAgfQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJlc3VsdCwgcmVuZGVy
ZXIoKSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIHsKLSAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAgICAgYWRq
dXN0RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VTY2FsZUZhY3Rvcigp
KTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAg
ICAgIGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2UtPnBhZ2VTY2FsZUZh
Y3RvcigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwCmluZGV4IGUxODA2NmU4YWU5ZGU1MWVkODJmZTRjODE2ZDc3ZmM2ZmFkMzNm
OWQuLjk0ODEzNDZmMzk2MjYzZjc1NjRiMjQ5YjlkZWUzYTViNWY5N2E3OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmNwcApAQCAtMTk2OCwxMCArMTk2OCw4IEBAIHN0YXRpYyB2b2lkIGFkanVzdEZsb2F0UXVh
ZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9yPEZsb2F0UXVhCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBw
YWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgp
KQorICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIExh
eW91dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IGYzNDY3ZTY4OGJjYjVhZjE3NWVm
ZGY5NjdiZWEyNDFkMjQ2OGMzZTcuLmQ3MTBlODc3OTcxYTdkODc5MDJhMjJmNzIwZTI1N2ZhM2Yz
MWNjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTI2Nyw3
ICsyNjcsOSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0VkxpbmsoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHN0YXRpYyBpbnQgYWRqdXN0Rm9yWm9vbShpbnQgdmFsdWUsIERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBmbG9h
dCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxl
RmFjdG9yKCk7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMS4wZjsK
KyAgICBmbG9hdCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2Nh
bGVGYWN0b3I7CiAgICAgaWYgKHpvb21GYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIHZhbHVl
OwogICAgIC8vIE5lZWRlZCBiZWNhdXNlIG9mIHRydW5jYXRpb24gKHJhdGhlciB0aGFuIHJvdW5k
aW5nKSB3aGVuIHNjYWxpbmcgdXAuCkBAIC0yODgsNiArMjkwLDcgQEAgaW50IEhUTUxCb2R5RWxl
bWVudDo6c2Nyb2xsTGVmdCgpCiB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdChp
bnQgc2Nyb2xsTGVmdCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAgIGRvY3VtZW50LT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBGcmFtZSogZnJhbWUg
PSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMjk1LDcgKzI5OCw4IEBA
IHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBzY3JvbGxMZWZ0KQogICAg
IEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAg
ICByZXR1cm47Ci0gICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nh
c3Q8aW50PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFn
ZVNjYWxlRmFjdG9yKCkpLCB2aWV3LT5zY3JvbGxZKCkpKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxLjBmOworICAgIHZpZXct
PnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4oc2Nyb2xsTGVmdCAq
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogcGFnZVNjYWxlRmFjdG9yKSwgdmlldy0+c2Nyb2xs
WSgpKSk7CiB9CiAKIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbFRvcCgpCkBAIC0zMTAsNiAr
MzE0LDcgQEAgaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHZvaWQgSFRNTEJvZHlF
bGVtZW50OjpzZXRTY3JvbGxUb3AoaW50IHNjcm9sbFRvcCkKIHsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFn
ZSgpOwogICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1l
KQpAQCAtMzE3LDcgKzMyMiw4IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxUb3Ao
aW50IHNjcm9sbFRvcCkKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAg
IGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwotICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9u
KEludFBvaW50KHZpZXctPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSkpKTsKKyAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
OiAxLjBmOworICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHZpZXctPnNjcm9s
bFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3Io
KSAqIHBhZ2VTY2FsZUZhY3RvcikpKTsKIH0KIAogaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xs
SGVpZ2h0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDVjMzlmOTZmMDQ2NmQ4ZWU1ZjZjZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjQ2ZTFiZTZhNDEw
ODhkNzY5MzE5N2U5OWZlZDZkOWZiYTZlY2NhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtODYsNyArODYsOCBAQCB2b2lkIEhpc3RvcnlDb250
cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0q
IGl0ZW0pCiAgICAgZWxzZQogICAgICAgICBpdGVtLT5zZXRTY3JvbGxQb2ludChtX2ZyYW1lLT52
aWV3KCktPnNjcm9sbFBvc2l0aW9uKCkpOwogCi0gICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9y
KG1fZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpOworICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlID8gcGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCkgOiAxLjBmKTsKICAgICAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ3Jl
YXQgdG8gd29yayBvdXQgYSB3YXkgdG8gcHV0IHRoaXMgY29kZSBpbiBXZWJDb3JlIGluc3RlYWQg
b2YgY2FsbGluZyB0aHJvdWdoIHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpLT5zYXZlVmlld1N0YXRlVG9JdGVtKGl0ZW0pOwpAQCAtMTI1LDcgKzEyNiw4IEBA
IHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0
ZSgpCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewogICAgICAg
ICBpZiAoIXZpZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgICAgIHZpZXctPnNl
dFNjcm9sbFBvc2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOwotICAgICAgICAg
ICAgbV9mcmFtZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBt
X2N1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdl
ID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBhZ2UtPnNjYWxlUGFnZShtX2N1
cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQo
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDI4MWRmMDdm
ZDBjYjMzZDYxNjJiZjBhYTIyZmQ1MTVmNDk1ZGMzZmUuLjUwNjZmYWZkOGIxZjExNzEyOWI2YmRl
MWY2M2MyNjJhZjk2MmJlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYg
QEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
IG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0
aGlzKQogICAgICwgbV9wYWdlWm9vbUZhY3RvcihwYXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkK
ICAgICAsIG1fdGV4dFpvb21GYWN0b3IocGFyZW50VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAg
LCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAg
ICAgLCBtX29yaWVudGF0aW9uKDApCiAjZW5kaWYKQEAgLTEwMzcsMzMgKzEwMzYsNiBAQCB2b2lk
IEZyYW1lOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICByb290LT5j
b21wb3NpdG9yKCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogI2VuZGlm
Ci0KLXZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQm
IG9yaWdpbikKLXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwot
ICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2FsZSAhPSBt
X3BhZ2VTY2FsZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwot
Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
LT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1bWVudC0+
cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgot
ICAgIH0KLQotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsKLSAgICAg
ICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVk
c0xheW91dCgpICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2aWV3LT5s
YXlvdXQoKTsKLSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKLSAgICB9
Ci19Ci0KIHZvaWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291
bnRDaGFuZ2VkKCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBi
ZWluZyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
aW5kZXggMzVmZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uMDE0N2ZiMTcw
ZDMxMmQ2OTQ2YzBiOTU4ZTZhNjYxZTUwMGU1Y2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTYx
LDkgKzE2MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4dFpvb21G
YWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAgIHZvaWQg
c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxvYXQgdGV4
dFpvb21GYWN0b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxk
IG1vdmUgdG8gUGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0
IExheW91dFBvaW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQo
KTsKICNlbmRpZgpAQCAtMjQxLDggKzIzOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgZmxvYXQgbV9wYWdlWm9vbUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3Rv
cjsKIAotICAgICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklF
TlRBVElPTl9FVkVOVFMpCiAgICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMWE3YThlZmI3Y2QwZGM1YzYyYmY5NDFkMjM0Zjc5
NjBkNWUwMTU0Ni4uYjAzMjFjMmFmMjAwNWRhNzFhZjg1MzRmOTNkY2IyOWEzZjUxMzY1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgRnJhbWVW
aWV3OjphcHBseU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJPYmplY3QqIG8sIFNjcm9sbGJhck1v
ZGUmIGhNb2RlLCBTCiAgICAgLy8gVG8gY29tYmF0IHRoZSBpbmFiaWxpdHkgdG8gc2Nyb2xsIG9u
IGEgcGFnZSB3aXRoIG92ZXJmbG93OmhpZGRlbiBvbiB0aGUgcm9vdCB3aGVuIHNjYWxlZCwgZGlz
cmVnYXJkIGhpZGRlbiB3aGVuCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlU2NhbGVGYWN0b3IgdGhh
dCBpcyBncmVhdGVyIHRoYW4gb25lIG9uIHRoZSBtYWluIGZyYW1lLgogCi0gICAgYm9vbCBvdmVy
cmlkZUhpZGRlbiA9IG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFt
ZSgpID09IG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOworICAgIGJv
b2wgb3ZlcnJpZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9y
KCkgPiAxOwogCiAgICAgc3dpdGNoIChvLT5zdHlsZSgpLT5vdmVyZmxvd1goKSkgewogICAgICAg
ICBjYXNlIE9ISURERU46CkBAIC0xMzM4LDcgKzEzMzgsNyBAQCBMYXlvdXRVbml0IEZyYW1lVmll
dzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAg
ICAgICAgcmV0dXJuIHg7CiAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5w
YWdlU2NhbGVGYWN0b3IoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5w
YWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgLy8gV2hlbiB0aGUgcGFnZSBpcyBzY2Fs
ZWQsIHRoZSBzY2FsZWQgInZpZXdwb3J0IiB3aXRoIHJlc3BlY3QgdG8gd2hpY2ggZml4ZWQgb2Jq
ZWN0IGFyZSBwb3NpdGlvbmVkCiAgICAgLy8gZG9lc24ndCBtb3ZlIGFzIGZhc3QgYXMgdGhlIGNv
bnRlbnQgdmlldywgc28gdGhhdCB3aGVuIHRoZSBjb250ZW50IGlzIHNjcm9sbGVkIGFsbCB0aGUg
d2F5IHRvIHRoZQpAQCAtMTM3Myw3ICsxMzczLDcgQEAgTGF5b3V0VW5pdCBGcmFtZVZpZXc6OnNj
cm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAg
IHJldHVybiB5OwogCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gbV9mcmFtZS0+cGFnZVNj
YWxlRmFjdG9yKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gbV9mcmFtZS0+cGFnZSgp
LT5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICBmbG9hdCBkcmFnRmFjdG9yID0gKGNvbnRlbnRzSGVp
Z2h0KCkgLSB2aXNpYmxlQ29udGVudEhlaWdodCAqIHBhZ2VTY2FsZUZhY3RvcikgLyBtYXhZOwog
CiAgICAgcmV0dXJuIHkgKiBkcmFnRmFjdG9yIC8gcGFnZVNjYWxlRmFjdG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKaW5kZXggYjE4ZmQzOTJlOWQxMGRmZDU2MDNkYmQ2NWY1YWUxMzI5YmMxOWM3ZC4uMGM5
ZmU1OWZjYWY3MDMwN2NkOTNiOTZhNzk1MDgyOTg1MTRiYTg4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CkBAIC0xNDcsNiArMTQ3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAgICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGll
bnRDYWxsc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fbWVkaWFWb2x1bWUoMSkKKyAgICAsIG1fcGFn
ZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2RldmljZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2ph
dmFTY3JpcHRVUkxzQXJlQWxsb3dlZCh0cnVlKQogICAgICwgbV9kaWRMb2FkVXNlclN0eWxlU2hl
ZXQoZmFsc2UpCkBAIC02MDgsNiArNjA5LDMzIEBAIHZvaWQgUGFnZTo6c2V0TWVkaWFWb2x1bWUo
ZmxvYXQgdm9sdW1lKQogICAgIH0KIH0KIAordm9pZCBQYWdlOjpzY2FsZVBhZ2UoZmxvYXQgc2Nh
bGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHNjYWxlICE9IG1fcGFnZVNjYWxlRmFjdG9yKSB7CisgICAgICAg
IG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGU7CisKKyAgICAgICAgaWYgKGRvY3VtZW50LT5yZW5k
ZXJlcigpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0
KHRydWUpOworCisgICAgICAgIGRvY3VtZW50LT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CisK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIG1haW5GcmFtZSgpLT5k
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlm
IChGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWUoKS0+dmlldygpKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQo
KSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7
CisgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7CisgICAgfQorfQorCisK
IHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAg
ICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVGYWN0b3IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2Nzg3ZWZjYTkuLmFjOTdiMjg5Y2Rj
NGVhNWY3MzQzMGU5Mzg3Njg2ZjQ5Y2E5MjRkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsy
Myw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9w
dGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmls
aXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZpZXdw
b3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFWb2x1bWU7
IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpOwogCisgICAgICAg
IHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKTsK
KyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2Nh
bGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAgICAgdm9pZCBzZXREZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsKICAgICAg
ICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3Rv
cjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIAogICAgICAgICBib29sIG1f
amF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBhYzg0MTU2M2ZlMWU1YmZjNDBlMDhl
MmY0MzY2Y2Q4NGQ3YmU5ZGU5Li4zZDEyN2QwOGQ1YWU3YTA5MjdmMDY0MjQwNjc5YjNhOWZjZGM2
Yjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSgpIGNvbnN0CiAg
ICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxyZWFkeSBjb21wb3NpdGluZywgb3Ig
dGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1lKiBmcmFtZSA9IG1fcmVuZGVyVmll
dy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lID8gZnJhbWUt
PnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2NhbGVGYWN0b3Io
KSAhPSAxKQorICAgIGlmIChwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAKICAgICBSZW5kZXJQYXJ0KiBmcmFtZVJlbmRlcmVyID0gdG9SZW5k
ZXJQYXJ0KHJlbmRlcmVyKTsKQEAgLTE1NjYsNyArMTU2Niw3IEBAIGZsb2F0IFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBQYWdlKiBwYWdlID0gZnJh
bWUtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAxOwotICAgIHJldHVy
biBwYWdlLT5tYWluRnJhbWUoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2Ut
PnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlk
Q29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDFhZjJjOTVkM2UzY2U0N2NlZTAx
OTI0MjNkMTIxM2VlNDY2YzgxNjMuLjViYTAyYzE2NmRkYTkzNTU1NzQ1NWE1MjAyOTVlYTljNTE5
ZGNmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MRnJh
bWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllci5oIgogI2luY2x1ZGUgIlJlbmRlclNlbGVjdGlvbkluZm8uaCIKQEAgLTIyNyw5ICsyMjgs
NyBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICAgICAgcm9vdEZpbGxzVmlld3BvcnQgPSBy
b290Qm94ICYmICFyb290Qm94LT54KCkgJiYgIXJvb3RCb3gtPnkoKSAmJiByb290Qm94LT53aWR0
aCgpID49IHdpZHRoKCkgJiYgcm9vdEJveC0+aGVpZ2h0KCkgPj0gaGVpZ2h0KCk7CiAgICAgfQog
Ci0gICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gMTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0g
bV9mcmFtZVZpZXctPmZyYW1lKCkpCi0gICAgICAgIHBhZ2VTY2FsZUZhY3RvciA9IGZyYW1lLT5w
YWdlU2NhbGVGYWN0b3IoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBkb2N1bWVudCgp
LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBl
bnRpcmVseSBmaWxsIHRoZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAg
ICAgaWYgKHJvb3RGaWxsc1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZp
cnN0Q2hpbGQoKSkgJiYgcGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDExMmYwZGY5YWVjMWQ5MmEyZmYwNGM0YWJjMjU5MzJkYjM3NDE3NDAuLjAzOGE2
OWM1YmQ2ZWNhNmRmZmJjZGE4ZWI1NzdmZTg4ZTZjNTY2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVl
bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9t
IEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzY2FsZVBhZ2UpOgorCiAyMDExLTA5LTAxICBSb2JlcnQgS3JvZWdlciAgPHJq
a3JvZWdlQGNocm9taXVtLm9yZz4KIAogIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCmluZGV4IDljM2RkODQwNjJmYjYwMmY0MjcwOTMwNThlY2RhODNhYTQxNWYz
M2EuLjgwYjkzMGIzNjE4M2ZhNDhmNWNkMmViZDY3Njg4NGE4YzViNTM2N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE4NDcsMTEgKzE4NDcsNyBA
QCBmbG9hdCBXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBpZiAoIXBh
Z2UoKSkKICAgICAgICAgcmV0dXJuIDEuMDsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+
bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDEuMDsKLQotICAg
IHJldHVybiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFn
ZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBz
Y2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQpAQCAtMTg1OSwxMSArMTg1NSw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2lu
KQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZSogZnJhbWUg
PSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CisgICAgcGFnZSgp
LT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6
OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWYy
MGRlZTA1YzhlMzM2YTMwMTU3YjhjN2Y2ZTdlOGFmYTAxN2E1MC4uMDQxYjIyNzFjNGNkOGY1MjFk
NTRmYTljMDdlNzA2Njc5NjVlZTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDExLTA5LTAyICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uu
e2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOC0zMCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjk0MTQyLCByOTQxNDQsIHI5NDE0NSwgYW5kIHI5NDE0OC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDVkNWEwNzgyMjVlYjAxYmU5OWM3ZGNhOWI1MmQy
MDI3Y2NiMmYwZjkuLmFiODZmYWQ4MmFiZGQ3NmRhMjMwNDI0ZGZhNWFhMWYxYzlmNzk4NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODAzLDkgKzgwMyw1IEBAIGJvb2wgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzaG91bGRDbG9zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAK
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBmbG9hdCBzY2FsZUZhY3RvciwgZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFj
b3JlRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNj
YWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CisgICAgY29yZSh3ZWJWaWV3KS0+c2NhbGVQYWdl
KHNjYWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDMwNGFj
NmE3MzNkZWNlODE3NjdjNGQ3N2E5N2EyM2U1ZDE0NjBhOTMuLjUyZmFlN2MwMTgzYWFlODkyMWE0
MDlmNTUxNTBlNGMwMjgxMzYxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMDktMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
TW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxj
cHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOS0wMSAgQ2FpbyBNYXJj
ZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAg
ICAgICAgIFtRdF0gVHJhbnNmb3JtIFF0RmFsbGJhY2tXZWJQb3B1cENvbWJvIGludG8gUXRXZWJD
b21ib0JveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCBmNGExNTk2MWM5MzYzMzBmN2Y3MWJj
N2VjMjRhNDQ0NjQ5NGM3YjEwLi45OTk3ZTIyMGYxODBiMzBjODNmMmJiM2ZiZTRkMGU4ZjkyYWZh
ZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNzg1LDcgKzc4NSw3IEBAIFFTdHJpbmcg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnZpZXdwb3J0QXNUZXh0KFFXZWJQYWdlKiBwYWdlLCBp
bnQgZGV2aWNlRFBJLCBjCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBhZ2VC
eShRV2ViRnJhbWUqIGZyYW1lLCBmbG9hdCBzY2FsZWZhY3RvciwgY29uc3QgUVBvaW50JiBvcmln
aW4pCiB7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVByaXZhdGU6
OmNvcmUoZnJhbWUpOwotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNjYWxlZmFjdG9yLCBvcmln
aW4pOworICAgIGNvcmVGcmFtZS0+cGFnZSgpLT5zY2FsZVBhZ2Uoc2NhbGVmYWN0b3IsIG9yaWdp
bik7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmFjdGl2ZU1vY2tEZXZpY2VP
cmllbnRhdGlvbkNsaWVudChib29sIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTg0YjIwOTkxMDUxZWJlYmU2
MDZhZDQyNDg3ZDJhNDJkOGFlOTljZi4uMTUwYjVkOTZiYjE2MmQ2ODg4OTY4ZWRmNWY3ZjNhYzAy
NmFkYjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBGYWR5IFNh
bXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFj
dG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0wOS0wMiAgUmF2
aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFAbW90b3JvbGEuY29tPgog
CiAgICAgICAgIFtXSzJdIEFuY2hvciBlbGVtZW50cyBkb2Vzbid0IGdldCBmb2N1cyBvbiBUQUIg
a2V5IHByZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGJjMjBmYmVjZGUyYzY2NTI4YjVlOTEyMzg3ZjJkYTRlMjdiMGFhNzAuLjg1MmVm
YTc0NDJiYjk1YTY5OWU5NGU0NDYwZjFjYTZkMzgxZDkyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc3NiwyMCArNzc2LDE0IEBAIHZv
aWQgV2ViUGFnZTo6c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhkb3VibGUgcGFnZVpvb21GYWN0
b3IsIGRvdWJsZSB0ZXh0Wm9vbUZhCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlKGRvdWJsZSBz
Y2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBtX21h
aW5GcmFtZS0+Y29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGUsIG9yaWdpbik7CisgICAgbV9wYWdlLT5zY2FsZVBh
Z2Uoc2NhbGUsIG9yaWdpbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBh
Z2VTY2FsZUZhY3RvckRpZENoYW5nZShzY2FsZSkpOwogfQogCiBkb3VibGUgV2ViUGFnZTo6cGFn
ZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBtX21haW5GcmFtZS0+
Y29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0
dXJuIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gbV9wYWdlLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9h
dCBzY2FsZUZhY3RvcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106181</attachid>
            <date>2011-09-02 13:06:13 -0700</date>
            <delta_ts>2011-09-02 14:26:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110902160611.patch</filename>
            <type>text/plain</type>
            <size>25594</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDYwMmQ1M2E4YTdiZjM0
YWExYmU1YjdkZGNlY2Q2NjMzMzViNDY3Li4zNjIwMDg4Nzc0MTJiODU1Nzc1NjYyOWRhNmRiOWZk
Y2M0ODUyNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDktMDIgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29t
QW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5
RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnNldFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRp
b25BbmRWaWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDIgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5NDQwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCBjYWVjYTE3YTA4MWQ0NDM3MjRjY2UxZDM4NDUwNTJmYjdmZDAyMmE5Li5jOTA3NTRmYzNm
MjAwNTE2ZmIyZDdlY2NmZTc5NjY0YjE5MTQzNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0
eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxP
cmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFn
ZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7Cisg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3VtZW50LT5wYWdlKCkg
PyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEuMGYpOwogICAgIGRvY3Vt
ZW50U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9X
UklURSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQt
PmRvY3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGZmMmZlMGI1Njhk
MmVmYWFlYTVjNDhhZWEyZGFhMzRjZjIxNWI5OGUuLjZjYjkwZjYzNGVkODFiNzNmYjc4YjlkMjlj
MDQ4MDEzYTEwYzJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU2MiwxMCArNTYyLDgg
QEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQog
ICAgIHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKIAogICAgIGZs
b2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdl
KCkpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAg
ICAgICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIH0KKyAg
ICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAgICAgIHBhZ2VTY2Fs
ZSA9IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9
IGRvY3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZpc2libGVDb250ZW50
UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNjEzLDEwICs2MTEsOCBAQCBQ
YXNzUmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpCiAg
ICAgfQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJlc3VsdCwgcmVuZGVy
ZXIoKSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIHsKLSAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAgICAgYWRq
dXN0RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VTY2FsZUZhY3Rvcigp
KTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAg
ICAgIGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2UtPnBhZ2VTY2FsZUZh
Y3RvcigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwCmluZGV4IGUxODA2NmU4YWU5ZGU1MWVkODJmZTRjODE2ZDc3ZmM2ZmFkMzNm
OWQuLjk0ODEzNDZmMzk2MjYzZjc1NjRiMjQ5YjlkZWUzYTViNWY5N2E3OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmNwcApAQCAtMTk2OCwxMCArMTk2OCw4IEBAIHN0YXRpYyB2b2lkIGFkanVzdEZsb2F0UXVh
ZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9yPEZsb2F0UXVhCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBw
YWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgp
KQorICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIExh
eW91dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IGYzNDY3ZTY4OGJjYjVhZjE3NWVm
ZGY5NjdiZWEyNDFkMjQ2OGMzZTcuLmQ3MTBlODc3OTcxYTdkODc5MDJhMjJmNzIwZTI1N2ZhM2Yz
MWNjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTI2Nyw3
ICsyNjcsOSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0VkxpbmsoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHN0YXRpYyBpbnQgYWRqdXN0Rm9yWm9vbShpbnQgdmFsdWUsIERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBmbG9h
dCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxl
RmFjdG9yKCk7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMS4wZjsK
KyAgICBmbG9hdCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2Nh
bGVGYWN0b3I7CiAgICAgaWYgKHpvb21GYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIHZhbHVl
OwogICAgIC8vIE5lZWRlZCBiZWNhdXNlIG9mIHRydW5jYXRpb24gKHJhdGhlciB0aGFuIHJvdW5k
aW5nKSB3aGVuIHNjYWxpbmcgdXAuCkBAIC0yODgsNiArMjkwLDcgQEAgaW50IEhUTUxCb2R5RWxl
bWVudDo6c2Nyb2xsTGVmdCgpCiB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdChp
bnQgc2Nyb2xsTGVmdCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAgIGRvY3VtZW50LT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBGcmFtZSogZnJhbWUg
PSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMjk1LDcgKzI5OCw4IEBA
IHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBzY3JvbGxMZWZ0KQogICAg
IEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAg
ICByZXR1cm47Ci0gICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nh
c3Q8aW50PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFn
ZVNjYWxlRmFjdG9yKCkpLCB2aWV3LT5zY3JvbGxZKCkpKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxLjBmOworICAgIHZpZXct
PnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4oc2Nyb2xsTGVmdCAq
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogcGFnZVNjYWxlRmFjdG9yKSwgdmlldy0+c2Nyb2xs
WSgpKSk7CiB9CiAKIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbFRvcCgpCkBAIC0zMTAsNiAr
MzE0LDcgQEAgaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHZvaWQgSFRNTEJvZHlF
bGVtZW50OjpzZXRTY3JvbGxUb3AoaW50IHNjcm9sbFRvcCkKIHsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFn
ZSgpOwogICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1l
KQpAQCAtMzE3LDcgKzMyMiw4IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxUb3Ao
aW50IHNjcm9sbFRvcCkKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAg
IGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwotICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9u
KEludFBvaW50KHZpZXctPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSkpKTsKKyAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
OiAxLjBmOworICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHZpZXctPnNjcm9s
bFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3Io
KSAqIHBhZ2VTY2FsZUZhY3RvcikpKTsKIH0KIAogaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xs
SGVpZ2h0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDVjMzlmOTZmMDQ2NmQ4ZWU1ZjZjZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjQ2ZTFiZTZhNDEw
ODhkNzY5MzE5N2U5OWZlZDZkOWZiYTZlY2NhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtODYsNyArODYsOCBAQCB2b2lkIEhpc3RvcnlDb250
cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0q
IGl0ZW0pCiAgICAgZWxzZQogICAgICAgICBpdGVtLT5zZXRTY3JvbGxQb2ludChtX2ZyYW1lLT52
aWV3KCktPnNjcm9sbFBvc2l0aW9uKCkpOwogCi0gICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9y
KG1fZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpOworICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlID8gcGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCkgOiAxLjBmKTsKICAgICAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ3Jl
YXQgdG8gd29yayBvdXQgYSB3YXkgdG8gcHV0IHRoaXMgY29kZSBpbiBXZWJDb3JlIGluc3RlYWQg
b2YgY2FsbGluZyB0aHJvdWdoIHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpLT5zYXZlVmlld1N0YXRlVG9JdGVtKGl0ZW0pOwpAQCAtMTI1LDcgKzEyNiw4IEBA
IHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0
ZSgpCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewogICAgICAg
ICBpZiAoIXZpZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgICAgIHZpZXctPnNl
dFNjcm9sbFBvc2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOwotICAgICAgICAg
ICAgbV9mcmFtZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBt
X2N1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdl
ID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBhZ2UtPnNjYWxlUGFnZShtX2N1
cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQo
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDI4MWRmMDdm
ZDBjYjMzZDYxNjJiZjBhYTIyZmQ1MTVmNDk1ZGMzZmUuLjUwNjZmYWZkOGIxZjExNzEyOWI2YmRl
MWY2M2MyNjJhZjk2MmJlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYg
QEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
IG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0
aGlzKQogICAgICwgbV9wYWdlWm9vbUZhY3RvcihwYXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkK
ICAgICAsIG1fdGV4dFpvb21GYWN0b3IocGFyZW50VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAg
LCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAg
ICAgLCBtX29yaWVudGF0aW9uKDApCiAjZW5kaWYKQEAgLTEwMzcsMzMgKzEwMzYsNiBAQCB2b2lk
IEZyYW1lOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICByb290LT5j
b21wb3NpdG9yKCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogI2VuZGlm
Ci0KLXZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQm
IG9yaWdpbikKLXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwot
ICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2FsZSAhPSBt
X3BhZ2VTY2FsZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwot
Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
LT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1bWVudC0+
cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgot
ICAgIH0KLQotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsKLSAgICAg
ICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVk
c0xheW91dCgpICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2aWV3LT5s
YXlvdXQoKTsKLSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKLSAgICB9
Ci19Ci0KIHZvaWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291
bnRDaGFuZ2VkKCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBi
ZWluZyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
aW5kZXggMzVmZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uMDE0N2ZiMTcw
ZDMxMmQ2OTQ2YzBiOTU4ZTZhNjYxZTUwMGU1Y2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTYx
LDkgKzE2MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4dFpvb21G
YWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAgIHZvaWQg
c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxvYXQgdGV4
dFpvb21GYWN0b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxk
IG1vdmUgdG8gUGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0
IExheW91dFBvaW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQo
KTsKICNlbmRpZgpAQCAtMjQxLDggKzIzOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgZmxvYXQgbV9wYWdlWm9vbUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3Rv
cjsKIAotICAgICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklF
TlRBVElPTl9FVkVOVFMpCiAgICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMWE3YThlZmI3Y2QwZGM1YzYyYmY5NDFkMjM0Zjc5
NjBkNWUwMTU0Ni4uYjAzMjFjMmFmMjAwNWRhNzFhZjg1MzRmOTNkY2IyOWEzZjUxMzY1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgRnJhbWVW
aWV3OjphcHBseU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJPYmplY3QqIG8sIFNjcm9sbGJhck1v
ZGUmIGhNb2RlLCBTCiAgICAgLy8gVG8gY29tYmF0IHRoZSBpbmFiaWxpdHkgdG8gc2Nyb2xsIG9u
IGEgcGFnZSB3aXRoIG92ZXJmbG93OmhpZGRlbiBvbiB0aGUgcm9vdCB3aGVuIHNjYWxlZCwgZGlz
cmVnYXJkIGhpZGRlbiB3aGVuCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlU2NhbGVGYWN0b3IgdGhh
dCBpcyBncmVhdGVyIHRoYW4gb25lIG9uIHRoZSBtYWluIGZyYW1lLgogCi0gICAgYm9vbCBvdmVy
cmlkZUhpZGRlbiA9IG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFt
ZSgpID09IG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOworICAgIGJv
b2wgb3ZlcnJpZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9y
KCkgPiAxOwogCiAgICAgc3dpdGNoIChvLT5zdHlsZSgpLT5vdmVyZmxvd1goKSkgewogICAgICAg
ICBjYXNlIE9ISURERU46CkBAIC0xMzM4LDcgKzEzMzgsNyBAQCBMYXlvdXRVbml0IEZyYW1lVmll
dzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAg
ICAgICAgcmV0dXJuIHg7CiAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5w
YWdlU2NhbGVGYWN0b3IoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5w
YWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgLy8gV2hlbiB0aGUgcGFnZSBpcyBzY2Fs
ZWQsIHRoZSBzY2FsZWQgInZpZXdwb3J0IiB3aXRoIHJlc3BlY3QgdG8gd2hpY2ggZml4ZWQgb2Jq
ZWN0IGFyZSBwb3NpdGlvbmVkCiAgICAgLy8gZG9lc24ndCBtb3ZlIGFzIGZhc3QgYXMgdGhlIGNv
bnRlbnQgdmlldywgc28gdGhhdCB3aGVuIHRoZSBjb250ZW50IGlzIHNjcm9sbGVkIGFsbCB0aGUg
d2F5IHRvIHRoZQpAQCAtMTM3Myw3ICsxMzczLDcgQEAgTGF5b3V0VW5pdCBGcmFtZVZpZXc6OnNj
cm9sbFlGb3JGaXhlZFBvc2l0aW9uKCkgY29uc3QKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAg
IHJldHVybiB5OwogCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gbV9mcmFtZS0+cGFnZVNj
YWxlRmFjdG9yKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gbV9mcmFtZS0+cGFnZSgp
LT5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICBmbG9hdCBkcmFnRmFjdG9yID0gKGNvbnRlbnRzSGVp
Z2h0KCkgLSB2aXNpYmxlQ29udGVudEhlaWdodCAqIHBhZ2VTY2FsZUZhY3RvcikgLyBtYXhZOwog
CiAgICAgcmV0dXJuIHkgKiBkcmFnRmFjdG9yIC8gcGFnZVNjYWxlRmFjdG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKaW5kZXggYjE4ZmQzOTJlOWQxMGRmZDU2MDNkYmQ2NWY1YWUxMzI5YmMxOWM3ZC4uMGM5
ZmU1OWZjYWY3MDMwN2NkOTNiOTZhNzk1MDgyOTg1MTRiYTg4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CkBAIC0xNDcsNiArMTQ3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAgICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGll
bnRDYWxsc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fbWVkaWFWb2x1bWUoMSkKKyAgICAsIG1fcGFn
ZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2RldmljZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2ph
dmFTY3JpcHRVUkxzQXJlQWxsb3dlZCh0cnVlKQogICAgICwgbV9kaWRMb2FkVXNlclN0eWxlU2hl
ZXQoZmFsc2UpCkBAIC02MDgsNiArNjA5LDMzIEBAIHZvaWQgUGFnZTo6c2V0TWVkaWFWb2x1bWUo
ZmxvYXQgdm9sdW1lKQogICAgIH0KIH0KIAordm9pZCBQYWdlOjpzY2FsZVBhZ2UoZmxvYXQgc2Nh
bGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHNjYWxlICE9IG1fcGFnZVNjYWxlRmFjdG9yKSB7CisgICAgICAg
IG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGU7CisKKyAgICAgICAgaWYgKGRvY3VtZW50LT5yZW5k
ZXJlcigpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0
KHRydWUpOworCisgICAgICAgIGRvY3VtZW50LT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CisK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIG1haW5GcmFtZSgpLT5k
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlm
IChGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWUoKS0+dmlldygpKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQo
KSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7
CisgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7CisgICAgfQorfQorCisK
IHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAg
ICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVGYWN0b3IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2Nzg3ZWZjYTkuLmFjOTdiMjg5Y2Rj
NGVhNWY3MzQzMGU5Mzg3Njg2ZjQ5Y2E5MjRkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsy
Myw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9w
dGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmls
aXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZpZXdw
b3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFWb2x1bWU7
IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpOwogCisgICAgICAg
IHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKTsK
KyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2Nh
bGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAgICAgdm9pZCBzZXREZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsKICAgICAg
ICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3Rv
cjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIAogICAgICAgICBib29sIG1f
amF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBhYzg0MTU2M2ZlMWU1YmZjNDBlMDhl
MmY0MzY2Y2Q4NGQ3YmU5ZGU5Li4zZDEyN2QwOGQ1YWU3YTA5MjdmMDY0MjQwNjc5YjNhOWZjZGM2
Yjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSgpIGNvbnN0CiAg
ICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxyZWFkeSBjb21wb3NpdGluZywgb3Ig
dGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1lKiBmcmFtZSA9IG1fcmVuZGVyVmll
dy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lID8gZnJhbWUt
PnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2NhbGVGYWN0b3Io
KSAhPSAxKQorICAgIGlmIChwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAKICAgICBSZW5kZXJQYXJ0KiBmcmFtZVJlbmRlcmVyID0gdG9SZW5k
ZXJQYXJ0KHJlbmRlcmVyKTsKQEAgLTE1NjYsNyArMTU2Niw3IEBAIGZsb2F0IFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBQYWdlKiBwYWdlID0gZnJh
bWUtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAxOwotICAgIHJldHVy
biBwYWdlLT5tYWluRnJhbWUoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2Ut
PnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlk
Q29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDFhZjJjOTVkM2UzY2U0N2NlZTAx
OTI0MjNkMTIxM2VlNDY2YzgxNjMuLjViYTAyYzE2NmRkYTkzNTU1NzQ1NWE1MjAyOTVlYTljNTE5
ZGNmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MRnJh
bWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllci5oIgogI2luY2x1ZGUgIlJlbmRlclNlbGVjdGlvbkluZm8uaCIKQEAgLTIyNyw5ICsyMjgs
NyBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICAgICAgcm9vdEZpbGxzVmlld3BvcnQgPSBy
b290Qm94ICYmICFyb290Qm94LT54KCkgJiYgIXJvb3RCb3gtPnkoKSAmJiByb290Qm94LT53aWR0
aCgpID49IHdpZHRoKCkgJiYgcm9vdEJveC0+aGVpZ2h0KCkgPj0gaGVpZ2h0KCk7CiAgICAgfQog
Ci0gICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gMTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0g
bV9mcmFtZVZpZXctPmZyYW1lKCkpCi0gICAgICAgIHBhZ2VTY2FsZUZhY3RvciA9IGZyYW1lLT5w
YWdlU2NhbGVGYWN0b3IoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBkb2N1bWVudCgp
LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBl
bnRpcmVseSBmaWxsIHRoZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAg
ICAgaWYgKHJvb3RGaWxsc1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZp
cnN0Q2hpbGQoKSkgJiYgcGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDExMmYwZGY5YWVjMWQ5MmEyZmYwNGM0YWJjMjU5MzJkYjM3NDE3NDAuLjAzOGE2
OWM1YmQ2ZWNhNmRmZmJjZGE4ZWI1NzdmZTg4ZTZjNTY2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVl
bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9t
IEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzY2FsZVBhZ2UpOgorCiAyMDExLTA5LTAxICBSb2JlcnQgS3JvZWdlciAgPHJq
a3JvZWdlQGNocm9taXVtLm9yZz4KIAogIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCmluZGV4IDljM2RkODQwNjJmYjYwMmY0MjcwOTMwNThlY2RhODNhYTQxNWYz
M2EuLjgwYjkzMGIzNjE4M2ZhNDhmNWNkMmViZDY3Njg4NGE4YzViNTM2N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE4NDcsMTEgKzE4NDcsNyBA
QCBmbG9hdCBXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBpZiAoIXBh
Z2UoKSkKICAgICAgICAgcmV0dXJuIDEuMDsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+
bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDEuMDsKLQotICAg
IHJldHVybiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFn
ZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBz
Y2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQpAQCAtMTg1OSwxMSArMTg1NSw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2lu
KQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZSogZnJhbWUg
PSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CisgICAgcGFnZSgp
LT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6
OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWYy
MGRlZTA1YzhlMzM2YTMwMTU3YjhjN2Y2ZTdlOGFmYTAxN2E1MC4uMDQxYjIyNzFjNGNkOGY1MjFk
NTRmYTljMDdlNzA2Njc5NjVlZTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDExLTA5LTAyICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uu
e2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOC0zMCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjk0MTQyLCByOTQxNDQsIHI5NDE0NSwgYW5kIHI5NDE0OC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDVkNWEwNzgyMjVlYjAxYmU5OWM3ZGNhOWI1MmQy
MDI3Y2NiMmYwZjkuLmFiODZmYWQ4MmFiZGQ3NmRhMjMwNDI0ZGZhNWFhMWYxYzlmNzk4NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODAzLDkgKzgwMyw1IEBAIGJvb2wgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzaG91bGRDbG9zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAK
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBmbG9hdCBzY2FsZUZhY3RvciwgZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFj
b3JlRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNj
YWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CisgICAgY29yZSh3ZWJWaWV3KS0+c2NhbGVQYWdl
KHNjYWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTRj
M2QxMDkzYzQzZTgxNDRjM2E0NGZkZDllYjc2NjExYmI1ZDQ3OS4uYzdjODU2MDg3NDQ3YWQ4NjEy
NmEzMzJhNzkyZmI0MWYwZGJmZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTA5LTAyICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uu
e2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NhbGVXZWJWaWV3OmF0
T3JpZ2luOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF92aWV3U2NhbGVGYWN0b3JdKToKKwogMjAx
MS0wOS0wMSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUg
YnVpbGQgYnkgYWRkaW5nIHNvbWUgbW9yZSBtaXNzaW5nIHJldHVybiB0eXBlcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2Vj
ODFlYWY4MTk0Nzg4Li5hNWEwNDljZjU3MzI5ZjcyMDMyYmYwODBhZTE5NzU5ODAxNWUyMTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBA
IHN0YXRpYyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJh
eSogcGF0dGVybnMpCiAKIC0gKHZvaWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmln
aW46KE5TUG9pbnQpb3JpZ2luCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWlu
Q29yZUZyYW1lXTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Y29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2
YXRlLT5wYWdlLT5zY2FsZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAtIChm
bG9hdClfdmlld1NjYWxlRmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9t
YWluQ29yZUZyYW1lXTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0K
LSAgICByZXR1cm4gY29yZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX3By
aXZhdGUtPnBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VGaXhl
ZExheW91dDooQk9PTClmaXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzMDRhYzZhNzMzZGVjZTgxNzY3
YzRkNzdhOTdhMjNlNWQxNDYwYTkzLi41MmZhZTdjMDE4M2FhZTg5MjFhNDA5ZjU1MTUwZTRjMDI4
MTM2MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxl
RmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0OjpzY2FsZVBhZ2VCeSk6CisKIDIwMTEtMDktMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWly
YSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFRy
YW5zZm9ybSBRdEZhbGxiYWNrV2ViUG9wdXBDb21ibyBpbnRvIFF0V2ViQ29tYm9Cb3gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKaW5kZXggZjRhMTU5NjFjOTM2MzMwZjdmNzFiYzdlYzI0YTQ0NDY0OTRj
N2IxMC4uOTk5N2UyMjBmMTgwYjMwYzgzZjJiYjNmYmU0ZDBlOGY5MmFmYWZjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKQEAgLTc4NSw3ICs3ODUsNyBAQCBRU3RyaW5nIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0Ojp2aWV3cG9ydEFzVGV4dChRV2ViUGFnZSogcGFnZSwgaW50IGRldmljZURQSSwg
Ywogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2NhbGVQYWdlQnkoUVdlYkZyYW1lKiBm
cmFtZSwgZmxvYXQgc2NhbGVmYWN0b3IsIGNvbnN0IFFQb2ludCYgb3JpZ2luKQogewogICAgIFdl
YkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsK
LSAgICBjb3JlRnJhbWUtPnNjYWxlUGFnZShzY2FsZWZhY3Rvciwgb3JpZ2luKTsKKyAgICBjb3Jl
RnJhbWUtPnBhZ2UoKS0+c2NhbGVQYWdlKHNjYWxlZmFjdG9yLCBvcmlnaW4pOwogfQogCiB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphY3RpdmVNb2NrRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU4NGIyMDk5MTA1MWViZWJlNjA2YWQ0MjQ4N2QyYTQy
ZDhhZTk5Y2YuLjE1MGI1ZDk2YmIxNjJkNjg4ODk2OGVkZjVmN2YzYWMwMjZhZGI0YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0wMiAgRmFkeSBTYW11ZWwgIDxmc2FtdWVs
QGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20g
RnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjYWxlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisKIDIwMTEtMDktMDIgIFJhdmkgUGhhbmVlbmRyYSBL
YXNpYmhhdGxhICA8cmF2aS5rYXNpYmhhdGxhQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBbV0sy
XSBBbmNob3IgZWxlbWVudHMgZG9lc24ndCBnZXQgZm9jdXMgb24gVEFCIGtleSBwcmVzcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiYzIw
ZmJlY2RlMmM2NjUyOGI1ZTkxMjM4N2YyZGE0ZTI3YjBhYTcwLi44NTJlZmE3NDQyYmI5NWE2OTll
OTRlNDQ2MGYxY2E2ZDM4MWQ5MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03NzYsMjAgKzc3NiwxNCBAQCB2b2lkIFdlYlBhZ2U6OnNl
dFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoZG91YmxlIHBhZ2Vab29tRmFjdG9yLCBkb3VibGUgdGV4
dFpvb21GYQogCiB2b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IElu
dFBvaW50JiBvcmlnaW4pCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBmcmFtZS0+c2Nh
bGVQYWdlKHNjYWxlLCBvcmlnaW4pOworICAgIG1fcGFnZS0+c2NhbGVQYWdlKHNjYWxlLCBvcmln
aW4pOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlU2NhbGVGYWN0b3JE
aWRDaGFuZ2Uoc2NhbGUpKTsKIH0KIAogZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcigp
IGNvbnN0CiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpOwot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAxOwotICAgIHJldHVybiBmcmFtZS0+cGFn
ZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3Ip
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106199</attachid>
            <date>2011-09-02 14:26:10 -0700</date>
            <delta_ts>2011-09-02 16:41:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110902172608.patch</filename>
            <type>text/plain</type>
            <size>25782</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDYwMmQ1M2E4YTdiZjM0
YWExYmU1YjdkZGNlY2Q2NjMzMzViNDY3Li4zNjIwMDg4Nzc0MTJiODU1Nzc1NjYyOWRhNmRiOWZk
Y2M0ODUyNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDktMDIgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29t
QW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5
RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnNldFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRp
b25BbmRWaWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDIgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5NDQwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCBjYWVjYTE3YTA4MWQ0NDM3MjRjY2UxZDM4NDUwNTJmYjdmZDAyMmE5Li5jZjY0NzM1ZjNi
OTNlNWNjOGZjMDJmOGFjNDc5Y2MzZGI3MDQwMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0
eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxP
cmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFn
ZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7Cisg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3VtZW50LT5wYWdlKCkg
PyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50
U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9XUklU
RSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGZmMmZlMGI1NjhkMmVm
YWFlYTVjNDhhZWEyZGFhMzRjZjIxNWI5OGUuLjZjYjkwZjYzNGVkODFiNzNmYjc4YjlkMjljMDQ4
MDEzYTEwYzJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU2MiwxMCArNTYyLDggQEAg
UGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogICAg
IHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKIAogICAgIGZsb2F0
IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkp
IHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAg
ICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIH0KKyAgICBp
ZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAgICAgIHBhZ2VTY2FsZSA9
IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGRv
Y3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZpc2libGVDb250ZW50UmVj
dCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNjEzLDEwICs2MTEsOCBAQCBQYXNz
UmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpCiAgICAg
fQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJlc3VsdCwgcmVuZGVyZXIo
KSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIHsKLSAgICAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAgICAgYWRqdXN0
RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsK
LSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAg
IGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCmluZGV4IGUxODA2NmU4YWU5ZGU1MWVkODJmZTRjODE2ZDc3ZmM2ZmFkMzNmOWQu
Ljk0ODEzNDZmMzk2MjYzZjc1NjRiMjQ5YjlkZWUzYTViNWY5N2E3OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcApAQCAtMTk2OCwxMCArMTk2OCw4IEBAIHN0YXRpYyB2b2lkIGFkanVzdEZsb2F0UXVhZHNG
b3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9yPEZsb2F0UXVhCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdl
LT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVG
YWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQor
ICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIExheW91
dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IGYzNDY3ZTY4OGJjYjVhZjE3NWVmZGY5
NjdiZWEyNDFkMjQ2OGMzZTcuLjY3OWNmNGM1ZDhjODc3YjUxMzY0YzBhYWNkNDk2OTk3ZTM5Yjk5
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTI2Nyw3ICsy
NjcsOSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0VkxpbmsoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHN0YXRpYyBpbnQgYWRqdXN0Rm9yWm9vbShpbnQgdmFsdWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBmbG9hdCB6
b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxlRmFj
dG9yKCk7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgZmxvYXQgcGFn
ZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICBm
bG9hdCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2NhbGVGYWN0
b3I7CiAgICAgaWYgKHpvb21GYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IC8vIE5lZWRlZCBiZWNhdXNlIG9mIHRydW5jYXRpb24gKHJhdGhlciB0aGFuIHJvdW5kaW5nKSB3
aGVuIHNjYWxpbmcgdXAuCkBAIC0yODgsNiArMjkwLDcgQEAgaW50IEhUTUxCb2R5RWxlbWVudDo6
c2Nyb2xsTGVmdCgpCiB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdChpbnQgc2Ny
b2xsTGVmdCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMjk1LDcgKzI5OCw4IEBAIHZvaWQg
SFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBzY3JvbGxMZWZ0KQogICAgIEZyYW1l
VmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm47Ci0gICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50
PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxl
RmFjdG9yKCkpLCB2aWV3LT5zY3JvbGxZKCkpKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3Ig
PSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOworICAgIHZpZXctPnNldFNjcm9s
bFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4oc2Nyb2xsTGVmdCAqIGZyYW1lLT5w
YWdlWm9vbUZhY3RvcigpICogcGFnZVNjYWxlRmFjdG9yKSwgdmlldy0+c2Nyb2xsWSgpKSk7CiB9
CiAKIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbFRvcCgpCkBAIC0zMTAsNiArMzE0LDcgQEAg
aW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHZvaWQgSFRNTEJvZHlFbGVtZW50Ojpz
ZXRTY3JvbGxUb3AoaW50IHNjcm9sbFRvcCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAg
IGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBG
cmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzE3
LDcgKzMyMiw4IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxUb3AoaW50IHNjcm9s
bFRvcCkKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAgIGlmICghdmll
dykKICAgICAgICAgcmV0dXJuOwotICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50
KHZpZXctPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFn
ZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSkpKTsKKyAgICBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxLjBmOwor
ICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHZpZXctPnNjcm9sbFgoKSwgc3Rh
dGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIHBhZ2VT
Y2FsZUZhY3RvcikpKTsKIH0KIAogaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsSGVpZ2h0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IDVjMzlm
OTZmMDQ2NmQ4ZWU1ZjZjZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjQ2ZTFiZTZhNDEwODhkNzY5MzE5
N2U5OWZlZDZkOWZiYTZlY2NhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlD
b250cm9sbGVyLmNwcApAQCAtODYsNyArODYsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpz
YXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCiAg
ICAgZWxzZQogICAgICAgICBpdGVtLT5zZXRTY3JvbGxQb2ludChtX2ZyYW1lLT52aWV3KCktPnNj
cm9sbFBvc2l0aW9uKCkpOwogCi0gICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1fZnJhbWUt
PnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwor
ICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9y
KCkgOiAxLjBmKTsKICAgICAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ3JlYXQgdG8gd29y
ayBvdXQgYSB3YXkgdG8gcHV0IHRoaXMgY29kZSBpbiBXZWJDb3JlIGluc3RlYWQgb2YgY2FsbGlu
ZyB0aHJvdWdoIHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5zYXZlVmlld1N0YXRlVG9JdGVtKGl0ZW0pOwpAQCAtMTI1LDcgKzEyNiw4IEBAIHZvaWQgSGlz
dG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAg
aWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewogICAgICAgICBpZiAoIXZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBv
c2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOwotICAgICAgICAgICAgbV9mcmFt
ZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJ
dGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBhZ2UtPnNjYWxlUGFnZShtX2N1cnJlbnRJdGVt
LT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDI4MWRmMDdmZDBjYjMzZDYx
NjJiZjBhYTIyZmQ1MTVmNDk1ZGMzZmUuLjUwNjZmYWZkOGIxZjExNzEyOWI2YmRlMWY2M2MyNjJh
Zjk2MmJlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgaW5saW5l
IEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxl
bWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0aGlzKQogICAg
ICwgbV9wYWdlWm9vbUZhY3RvcihwYXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkKICAgICAsIG1f
dGV4dFpvb21GYWN0b3IocGFyZW50VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAgLCBtX3BhZ2VT
Y2FsZUZhY3RvcigxKQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgLCBtX29y
aWVudGF0aW9uKDApCiAjZW5kaWYKQEAgLTEwMzcsMzMgKzEwMzYsNiBAQCB2b2lkIEZyYW1lOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICByb290LT5jb21wb3NpdG9y
KCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogI2VuZGlmCi0KLXZvaWQg
RnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikK
LXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICgh
ZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2FsZSAhPSBtX3BhZ2VTY2Fs
ZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwotCi0gICAgICAg
IGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5yZW5kZXJl
cigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1bWVudC0+cmVjYWxjU3R5
bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
ICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgotICAgIH0KLQot
ICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsKLSAgICAgICAgaWYgKGRv
Y3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVkc0xheW91dCgp
ICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsK
LSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKLSAgICB9Ci19Ci0KIHZv
aWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2Vk
KCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxs
ZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggMzVm
ZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uMDE0N2ZiMTcwZDMxMmQ2OTQ2
YzBiOTU4ZTZhNjYxZTUwMGU1Y2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTYxLDkgKzE2MSw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4dFpvb21GYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAgIHZvaWQgc2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxvYXQgdGV4dFpvb21GYWN0
b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG1vdmUgdG8g
UGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBv
aW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICNlbmRp
ZgpAQCAtMjQxLDggKzIzOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQg
bV9wYWdlWm9vbUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3RvcjsKIAotICAg
ICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCiAgICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMWE3YThlZmI3Y2QwZGM1YzYyYmY5NDFkMjM0Zjc5NjBkNWUwMTU0
Ni4uM2I2MjczNmM2OWVkN2I5YjgzOGE4YmY5MmE0ZDZlYWUxNDBjMmYzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBs
eU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJPYmplY3QqIG8sIFNjcm9sbGJhck1vZGUmIGhNb2Rl
LCBTCiAgICAgLy8gVG8gY29tYmF0IHRoZSBpbmFiaWxpdHkgdG8gc2Nyb2xsIG9uIGEgcGFnZSB3
aXRoIG92ZXJmbG93OmhpZGRlbiBvbiB0aGUgcm9vdCB3aGVuIHNjYWxlZCwgZGlzcmVnYXJkIGhp
ZGRlbiB3aGVuCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlU2NhbGVGYWN0b3IgdGhhdCBpcyBncmVh
dGVyIHRoYW4gb25lIG9uIHRoZSBtYWluIGZyYW1lLgogCi0gICAgYm9vbCBvdmVycmlkZUhpZGRl
biA9IG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IG1f
ZnJhbWUgJiYgbV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOworICAgIGJvb2wgb3ZlcnJp
ZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUo
KSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOwog
CiAgICAgc3dpdGNoIChvLT5zdHlsZSgpLT5vdmVyZmxvd1goKSkgewogICAgICAgICBjYXNlIE9I
SURERU46CkBAIC0xMzM4LDcgKzEzMzgsOCBAQCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xs
WEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIHg7CiAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVG
YWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAKICAg
ICAvLyBXaGVuIHRoZSBwYWdlIGlzIHNjYWxlZCwgdGhlIHNjYWxlZCAidmlld3BvcnQiIHdpdGgg
cmVzcGVjdCB0byB3aGljaCBmaXhlZCBvYmplY3QgYXJlIHBvc2l0aW9uZWQKICAgICAvLyBkb2Vz
bid0IG1vdmUgYXMgZmFzdCBhcyB0aGUgY29udGVudCB2aWV3LCBzbyB0aGF0IHdoZW4gdGhlIGNv
bnRlbnQgaXMgc2Nyb2xsZWQgYWxsIHRoZSB3YXkgdG8gdGhlCkBAIC0xMzczLDcgKzEzNzQsOCBA
QCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdAog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIHk7CiAKLSAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdl
LT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAgICAgZmxvYXQgZHJhZ0ZhY3RvciA9IChjb250ZW50
c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBwYWdlU2NhbGVGYWN0b3IpIC8gbWF4
WTsKIAogICAgIHJldHVybiB5ICogZHJhZ0ZhY3RvciAvIHBhZ2VTY2FsZUZhY3RvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGIxOGZkMzkyZTlkMTBkZmQ1NjAzZGJkNjVmNWFlMTMyOWJjMTljN2Qu
Ljk3NzhmMTM3NDkzNjdlNDE3MTgyZjNkYjM4OGY4MjM2NDdkMTFiNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGll
bnRzKQogICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZU1lbW9yeUNhY2hl
Q2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCisgICAgLCBt
X3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQogICAgICwg
bV9qYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQodHJ1ZSkKICAgICAsIG1fZGlkTG9hZFVzZXJTdHls
ZVNoZWV0KGZhbHNlKQpAQCAtNjA4LDYgKzYwOSwzMSBAQCB2b2lkIFBhZ2U6OnNldE1lZGlhVm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICB9CiB9CiAKK3ZvaWQgUGFnZTo6c2NhbGVQYWdlKGZsb2F0
IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworCisgICAgaWYgKHNjYWxlICE9IG1fcGFn
ZVNjYWxlRmFjdG9yKSB7CisgICAgICAgIG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGU7CisKKyAg
ICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJl
bmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCisgICAgICAgIGRvY3VtZW50LT5yZWNh
bGNTdHlsZShOb2RlOjpGb3JjZSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgICAgIG1haW5GcmFtZSgpLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsK
KyNlbmRpZgorICAgIH0KKworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVudC0+dmll
dygpKSB7CisgICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVu
ZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAg
ICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9y
aWdpbik7CisgICAgfQorfQorCisKIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxv
YXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVG
YWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2
Nzg3ZWZjYTkuLmFjOTdiMjg5Y2RjNGVhNWY3MzQzMGU5Mzg3Njg2ZjQ5Y2E5MjRkYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVz
LmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgog
I2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWVkaWFWb2x1bWU7IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9h
dCB2b2x1bWUpOwogCisgICAgICAgIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBM
YXlvdXRQb2ludCYgb3JpZ2luKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAg
ICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVu
dENhbGxzRW5hYmxlZDsKICAgICAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBm
bG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3Rv
cjsKIAogICAgICAgICBib29sIG1famF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBh
Yzg0MTU2M2ZlMWU1YmZjNDBlMDhlMmY0MzY2Y2Q4NGQ3YmU5ZGU5Li5lZmNkOWUwNTI2ZGRhNDFj
NGM0MGZkNGNiMTA1ZjM0MThlZTJiZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNs
b3NpbmdGcmFtZSgpIGNvbnN0CiAgICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxy
ZWFkeSBjb21wb3NpdGluZywgb3IgdGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSog
cGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOwpAQCAtMTU2Niw3
ICsxNTY2LDcgQEAgZmxvYXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggMWFmMmM5NWQzZTNjZTQ3Y2VlMDE5MjQyM2QxMjEzZWU0NjZjODE2My4uNjA1ZmJk
NmRkYzIzOWY4YWUzNDJhMTk1YzY5YjY4MmZhZTA4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxv
d1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIgpAQCAtMjI2LDEwICsyMjcsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgUmVuZGVyQm94KiByb290Qm94ID0gcm9vdFJlbmRlcmVyLT5pc0JveCgpID8gdG9S
ZW5kZXJCb3gocm9vdFJlbmRlcmVyKSA6IDA7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdwb3J0ID0g
cm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJveC0+d2lk
dGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwogICAgIH0K
LQotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBh
Z2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCkgOiAxOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBlbnRpcmVseSBmaWxsIHRo
ZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAgICAgaWYgKHJvb3RGaWxs
c1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZpcnN0Q2hpbGQoKSkgJiYg
cGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDExMmYw
ZGY5YWVjMWQ5MmEyZmYwNGM0YWJjMjU5MzJkYjM3NDE3NDAuLjAzOGE2OWM1YmQ2ZWNhNmRmZmJj
ZGE4ZWI1NzdmZTg4ZTZjNTY2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDktMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0g
dG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2Fs
ZVBhZ2UpOgorCiAyMDExLTA5LTAxICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVt
Lm9yZz4KIAogIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IDljM2RkODQwNjJmYjYwMmY0MjcwOTMwNThlY2RhODNhYTQxNWYzM2EuLjgwYjkzMGIzNjE4
M2ZhNDhmNWNkMmViZDY3Njg4NGE4YzViNTM2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE4NDcsMTEgKzE4NDcsNyBAQCBmbG9hdCBXZWJWaWV3
SW1wbDo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAg
cmV0dXJuIDEuMDsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0g
ICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDEuMDsKLQotICAgIHJldHVybiBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2Vi
UG9pbnQgb3JpZ2luKQpAQCAtMTg1OSwxMSArMTg1NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNj
YWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQogICAgIGlmICghcGFn
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5G
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT5z
Y2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CisgICAgcGFnZSgpLT5zY2FsZVBhZ2Uoc2Nh
bGVGYWN0b3IsIG9yaWdpbik7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRN
b2RlRW5hYmxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWYyMGRlZTA1YzhlMzM2YTMw
MTU3YjhjN2Y2ZTdlOGFmYTAxN2E1MC4uMDQxYjIyNzFjNGNkOGY1MjFkNTRmYTljMDdlNzA2Njc5
NjVlZTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOC0zMCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjk0MTQyLCByOTQxNDQsIHI5NDE0NSwgYW5kIHI5NDE0OC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCmluZGV4IDVkNWEwNzgyMjVlYjAxYmU5OWM3ZGNhOWI1MmQyMDI3Y2NiMmYwZjkuLmFi
ODZmYWQ4MmFiZGQ3NmRhMjMwNDI0ZGZhNWFhMWYxYzlmNzk4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcApAQCAtODAzLDkgKzgwMyw1IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzaG91bGRDbG9zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBmbG9h
dCBzY2FsZUZhY3RvciwgZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJbnRQ
b2ludCh4LCB5KSk7CisgICAgY29yZSh3ZWJWaWV3KS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJ
bnRQb2ludCh4LCB5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTRjM2QxMDkzYzQzZTgxNDRj
M2E0NGZkZDllYjc2NjExYmI1ZDQ3OS4uYzdjODU2MDg3NDQ3YWQ4NjEyNmEzMzJhNzkyZmI0MWYw
ZGJmZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NhbGVXZWJWaWV3OmF0T3JpZ2luOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF92aWV3U2NhbGVGYWN0b3JdKToKKwogMjAxMS0wOS0wMSAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgYnVpbGQgYnkgYWRkaW5n
IHNvbWUgbW9yZSBtaXNzaW5nIHJldHVybiB0eXBlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2VjODFlYWY4MTk0Nzg4Li5h
NWEwNDljZjU3MzI5ZjcyMDMyYmYwODBhZTE5NzU5ODAxNWUyMTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBAIHN0YXRpYyBQYXNzT3du
UHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAK
IC0gKHZvaWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmlnaW46KE5TUG9pbnQpb3Jp
Z2luCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKLSAg
ICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2YXRlLT5wYWdlLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAtIChmbG9hdClfdmlld1NjYWxl
RmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsK
LSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICByZXR1cm4gY29y
ZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnBh
Z2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VGaXhlZExheW91dDooQk9PTClm
aXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCAzMDRhYzZhNzMzZGVjZTgxNzY3YzRkNzdhOTdhMjNlNWQx
NDYwYTkzLi41MmZhZTdjMDE4M2FhZTg5MjFhNDA5ZjU1MTUwZTRjMDI4MTM2MTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBGYWR5IFNhbXVlbCAgPGZzYW11
ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJv
bSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBhZ2VC
eSk6CisKIDIwMTEtMDktMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFRyYW5zZm9ybSBRdEZhbGxi
YWNrV2ViUG9wdXBDb21ibyBpbnRvIFF0V2ViQ29tYm9Cb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
aW5kZXggZjRhMTU5NjFjOTM2MzMwZjdmNzFiYzdlYzI0YTQ0NDY0OTRjN2IxMC4uZWUyYWVlMjc4
NzhhMTI3NDg4YzE5NzliNTEyM2U2OWY1MjY2NzQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
QEAgLTc4NSw3ICs3ODUsOCBAQCBRU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3
cG9ydEFzVGV4dChRV2ViUGFnZSogcGFnZSwgaW50IGRldmljZURQSSwgYwogdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2NhbGVQYWdlQnkoUVdlYkZyYW1lKiBmcmFtZSwgZmxvYXQgc2Nh
bGVmYWN0b3IsIGNvbnN0IFFQb2ludCYgb3JpZ2luKQogewogICAgIFdlYkNvcmU6OkZyYW1lKiBj
b3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBjb3JlRnJhbWUt
PnNjYWxlUGFnZShzY2FsZWZhY3Rvciwgb3JpZ2luKTsKKyAgICBpZiAoUGFnZSogcGFnZSA9IGNv
cmVGcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5zY2FsZVBhZ2Uoc2NhbGVmYWN0b3IsIG9y
aWdpbik7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmFjdGl2ZU1vY2tEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudChib29sIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTg0YjIwOTkxMDUxZWJl
YmU2MDZhZDQyNDg3ZDJhNDJkOGFlOTljZi4uMTUwYjVkOTZiYjE2MmQ2ODg4OTY4ZWRmNWY3ZjNh
YzAyNmFkYjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxl
RmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0wOS0wMiAg
UmF2aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFAbW90b3JvbGEuY29t
PgogCiAgICAgICAgIFtXSzJdIEFuY2hvciBlbGVtZW50cyBkb2Vzbid0IGdldCBmb2N1cyBvbiBU
QUIga2V5IHByZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IGJjMjBmYmVjZGUyYzY2NTI4YjVlOTEyMzg3ZjJkYTRlMjdiMGFhNzAuLjg1
MmVmYTc0NDJiYjk1YTY5OWU5NGU0NDYwZjFjYTZkMzgxZDkyYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc3NiwyMCArNzc2LDE0IEBA
IHZvaWQgV2ViUGFnZTo6c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhkb3VibGUgcGFnZVpvb21G
YWN0b3IsIGRvdWJsZSB0ZXh0Wm9vbUZhCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlKGRvdWJs
ZSBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBt
X21haW5GcmFtZS0+Y29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJu
OwotICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGUsIG9yaWdpbik7CisgICAgbV9wYWdlLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIG9yaWdpbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlBhZ2VTY2FsZUZhY3RvckRpZENoYW5nZShzY2FsZSkpOwogfQogCiBkb3VibGUgV2ViUGFnZTo6
cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBtX21haW5GcmFt
ZS0+Y29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAg
cmV0dXJuIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gbV9wYWdlLT5wYWdl
U2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3Rvcihm
bG9hdCBzY2FsZUZhY3RvcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106222</attachid>
            <date>2011-09-02 16:41:08 -0700</date>
            <delta_ts>2011-09-02 18:00:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110902194107.patch</filename>
            <type>text/plain</type>
            <size>28767</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDYwMmQ1M2E4YTdiZjM0
YWExYmU1YjdkZGNlY2Q2NjMzMzViNDY3Li4zNjIwMDg4Nzc0MTJiODU1Nzc1NjYyOWRhNmRiOWZk
Y2M0ODUyNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDktMDIgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29t
QW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5
RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnNldFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRp
b25BbmRWaWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDIgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5NDQwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCBjYWVjYTE3YTA4MWQ0NDM3MjRjY2UxZDM4NDUwNTJmYjdmZDAyMmE5Li5jZjY0NzM1ZjNi
OTNlNWNjOGZjMDJmOGFjNDc5Y2MzZGI3MDQwMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0
eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxP
cmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFn
ZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7Cisg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3VtZW50LT5wYWdlKCkg
PyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50
U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9XUklU
RSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGZmMmZlMGI1NjhkMmVm
YWFlYTVjNDhhZWEyZGFhMzRjZjIxNWI5OGUuLjZjYjkwZjYzNGVkODFiNzNmYjc4YjlkMjljMDQ4
MDEzYTEwYzJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU2MiwxMCArNTYyLDggQEAg
UGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogICAg
IHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKIAogICAgIGZsb2F0
IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkp
IHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAg
ICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIH0KKyAgICBp
ZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAgICAgIHBhZ2VTY2FsZSA9
IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGRv
Y3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZpc2libGVDb250ZW50UmVj
dCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNjEzLDEwICs2MTEsOCBAQCBQYXNz
UmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpCiAgICAg
fQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJlc3VsdCwgcmVuZGVyZXIo
KSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIHsKLSAgICAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAgICAgYWRqdXN0
RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsK
LSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAg
IGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCmluZGV4IGUxODA2NmU4YWU5ZGU1MWVkODJmZTRjODE2ZDc3ZmM2ZmFkMzNmOWQu
Ljk0ODEzNDZmMzk2MjYzZjc1NjRiMjQ5YjlkZWUzYTViNWY5N2E3OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcApAQCAtMTk2OCwxMCArMTk2OCw4IEBAIHN0YXRpYyB2b2lkIGFkanVzdEZsb2F0UXVhZHNG
b3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9yPEZsb2F0UXVhCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdl
LT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVG
YWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQor
ICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIExheW91
dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IGYzNDY3ZTY4OGJjYjVhZjE3NWVmZGY5
NjdiZWEyNDFkMjQ2OGMzZTcuLjY3OWNmNGM1ZDhjODc3YjUxMzY0YzBhYWNkNDk2OTk3ZTM5Yjk5
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTI2Nyw3ICsy
NjcsOSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0VkxpbmsoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHN0YXRpYyBpbnQgYWRqdXN0Rm9yWm9vbShpbnQgdmFsdWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBmbG9hdCB6
b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxlRmFj
dG9yKCk7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgZmxvYXQgcGFn
ZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICBm
bG9hdCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2NhbGVGYWN0
b3I7CiAgICAgaWYgKHpvb21GYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IC8vIE5lZWRlZCBiZWNhdXNlIG9mIHRydW5jYXRpb24gKHJhdGhlciB0aGFuIHJvdW5kaW5nKSB3
aGVuIHNjYWxpbmcgdXAuCkBAIC0yODgsNiArMjkwLDcgQEAgaW50IEhUTUxCb2R5RWxlbWVudDo6
c2Nyb2xsTGVmdCgpCiB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdChpbnQgc2Ny
b2xsTGVmdCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMjk1LDcgKzI5OCw4IEBAIHZvaWQg
SFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBzY3JvbGxMZWZ0KQogICAgIEZyYW1l
VmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm47Ci0gICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50
PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxl
RmFjdG9yKCkpLCB2aWV3LT5zY3JvbGxZKCkpKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3Ig
PSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOworICAgIHZpZXctPnNldFNjcm9s
bFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4oc2Nyb2xsTGVmdCAqIGZyYW1lLT5w
YWdlWm9vbUZhY3RvcigpICogcGFnZVNjYWxlRmFjdG9yKSwgdmlldy0+c2Nyb2xsWSgpKSk7CiB9
CiAKIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbFRvcCgpCkBAIC0zMTAsNiArMzE0LDcgQEAg
aW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHZvaWQgSFRNTEJvZHlFbGVtZW50Ojpz
ZXRTY3JvbGxUb3AoaW50IHNjcm9sbFRvcCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAg
IGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBG
cmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzE3
LDcgKzMyMiw4IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxUb3AoaW50IHNjcm9s
bFRvcCkKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAgIGlmICghdmll
dykKICAgICAgICAgcmV0dXJuOwotICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50
KHZpZXctPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFn
ZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSkpKTsKKyAgICBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxLjBmOwor
ICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHZpZXctPnNjcm9sbFgoKSwgc3Rh
dGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIHBhZ2VT
Y2FsZUZhY3RvcikpKTsKIH0KIAogaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsSGVpZ2h0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IDVjMzlm
OTZmMDQ2NmQ4ZWU1ZjZjZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjQ2ZTFiZTZhNDEwODhkNzY5MzE5
N2U5OWZlZDZkOWZiYTZlY2NhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlD
b250cm9sbGVyLmNwcApAQCAtODYsNyArODYsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpz
YXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCiAg
ICAgZWxzZQogICAgICAgICBpdGVtLT5zZXRTY3JvbGxQb2ludChtX2ZyYW1lLT52aWV3KCktPnNj
cm9sbFBvc2l0aW9uKCkpOwogCi0gICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1fZnJhbWUt
PnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwor
ICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9y
KCkgOiAxLjBmKTsKICAgICAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ3JlYXQgdG8gd29y
ayBvdXQgYSB3YXkgdG8gcHV0IHRoaXMgY29kZSBpbiBXZWJDb3JlIGluc3RlYWQgb2YgY2FsbGlu
ZyB0aHJvdWdoIHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5zYXZlVmlld1N0YXRlVG9JdGVtKGl0ZW0pOwpAQCAtMTI1LDcgKzEyNiw4IEBAIHZvaWQgSGlz
dG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAg
aWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewogICAgICAgICBpZiAoIXZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBv
c2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOwotICAgICAgICAgICAgbV9mcmFt
ZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJ
dGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBhZ2UtPnNjYWxlUGFnZShtX2N1cnJlbnRJdGVt
LT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDI4MWRmMDdmZDBjYjMzZDYx
NjJiZjBhYTIyZmQ1MTVmNDk1ZGMzZmUuLjUwNjZmYWZkOGIxZjExNzEyOWI2YmRlMWY2M2MyNjJh
Zjk2MmJlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgaW5saW5l
IEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxl
bWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0aGlzKQogICAg
ICwgbV9wYWdlWm9vbUZhY3RvcihwYXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkKICAgICAsIG1f
dGV4dFpvb21GYWN0b3IocGFyZW50VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAgLCBtX3BhZ2VT
Y2FsZUZhY3RvcigxKQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgLCBtX29y
aWVudGF0aW9uKDApCiAjZW5kaWYKQEAgLTEwMzcsMzMgKzEwMzYsNiBAQCB2b2lkIEZyYW1lOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICByb290LT5jb21wb3NpdG9y
KCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogI2VuZGlmCi0KLXZvaWQg
RnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikK
LXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICgh
ZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2FsZSAhPSBtX3BhZ2VTY2Fs
ZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwotCi0gICAgICAg
IGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5yZW5kZXJl
cigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1bWVudC0+cmVjYWxjU3R5
bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
ICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgotICAgIH0KLQot
ICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsKLSAgICAgICAgaWYgKGRv
Y3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVkc0xheW91dCgp
ICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsK
LSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKLSAgICB9Ci19Ci0KIHZv
aWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2Vk
KCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxs
ZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggMzVm
ZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uMDE0N2ZiMTcwZDMxMmQ2OTQ2
YzBiOTU4ZTZhNjYxZTUwMGU1Y2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTYxLDkgKzE2MSw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4dFpvb21GYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAgIHZvaWQgc2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxvYXQgdGV4dFpvb21GYWN0
b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG1vdmUgdG8g
UGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBv
aW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICNlbmRp
ZgpAQCAtMjQxLDggKzIzOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQg
bV9wYWdlWm9vbUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3RvcjsKIAotICAg
ICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCiAgICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMWE3YThlZmI3Y2QwZGM1YzYyYmY5NDFkMjM0Zjc5NjBkNWUwMTU0
Ni4uM2I2MjczNmM2OWVkN2I5YjgzOGE4YmY5MmE0ZDZlYWUxNDBjMmYzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBs
eU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJPYmplY3QqIG8sIFNjcm9sbGJhck1vZGUmIGhNb2Rl
LCBTCiAgICAgLy8gVG8gY29tYmF0IHRoZSBpbmFiaWxpdHkgdG8gc2Nyb2xsIG9uIGEgcGFnZSB3
aXRoIG92ZXJmbG93OmhpZGRlbiBvbiB0aGUgcm9vdCB3aGVuIHNjYWxlZCwgZGlzcmVnYXJkIGhp
ZGRlbiB3aGVuCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlU2NhbGVGYWN0b3IgdGhhdCBpcyBncmVh
dGVyIHRoYW4gb25lIG9uIHRoZSBtYWluIGZyYW1lLgogCi0gICAgYm9vbCBvdmVycmlkZUhpZGRl
biA9IG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IG1f
ZnJhbWUgJiYgbV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOworICAgIGJvb2wgb3ZlcnJp
ZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUo
KSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOwog
CiAgICAgc3dpdGNoIChvLT5zdHlsZSgpLT5vdmVyZmxvd1goKSkgewogICAgICAgICBjYXNlIE9I
SURERU46CkBAIC0xMzM4LDcgKzEzMzgsOCBAQCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xs
WEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIHg7CiAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVG
YWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAKICAg
ICAvLyBXaGVuIHRoZSBwYWdlIGlzIHNjYWxlZCwgdGhlIHNjYWxlZCAidmlld3BvcnQiIHdpdGgg
cmVzcGVjdCB0byB3aGljaCBmaXhlZCBvYmplY3QgYXJlIHBvc2l0aW9uZWQKICAgICAvLyBkb2Vz
bid0IG1vdmUgYXMgZmFzdCBhcyB0aGUgY29udGVudCB2aWV3LCBzbyB0aGF0IHdoZW4gdGhlIGNv
bnRlbnQgaXMgc2Nyb2xsZWQgYWxsIHRoZSB3YXkgdG8gdGhlCkBAIC0xMzczLDcgKzEzNzQsOCBA
QCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdAog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIHk7CiAKLSAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdl
LT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAgICAgZmxvYXQgZHJhZ0ZhY3RvciA9IChjb250ZW50
c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBwYWdlU2NhbGVGYWN0b3IpIC8gbWF4
WTsKIAogICAgIHJldHVybiB5ICogZHJhZ0ZhY3RvciAvIHBhZ2VTY2FsZUZhY3RvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGIxOGZkMzkyZTlkMTBkZmQ1NjAzZGJkNjVmNWFlMTMyOWJjMTljN2Qu
Ljk3NzhmMTM3NDkzNjdlNDE3MTgyZjNkYjM4OGY4MjM2NDdkMTFiNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGll
bnRzKQogICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZU1lbW9yeUNhY2hl
Q2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCisgICAgLCBt
X3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQogICAgICwg
bV9qYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQodHJ1ZSkKICAgICAsIG1fZGlkTG9hZFVzZXJTdHls
ZVNoZWV0KGZhbHNlKQpAQCAtNjA4LDYgKzYwOSwzMSBAQCB2b2lkIFBhZ2U6OnNldE1lZGlhVm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICB9CiB9CiAKK3ZvaWQgUGFnZTo6c2NhbGVQYWdlKGZsb2F0
IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworCisgICAgaWYgKHNjYWxlICE9IG1fcGFn
ZVNjYWxlRmFjdG9yKSB7CisgICAgICAgIG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGU7CisKKyAg
ICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJl
bmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCisgICAgICAgIGRvY3VtZW50LT5yZWNh
bGNTdHlsZShOb2RlOjpGb3JjZSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgICAgIG1haW5GcmFtZSgpLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsK
KyNlbmRpZgorICAgIH0KKworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVudC0+dmll
dygpKSB7CisgICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVu
ZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAg
ICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9y
aWdpbik7CisgICAgfQorfQorCisKIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxv
YXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVG
YWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2
Nzg3ZWZjYTkuLmFjOTdiMjg5Y2RjNGVhNWY3MzQzMGU5Mzg3Njg2ZjQ5Y2E5MjRkYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVz
LmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgog
I2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWVkaWFWb2x1bWU7IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9h
dCB2b2x1bWUpOwogCisgICAgICAgIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBM
YXlvdXRQb2ludCYgb3JpZ2luKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAg
ICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVu
dENhbGxzRW5hYmxlZDsKICAgICAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBm
bG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3Rv
cjsKIAogICAgICAgICBib29sIG1famF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBh
Yzg0MTU2M2ZlMWU1YmZjNDBlMDhlMmY0MzY2Y2Q4NGQ3YmU5ZGU5Li5lZmNkOWUwNTI2ZGRhNDFj
NGM0MGZkNGNiMTA1ZjM0MThlZTJiZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNs
b3NpbmdGcmFtZSgpIGNvbnN0CiAgICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxy
ZWFkeSBjb21wb3NpdGluZywgb3IgdGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSog
cGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOwpAQCAtMTU2Niw3
ICsxNTY2LDcgQEAgZmxvYXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggMWFmMmM5NWQzZTNjZTQ3Y2VlMDE5MjQyM2QxMjEzZWU0NjZjODE2My4uNjA1ZmJk
NmRkYzIzOWY4YWUzNDJhMTk1YzY5YjY4MmZhZTA4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxv
d1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIgpAQCAtMjI2LDEwICsyMjcsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgUmVuZGVyQm94KiByb290Qm94ID0gcm9vdFJlbmRlcmVyLT5pc0JveCgpID8gdG9S
ZW5kZXJCb3gocm9vdFJlbmRlcmVyKSA6IDA7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdwb3J0ID0g
cm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJveC0+d2lk
dGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwogICAgIH0K
LQotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBh
Z2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCkgOiAxOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBlbnRpcmVseSBmaWxsIHRo
ZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAgICAgaWYgKHJvb3RGaWxs
c1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZpcnN0Q2hpbGQoKSkgJiYg
cGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDExMmYw
ZGY5YWVjMWQ5MmEyZmYwNGM0YWJjMjU5MzJkYjM3NDE3NDAuLjAzOGE2OWM1YmQ2ZWNhNmRmZmJj
ZGE4ZWI1NzdmZTg4ZTZjNTY2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDktMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0g
dG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2Fs
ZVBhZ2UpOgorCiAyMDExLTA5LTAxICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVt
Lm9yZz4KIAogIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IDljM2RkODQwNjJmYjYwMmY0MjcwOTMwNThlY2RhODNhYTQxNWYzM2EuLjgwYjkzMGIzNjE4
M2ZhNDhmNWNkMmViZDY3Njg4NGE4YzViNTM2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE4NDcsMTEgKzE4NDcsNyBAQCBmbG9hdCBXZWJWaWV3
SW1wbDo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAg
cmV0dXJuIDEuMDsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0g
ICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDEuMDsKLQotICAgIHJldHVybiBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2Vi
UG9pbnQgb3JpZ2luKQpAQCAtMTg1OSwxMSArMTg1NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNj
YWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQogICAgIGlmICghcGFn
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5G
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT5z
Y2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CisgICAgcGFnZSgpLT5zY2FsZVBhZ2Uoc2Nh
bGVGYWN0b3IsIG9yaWdpbik7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRN
b2RlRW5hYmxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWYyMGRlZTA1YzhlMzM2YTMw
MTU3YjhjN2Y2ZTdlOGFmYTAxN2E1MC4uMDQxYjIyNzFjNGNkOGY1MjFkNTRmYTljMDdlNzA2Njc5
NjVlZTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOC0zMCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjk0MTQyLCByOTQxNDQsIHI5NDE0NSwgYW5kIHI5NDE0OC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCmluZGV4IDVkNWEwNzgyMjVlYjAxYmU5OWM3ZGNhOWI1MmQyMDI3Y2NiMmYwZjkuLmFi
ODZmYWQ4MmFiZGQ3NmRhMjMwNDI0ZGZhNWFhMWYxYzlmNzk4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcApAQCAtODAzLDkgKzgwMyw1IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzaG91bGRDbG9zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBmbG9h
dCBzY2FsZUZhY3RvciwgZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJbnRQ
b2ludCh4LCB5KSk7CisgICAgY29yZSh3ZWJWaWV3KS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJ
bnRQb2ludCh4LCB5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTRjM2QxMDkzYzQzZTgxNDRj
M2E0NGZkZDllYjc2NjExYmI1ZDQ3OS4uYzdjODU2MDg3NDQ3YWQ4NjEyNmEzMzJhNzkyZmI0MWYw
ZGJmZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NhbGVXZWJWaWV3OmF0T3JpZ2luOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF92aWV3U2NhbGVGYWN0b3JdKToKKwogMjAxMS0wOS0wMSAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgYnVpbGQgYnkgYWRkaW5n
IHNvbWUgbW9yZSBtaXNzaW5nIHJldHVybiB0eXBlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2VjODFlYWY4MTk0Nzg4Li5h
NWEwNDljZjU3MzI5ZjcyMDMyYmYwODBhZTE5NzU5ODAxNWUyMTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBAIHN0YXRpYyBQYXNzT3du
UHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAK
IC0gKHZvaWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmlnaW46KE5TUG9pbnQpb3Jp
Z2luCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKLSAg
ICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2YXRlLT5wYWdlLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAtIChmbG9hdClfdmlld1NjYWxl
RmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsK
LSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICByZXR1cm4gY29y
ZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnBh
Z2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VGaXhlZExheW91dDooQk9PTClm
aXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCAzMDRhYzZhNzMzZGVjZTgxNzY3YzRkNzdhOTdhMjNlNWQx
NDYwYTkzLi41MmZhZTdjMDE4M2FhZTg5MjFhNDA5ZjU1MTUwZTRjMDI4MTM2MTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBGYWR5IFNhbXVlbCAgPGZzYW11
ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJv
bSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBhZ2VC
eSk6CisKIDIwMTEtMDktMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFRyYW5zZm9ybSBRdEZhbGxi
YWNrV2ViUG9wdXBDb21ibyBpbnRvIFF0V2ViQ29tYm9Cb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
aW5kZXggZjRhMTU5NjFjOTM2MzMwZjdmNzFiYzdlYzI0YTQ0NDY0OTRjN2IxMC4uZWUyYWVlMjc4
NzhhMTI3NDg4YzE5NzliNTEyM2U2OWY1MjY2NzQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
QEAgLTc4NSw3ICs3ODUsOCBAQCBRU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3
cG9ydEFzVGV4dChRV2ViUGFnZSogcGFnZSwgaW50IGRldmljZURQSSwgYwogdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2NhbGVQYWdlQnkoUVdlYkZyYW1lKiBmcmFtZSwgZmxvYXQgc2Nh
bGVmYWN0b3IsIGNvbnN0IFFQb2ludCYgb3JpZ2luKQogewogICAgIFdlYkNvcmU6OkZyYW1lKiBj
b3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBjb3JlRnJhbWUt
PnNjYWxlUGFnZShzY2FsZWZhY3Rvciwgb3JpZ2luKTsKKyAgICBpZiAoUGFnZSogcGFnZSA9IGNv
cmVGcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5zY2FsZVBhZ2Uoc2NhbGVmYWN0b3IsIG9y
aWdpbik7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmFjdGl2ZU1vY2tEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudChib29sIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTg0YjIwOTkxMDUxZWJl
YmU2MDZhZDQyNDg3ZDJhNDJkOGFlOTljZi4uMTUwYjVkOTZiYjE2MmQ2ODg4OTY4ZWRmNWY3ZjNh
YzAyNmFkYjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxl
RmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0wOS0wMiAg
UmF2aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFAbW90b3JvbGEuY29t
PgogCiAgICAgICAgIFtXSzJdIEFuY2hvciBlbGVtZW50cyBkb2Vzbid0IGdldCBmb2N1cyBvbiBU
QUIga2V5IHByZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IDYxYzgwMTVhOTNmN2I2MGY2ZWRmMDAzOWNlZTY2ZDI4NDlhMjI5
YmYuLjI3YzFhMzQ2ZDk1NDFiZmM0MjY5MzY3YmI3OGU2OTAzZjY1NDYwMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTU5MCw3
ICs1OTAsOSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAg
ICAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgICAgICAKICAgICAgICAgLy8gQWRq
dXN0IG1vdXNlIGNvb3JkaW5hdGVzIHRvIGFjY291bnQgZm9yIHBhZ2VTY2FsZUZhY3RvcgotICAg
ICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50V2l0aFNjYWxlZENvb3JkaW5hdGVzKCpzdGF0aWNfY2Fz
dDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oY3VycmVudEV2ZW50KSwgZnJhbWUoKS0+cGFnZVNjYWxl
RmFjdG9yKCkpOworICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpOworICAgICAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
OiAxOworICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50V2l0aFNjYWxlZENvb3JkaW5hdGVzKCpz
dGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oY3VycmVudEV2ZW50KSwgcGFnZVNjYWxl
RmFjdG9yKTsKICAgICAgICAgZGlkSGFuZGxlRXZlbnQgPSBtX3BsdWdpbi0+aGFuZGxlTW91c2VF
dmVudChldmVudFdpdGhTY2FsZWRDb29yZGluYXRlcyk7CiAgICAgfSBlbHNlIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQgJiYgY3VycmVudEV2ZW50LT50
eXBlKCkgPT0gV2ViRXZlbnQ6OldoZWVsKSB7CiAgICAgICAgIC8vIFdlIGhhdmUgYSB3aGVlbCBl
dmVudC4KQEAgLTY1Nyw3ICs2NTksOSBAQCB2b2lkIFBsdWdpblZpZXc6OnZpZXdHZW9tZXRyeURp
ZENoYW5nZSgpCiAgICAgSW50UmVjdCBmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzID0gcGFy
ZW50KCktPmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpOwogICAgIAogICAgIC8vIEFkanVz
dCBib3VuZHMgdG8gYWNjb3VudCBmb3IgcGFnZVNjYWxlRmFjdG9yCi0gICAgZnJhbWVSZWN0SW5X
aW5kb3dDb29yZGluYXRlcy5zY2FsZSgxIC8gZnJhbWUoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5wYWdlKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICBmcmFtZVJlY3RJ
bldpbmRvd0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBwYWdlU2NhbGVGYWN0b3IpOwogICAgIG1fcGx1
Z2luLT5nZW9tZXRyeURpZENoYW5nZShmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLCBjbGlw
UmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSk7CiB9CiAKQEAgLTY4Myw3ICs2ODcsOSBAQCBJbnRS
ZWN0IFBsdWdpblZpZXc6OmNsaXBSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpIGNvbnN0CiAgICAg
Ly8gSW50ZXJzZWN0IHRoZSB0d28gcmVjdHMgdG8gZ2V0IHRoZSB2aWV3IGNsaXAgcmVjdCBpbiB3
aW5kb3cgY29vcmRpbmF0ZXMuCiAgICAgZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRlcy5pbnRl
cnNlY3Qod2luZG93Q2xpcFJlY3QpOwogCi0gICAgZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRl
cy5zY2FsZSgxIC8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0g
ZnJhbWUoKS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdl
LT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CisgICAgZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRl
cy5zY2FsZSgxIC8gcGFnZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gZnJhbWVSZWN0SW5XaW5k
b3dDb29yZGluYXRlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRl
eCAwMjQ5ZTk2NWNjZjdmZmNlZjg0ZGNhNDA0MmI3ODQ5NzZkMzQ1MDgxLi45MjQ4MmQxNDRhNzdk
MmVkMjAyODVjZTc1Mjg3YzJmOWVlZDBkYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtNDQzLDcgKzQ0Myw4IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkQ29tbWl0TG9hZCgpCiAKICAgICAvLyBPbmx5IHJlc3RvcmUgdGhlIHNjYWxlIGZh
Y3RvciBmb3Igc3RhbmRhcmQgZnJhbWUgbG9hZHMgKG9mIHRoZSBtYWluIGZyYW1lKS4KICAgICBp
ZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVy
KCktPmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZVN0YW5kYXJkKSB7Ci0gICAgICAgIGlmICht
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKKyAgICAgICAgUGFn
ZSogcGFnZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlKCk7CisgICAgICAgIGlmIChwYWdl
ICYmIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgICAgICB3ZWJQYWdlLT5z
Y2FsZVBhZ2UoMSwgSW50UG9pbnQoKSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGJjMjBmYmVjZGUyYzY2NTI4YjVlOTEy
Mzg3ZjJkYTRlMjdiMGFhNzAuLjg1MmVmYTc0NDJiYjk1YTY5OWU5NGU0NDYwZjFjYTZkMzgxZDky
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTc3NiwyMCArNzc2LDE0IEBAIHZvaWQgV2ViUGFnZTo6c2V0UGFnZUFuZFRleHRab29tRmFj
dG9ycyhkb3VibGUgcGFnZVpvb21GYWN0b3IsIGRvdWJsZSB0ZXh0Wm9vbUZhCiAKIHZvaWQgV2Vi
UGFnZTo6c2NhbGVQYWdlKGRvdWJsZSBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKIHsK
LSAgICBGcmFtZSogZnJhbWUgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCk7Ci0gICAgaWYgKCFm
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGUsIG9yaWdp
bik7CisgICAgbV9wYWdlLT5zY2FsZVBhZ2Uoc2NhbGUsIG9yaWdpbik7CiAKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VTY2FsZUZhY3RvckRpZENoYW5nZShzY2FsZSkpOwog
fQogCiBkb3VibGUgV2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKLSAgICBGcmFt
ZSogZnJhbWUgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAg
ICByZXR1cm4gbV9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpz
ZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106232</attachid>
            <date>2011-09-02 18:00:30 -0700</date>
            <delta_ts>2011-09-07 10:33:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110902210028.patch</filename>
            <type>text/plain</type>
            <size>28765</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNDYwMmQ1M2E4YTdiZjM0
YWExYmU1YjdkZGNlY2Q2NjMzMzViNDY3Li4zNjIwMDg4Nzc0MTJiODU1Nzc1NjYyOWRhNmRiOWZk
Y2M0ODUyNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDktMDIgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpz
dHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29t
QW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5
RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnNldFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRp
b25BbmRWaWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xs
ZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDIgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI5NDQwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCBjYWVjYTE3YTA4MWQ0NDM3MjRjY2UxZDM4NDUwNTJmYjdmZDAyMmE5Li5jZjY0NzM1ZjNi
OTNlNWNjOGZjMDJmOGFjNDc5Y2MzZGI3MDQwMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0
eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxP
cmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFn
ZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7Cisg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3VtZW50LT5wYWdlKCkg
PyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50
U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9XUklU
RSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGZmMmZlMGI1NjhkMmVm
YWFlYTVjNDhhZWEyZGFhMzRjZjIxNWI5OGUuLjZjYjkwZjYzNGVkODFiNzNmYjc4YjlkMjljMDQ4
MDEzYTEwYzJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU2MiwxMCArNTYyLDggQEAg
UGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogICAg
IHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsKIAogICAgIGZsb2F0
IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkp
IHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAg
ICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIH0KKyAgICBp
ZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAgICAgIHBhZ2VTY2FsZSA9
IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGRv
Y3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZpc2libGVDb250ZW50UmVj
dCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNjEzLDEwICs2MTEsOCBAQCBQYXNz
UmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpCiAgICAg
fQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJlc3VsdCwgcmVuZGVyZXIo
KSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIHsKLSAgICAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAgICAgYWRqdXN0
RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsK
LSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAg
IGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCmluZGV4IGUxODA2NmU4YWU5ZGU1MWVkODJmZTRjODE2ZDc3ZmM2ZmFkMzNmOWQu
Ljk0ODEzNDZmMzk2MjYzZjc1NjRiMjQ5YjlkZWUzYTViNWY5N2E3OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcApAQCAtMTk2OCwxMCArMTk2OCw4IEBAIHN0YXRpYyB2b2lkIGFkanVzdEZsb2F0UXVhZHNG
b3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9yPEZsb2F0UXVhCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdl
LT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVG
YWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQor
ICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIExheW91
dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IGYzNDY3ZTY4OGJjYjVhZjE3NWVmZGY5
NjdiZWEyNDFkMjQ2OGMzZTcuLjY3OWNmNGM1ZDhjODc3YjUxMzY0YzBhYWNkNDk2OTk3ZTM5Yjk5
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTI2Nyw3ICsy
NjcsOSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0VkxpbmsoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHN0YXRpYyBpbnQgYWRqdXN0Rm9yWm9vbShpbnQgdmFsdWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBmbG9hdCB6
b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxlRmFj
dG9yKCk7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgZmxvYXQgcGFn
ZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICBm
bG9hdCB6b29tRmFjdG9yID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2NhbGVGYWN0
b3I7CiAgICAgaWYgKHpvb21GYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IC8vIE5lZWRlZCBiZWNhdXNlIG9mIHRydW5jYXRpb24gKHJhdGhlciB0aGFuIHJvdW5kaW5nKSB3
aGVuIHNjYWxpbmcgdXAuCkBAIC0yODgsNiArMjkwLDcgQEAgaW50IEhUTUxCb2R5RWxlbWVudDo6
c2Nyb2xsTGVmdCgpCiB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdChpbnQgc2Ny
b2xsTGVmdCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMjk1LDcgKzI5OCw4IEBAIHZvaWQg
SFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBzY3JvbGxMZWZ0KQogICAgIEZyYW1l
VmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1
cm47Ci0gICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50
PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+cGFnZVNjYWxl
RmFjdG9yKCkpLCB2aWV3LT5zY3JvbGxZKCkpKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3Ig
PSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOworICAgIHZpZXctPnNldFNjcm9s
bFBvc2l0aW9uKEludFBvaW50KHN0YXRpY19jYXN0PGludD4oc2Nyb2xsTGVmdCAqIGZyYW1lLT5w
YWdlWm9vbUZhY3RvcigpICogcGFnZVNjYWxlRmFjdG9yKSwgdmlldy0+c2Nyb2xsWSgpKSk7CiB9
CiAKIGludCBIVE1MQm9keUVsZW1lbnQ6OnNjcm9sbFRvcCgpCkBAIC0zMTAsNiArMzE0LDcgQEAg
aW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHZvaWQgSFRNTEJvZHlFbGVtZW50Ojpz
ZXRTY3JvbGxUb3AoaW50IHNjcm9sbFRvcCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
aGlzLT5kb2N1bWVudCgpOworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwogICAg
IGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBG
cmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzE3
LDcgKzMyMiw4IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRTY3JvbGxUb3AoaW50IHNjcm9s
bFRvcCkKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAgIGlmICghdmll
dykKICAgICAgICAgcmV0dXJuOwotICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50
KHZpZXctPnNjcm9sbFgoKSwgc3RhdGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFn
ZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSkpKTsKKyAgICBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxLjBmOwor
ICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KHZpZXctPnNjcm9sbFgoKSwgc3Rh
dGljX2Nhc3Q8aW50PihzY3JvbGxUb3AgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIHBhZ2VT
Y2FsZUZhY3RvcikpKTsKIH0KIAogaW50IEhUTUxCb2R5RWxlbWVudDo6c2Nyb2xsSGVpZ2h0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IDVjMzlm
OTZmMDQ2NmQ4ZWU1ZjZjZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjQ2ZTFiZTZhNDEwODhkNzY5MzE5
N2U5OWZlZDZkOWZiYTZlY2NhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlD
b250cm9sbGVyLmNwcApAQCAtODYsNyArODYsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpz
YXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCiAg
ICAgZWxzZQogICAgICAgICBpdGVtLT5zZXRTY3JvbGxQb2ludChtX2ZyYW1lLT52aWV3KCktPnNj
cm9sbFBvc2l0aW9uKCkpOwogCi0gICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1fZnJhbWUt
PnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwor
ICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9y
KCkgOiAxLjBmKTsKICAgICAKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ3JlYXQgdG8gd29y
ayBvdXQgYSB3YXkgdG8gcHV0IHRoaXMgY29kZSBpbiBXZWJDb3JlIGluc3RlYWQgb2YgY2FsbGlu
ZyB0aHJvdWdoIHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5zYXZlVmlld1N0YXRlVG9JdGVtKGl0ZW0pOwpAQCAtMTI1LDcgKzEyNiw4IEBAIHZvaWQgSGlz
dG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAg
aWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewogICAgICAgICBpZiAoIXZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBv
c2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOwotICAgICAgICAgICAgbV9mcmFt
ZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJ
dGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBhZ2UtPnNjYWxlUGFnZShtX2N1cnJlbnRJdGVt
LT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDI4MWRmMDdmZDBjYjMzZDYx
NjJiZjBhYTIyZmQ1MTVmNDk1ZGMzZmUuLjUwNjZmYWZkOGIxZjExNzEyOWI2YmRlMWY2M2MyNjJh
Zjk2MmJlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgaW5saW5l
IEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxl
bWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0aGlzKQogICAg
ICwgbV9wYWdlWm9vbUZhY3RvcihwYXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkKICAgICAsIG1f
dGV4dFpvb21GYWN0b3IocGFyZW50VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAgLCBtX3BhZ2VT
Y2FsZUZhY3RvcigxKQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgLCBtX29y
aWVudGF0aW9uKDApCiAjZW5kaWYKQEAgLTEwMzcsMzMgKzEwMzYsNiBAQCB2b2lkIEZyYW1lOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICByb290LT5jb21wb3NpdG9y
KCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogI2VuZGlmCi0KLXZvaWQg
RnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikK
LXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICgh
ZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2FsZSAhPSBtX3BhZ2VTY2Fs
ZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwotCi0gICAgICAg
IGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5yZW5kZXJl
cigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1bWVudC0+cmVjYWxjU3R5
bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
ICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgotICAgIH0KLQot
ICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsKLSAgICAgICAgaWYgKGRv
Y3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVkc0xheW91dCgp
ICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsK
LSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKLSAgICB9Ci19Ci0KIHZv
aWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2Vk
KCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxs
ZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggMzVm
ZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uMDE0N2ZiMTcwZDMxMmQ2OTQ2
YzBiOTU4ZTZhNjYxZTUwMGU1Y2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTYxLDkgKzE2MSw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4dFpvb21GYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAgIHZvaWQgc2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxvYXQgdGV4dFpvb21GYWN0
b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG1vdmUgdG8g
UGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBv
aW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICNlbmRp
ZgpAQCAtMjQxLDggKzIzOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQg
bV9wYWdlWm9vbUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3RvcjsKIAotICAg
ICAgICBmbG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCiAgICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggMWE3YThlZmI3Y2QwZGM1YzYyYmY5NDFkMjM0Zjc5NjBkNWUwMTU0
Ni4uM2I2MjczNmM2OWVkN2I5YjgzOGE4YmY5MmE0ZDZlYWUxNDBjMmYzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBs
eU92ZXJmbG93VG9WaWV3cG9ydChSZW5kZXJPYmplY3QqIG8sIFNjcm9sbGJhck1vZGUmIGhNb2Rl
LCBTCiAgICAgLy8gVG8gY29tYmF0IHRoZSBpbmFiaWxpdHkgdG8gc2Nyb2xsIG9uIGEgcGFnZSB3
aXRoIG92ZXJmbG93OmhpZGRlbiBvbiB0aGUgcm9vdCB3aGVuIHNjYWxlZCwgZGlzcmVnYXJkIGhp
ZGRlbiB3aGVuCiAgICAgLy8gdGhlcmUgaXMgYSBwYWdlU2NhbGVGYWN0b3IgdGhhdCBpcyBncmVh
dGVyIHRoYW4gb25lIG9uIHRoZSBtYWluIGZyYW1lLgogCi0gICAgYm9vbCBvdmVycmlkZUhpZGRl
biA9IG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IG1f
ZnJhbWUgJiYgbV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOworICAgIGJvb2wgb3ZlcnJp
ZGVIaWRkZW4gPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUo
KSA9PSBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgPiAxOwog
CiAgICAgc3dpdGNoIChvLT5zdHlsZSgpLT5vdmVyZmxvd1goKSkgewogICAgICAgICBjYXNlIE9I
SURERU46CkBAIC0xMzM4LDcgKzEzMzgsOCBAQCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xs
WEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIHg7CiAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVG
YWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAKICAg
ICAvLyBXaGVuIHRoZSBwYWdlIGlzIHNjYWxlZCwgdGhlIHNjYWxlZCAidmlld3BvcnQiIHdpdGgg
cmVzcGVjdCB0byB3aGljaCBmaXhlZCBvYmplY3QgYXJlIHBvc2l0aW9uZWQKICAgICAvLyBkb2Vz
bid0IG1vdmUgYXMgZmFzdCBhcyB0aGUgY29udGVudCB2aWV3LCBzbyB0aGF0IHdoZW4gdGhlIGNv
bnRlbnQgaXMgc2Nyb2xsZWQgYWxsIHRoZSB3YXkgdG8gdGhlCkBAIC0xMzczLDcgKzEzNzQsOCBA
QCBMYXlvdXRVbml0IEZyYW1lVmlldzo6c2Nyb2xsWUZvckZpeGVkUG9zaXRpb24oKSBjb25zdAog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIHk7CiAKLSAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IgPSBtX2ZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdl
LT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAgICAgZmxvYXQgZHJhZ0ZhY3RvciA9IChjb250ZW50
c0hlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRIZWlnaHQgKiBwYWdlU2NhbGVGYWN0b3IpIC8gbWF4
WTsKIAogICAgIHJldHVybiB5ICogZHJhZ0ZhY3RvciAvIHBhZ2VTY2FsZUZhY3RvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGIxOGZkMzkyZTlkMTBkZmQ1NjAzZGJkNjVmNWFlMTMyOWJjMTljN2Qu
Ljk3NzhmMTM3NDkzNjdlNDE3MTgyZjNkYjM4OGY4MjM2NDdkMTFiNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGll
bnRzKQogICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZU1lbW9yeUNhY2hl
Q2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCisgICAgLCBt
X3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQogICAgICwg
bV9qYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQodHJ1ZSkKICAgICAsIG1fZGlkTG9hZFVzZXJTdHls
ZVNoZWV0KGZhbHNlKQpAQCAtNjA4LDYgKzYwOSwzMSBAQCB2b2lkIFBhZ2U6OnNldE1lZGlhVm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICB9CiB9CiAKK3ZvaWQgUGFnZTo6c2NhbGVQYWdlKGZsb2F0
IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworCisgICAgaWYgKHNjYWxlICE9IG1fcGFn
ZVNjYWxlRmFjdG9yKSB7CisgICAgICAgIG1fcGFnZVNjYWxlRmFjdG9yID0gc2NhbGU7CisKKyAg
ICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJl
bmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCisgICAgICAgIGRvY3VtZW50LT5yZWNh
bGNTdHlsZShOb2RlOjpGb3JjZSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgICAgIG1haW5GcmFtZSgpLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsK
KyNlbmRpZgorICAgIH0KKworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVudC0+dmll
dygpKSB7CisgICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVu
ZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAg
ICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9y
aWdpbik7CisgICAgfQorfQorCisKIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxv
YXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVG
YWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2
Nzg3ZWZjYTkuLmFjOTdiMjg5Y2RjNGVhNWY3MzQzMGU5Mzg3Njg2ZjQ5Y2E5MjRkYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVz
LmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgog
I2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWVkaWFWb2x1bWU7IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9h
dCB2b2x1bWUpOwogCisgICAgICAgIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBM
YXlvdXRQb2ludCYgb3JpZ2luKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAg
ICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVu
dENhbGxzRW5hYmxlZDsKICAgICAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBm
bG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3Rv
cjsKIAogICAgICAgICBib29sIG1famF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBh
Yzg0MTU2M2ZlMWU1YmZjNDBlMDhlMmY0MzY2Y2Q4NGQ3YmU5ZGU5Li5lZmNkOWUwNTI2ZGRhNDFj
NGM0MGZkNGNiMTA1ZjM0MThlZTJiZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNs
b3NpbmdGcmFtZSgpIGNvbnN0CiAgICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxy
ZWFkeSBjb21wb3NpdGluZywgb3IgdGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSog
cGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOwpAQCAtMTU2Niw3
ICsxNTY2LDcgQEAgZmxvYXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggMWFmMmM5NWQzZTNjZTQ3Y2VlMDE5MjQyM2QxMjEzZWU0NjZjODE2My4uNjA1ZmJk
NmRkYzIzOWY4YWUzNDJhMTk1YzY5YjY4MmZhZTA4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxv
d1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIgpAQCAtMjI2LDEwICsyMjcsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgUmVuZGVyQm94KiByb290Qm94ID0gcm9vdFJlbmRlcmVyLT5pc0JveCgpID8gdG9S
ZW5kZXJCb3gocm9vdFJlbmRlcmVyKSA6IDA7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdwb3J0ID0g
cm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJveC0+d2lk
dGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwogICAgIH0K
LQotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBh
Z2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCkgOiAxOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBlbnRpcmVseSBmaWxsIHRo
ZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAgICAgaWYgKHJvb3RGaWxs
c1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZpcnN0Q2hpbGQoKSkgJiYg
cGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDExMmYw
ZGY5YWVjMWQ5MmEyZmYwNGM0YWJjMjU5MzJkYjM3NDE3NDAuLjAzOGE2OWM1YmQ2ZWNhNmRmZmJj
ZGE4ZWI1NzdmZTg4ZTZjNTY2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDktMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0g
dG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2Fs
ZVBhZ2UpOgorCiAyMDExLTA5LTAxICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVt
Lm9yZz4KIAogIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IDljM2RkODQwNjJmYjYwMmY0MjcwOTMwNThlY2RhODNhYTQxNWYzM2EuLjgwYjkzMGIzNjE4
M2ZhNDhmNWNkMmViZDY3Njg4NGE4YzViNTM2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE4NDcsMTEgKzE4NDcsNyBAQCBmbG9hdCBXZWJWaWV3
SW1wbDo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAg
cmV0dXJuIDEuMDsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0g
ICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDEuMDsKLQotICAgIHJldHVybiBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2Vi
UG9pbnQgb3JpZ2luKQpAQCAtMTg1OSwxMSArMTg1NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNj
YWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQogICAgIGlmICghcGFn
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5G
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT5z
Y2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIG9yaWdpbik7CisgICAgcGFnZSgpLT5zY2FsZVBhZ2Uoc2Nh
bGVGYWN0b3IsIG9yaWdpbik7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRN
b2RlRW5hYmxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWYyMGRlZTA1YzhlMzM2YTMw
MTU3YjhjN2Y2ZTdlOGFmYTAxN2E1MC4uMDQxYjIyNzFjNGNkOGY1MjFkNTRmYTljMDdlNzA2Njc5
NjVlZTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOC0zMCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjk0MTQyLCByOTQxNDQsIHI5NDE0NSwgYW5kIHI5NDE0OC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCmluZGV4IDVkNWEwNzgyMjVlYjAxYmU5OWM3ZGNhOWI1MmQyMDI3Y2NiMmYwZjkuLmFi
ODZmYWQ4MmFiZGQ3NmRhMjMwNDI0ZGZhNWFhMWYxYzlmNzk4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcApAQCAtODAzLDkgKzgwMyw1IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzaG91bGRDbG9zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBmbG9h
dCBzY2FsZUZhY3RvciwgZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJbnRQ
b2ludCh4LCB5KSk7CisgICAgY29yZSh3ZWJWaWV3KS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJ
bnRQb2ludCh4LCB5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTRjM2QxMDkzYzQzZTgxNDRj
M2E0NGZkZDllYjc2NjExYmI1ZDQ3OS4uYzdjODU2MDg3NDQ3YWQ4NjEyNmEzMzJhNzkyZmI0MWYw
ZGJmZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NhbGVXZWJWaWV3OmF0T3JpZ2luOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF92aWV3U2NhbGVGYWN0b3JdKToKKwogMjAxMS0wOS0wMSAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgYnVpbGQgYnkgYWRkaW5n
IHNvbWUgbW9yZSBtaXNzaW5nIHJldHVybiB0eXBlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2VjODFlYWY4MTk0Nzg4Li5h
NWEwNDljZjU3MzI5ZjcyMDMyYmYwODBhZTE5NzU5ODAxNWUyMTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBAIHN0YXRpYyBQYXNzT3du
UHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAK
IC0gKHZvaWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmlnaW46KE5TUG9pbnQpb3Jp
Z2luCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKLSAg
ICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2YXRlLT5wYWdlLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAtIChmbG9hdClfdmlld1NjYWxl
RmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsK
LSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICByZXR1cm4gY29y
ZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnBh
Z2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VGaXhlZExheW91dDooQk9PTClm
aXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCAzMDRhYzZhNzMzZGVjZTgxNzY3YzRkNzdhOTdhMjNlNWQx
NDYwYTkzLi41MmZhZTdjMDE4M2FhZTg5MjFhNDA5ZjU1MTUwZTRjMDI4MTM2MTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTAyICBGYWR5IFNhbXVlbCAgPGZzYW11
ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUgZnJv
bSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBhZ2VC
eSk6CisKIDIwMTEtMDktMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFRyYW5zZm9ybSBRdEZhbGxi
YWNrV2ViUG9wdXBDb21ibyBpbnRvIFF0V2ViQ29tYm9Cb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
aW5kZXggZjRhMTU5NjFjOTM2MzMwZjdmNzFiYzdlYzI0YTQ0NDY0OTRjN2IxMC4uZWUyYWVlMjc4
NzhhMTI3NDg4YzE5NzliNTEyM2U2OWY1MjY2NzQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAK
QEAgLTc4NSw3ICs3ODUsOCBAQCBRU3RyaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp2aWV3
cG9ydEFzVGV4dChRV2ViUGFnZSogcGFnZSwgaW50IGRldmljZURQSSwgYwogdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2NhbGVQYWdlQnkoUVdlYkZyYW1lKiBmcmFtZSwgZmxvYXQgc2Nh
bGVmYWN0b3IsIGNvbnN0IFFQb2ludCYgb3JpZ2luKQogewogICAgIFdlYkNvcmU6OkZyYW1lKiBj
b3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBjb3JlRnJhbWUt
PnNjYWxlUGFnZShzY2FsZWZhY3Rvciwgb3JpZ2luKTsKKyAgICBpZiAoUGFnZSogcGFnZSA9IGNv
cmVGcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5zY2FsZVBhZ2Uoc2NhbGVmYWN0b3IsIG9y
aWdpbik7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmFjdGl2ZU1vY2tEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudChib29sIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTg0YjIwOTkxMDUxZWJl
YmU2MDZhZDQyNDg3ZDJhNDJkOGFlOTljZi4uMTUwYjVkOTZiYjE2MmQ2ODg4OTY4ZWRmNWY3ZjNh
YzAyNmFkYjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTAyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxl
RmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0wOS0wMiAg
UmF2aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFAbW90b3JvbGEuY29t
PgogCiAgICAgICAgIFtXSzJdIEFuY2hvciBlbGVtZW50cyBkb2Vzbid0IGdldCBmb2N1cyBvbiBU
QUIga2V5IHByZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IDYxYzgwMTVhOTNmN2I2MGY2ZWRmMDAzOWNlZTY2ZDI4NDlhMjI5
YmYuLmMxYjRlNDhkMWExODQ1NTRjZTkzMWJjNjEzY2Q3ZjhjNzNiNjdiNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTU5MCw3
ICs1OTAsOSBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAg
ICAgICAgICAgIGZvY3VzUGx1Z2luRWxlbWVudCgpOwogICAgICAgICAKICAgICAgICAgLy8gQWRq
dXN0IG1vdXNlIGNvb3JkaW5hdGVzIHRvIGFjY291bnQgZm9yIHBhZ2VTY2FsZUZhY3RvcgotICAg
ICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50V2l0aFNjYWxlZENvb3JkaW5hdGVzKCpzdGF0aWNfY2Fz
dDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oY3VycmVudEV2ZW50KSwgZnJhbWUoKS0+cGFnZVNjYWxl
RmFjdG9yKCkpOworICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpOworICAgICAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
OiAxOworICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50V2l0aFNjYWxlZENvb3JkaW5hdGVzKCpz
dGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oY3VycmVudEV2ZW50KSwgcGFnZVNjYWxl
RmFjdG9yKTsKICAgICAgICAgZGlkSGFuZGxlRXZlbnQgPSBtX3BsdWdpbi0+aGFuZGxlTW91c2VF
dmVudChldmVudFdpdGhTY2FsZWRDb29yZGluYXRlcyk7CiAgICAgfSBlbHNlIGlmIChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQgJiYgY3VycmVudEV2ZW50LT50
eXBlKCkgPT0gV2ViRXZlbnQ6OldoZWVsKSB7CiAgICAgICAgIC8vIFdlIGhhdmUgYSB3aGVlbCBl
dmVudC4KQEAgLTY1Nyw3ICs2NTksOSBAQCB2b2lkIFBsdWdpblZpZXc6OnZpZXdHZW9tZXRyeURp
ZENoYW5nZSgpCiAgICAgSW50UmVjdCBmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzID0gcGFy
ZW50KCktPmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpOwogICAgIAogICAgIC8vIEFkanVz
dCBib3VuZHMgdG8gYWNjb3VudCBmb3IgcGFnZVNjYWxlRmFjdG9yCi0gICAgZnJhbWVSZWN0SW5X
aW5kb3dDb29yZGluYXRlcy5zY2FsZSgxIC8gZnJhbWUoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5wYWdlKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICBmcmFtZVJlY3RJ
bldpbmRvd0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBwYWdlU2NhbGVGYWN0b3IpOwogICAgIG1fcGx1
Z2luLT5nZW9tZXRyeURpZENoYW5nZShmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLCBjbGlw
UmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSk7CiB9CiAKQEAgLTY4Myw3ICs2ODcsOSBAQCBJbnRS
ZWN0IFBsdWdpblZpZXc6OmNsaXBSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpIGNvbnN0CiAgICAg
Ly8gSW50ZXJzZWN0IHRoZSB0d28gcmVjdHMgdG8gZ2V0IHRoZSB2aWV3IGNsaXAgcmVjdCBpbiB3
aW5kb3cgY29vcmRpbmF0ZXMuCiAgICAgZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRlcy5pbnRl
cnNlY3Qod2luZG93Q2xpcFJlY3QpOwogCi0gICAgZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRl
cy5zY2FsZSgxIC8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBQYWdlKiBwYWdlID0g
ZnJhbWUtPnBhZ2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+
cGFnZVNjYWxlRmFjdG9yKCkgOiAxOworICAgIGZyYW1lUmVjdEluV2luZG93Q29vcmRpbmF0ZXMu
c2NhbGUoMSAvIHBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIGZyYW1lUmVjdEluV2luZG93
Q29vcmRpbmF0ZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
MDI0OWU5NjVjY2Y3ZmZjZWY4NGRjYTQwNDJiNzg0OTc2ZDM0NTA4MS4uOTI0ODJkMTQ0YTc3ZDJl
ZDIwMjg1Y2U3NTI4N2MyZjllZWQwZGFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTQ0Myw3ICs0NDMsOCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENvbW1pdExvYWQoKQogCiAgICAgLy8gT25seSByZXN0b3JlIHRoZSBzY2FsZSBmYWN0
b3IgZm9yIHN0YW5kYXJkIGZyYW1lIGxvYWRzIChvZiB0aGUgbWFpbiBmcmFtZSkuCiAgICAgaWYg
KG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LT5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVTdGFuZGFyZCkgewotICAgICAgICBpZiAobV9m
cmFtZS0+Y29yZUZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpICE9IDEpCisgICAgICAgIFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+cGFnZSgpOworICAgICAgICBpZiAocGFnZSAm
JiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQogICAgICAgICAgICAgd2ViUGFnZS0+c2Nh
bGVQYWdlKDEsIEludFBvaW50KCkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiYzIwZmJlY2RlMmM2NjUyOGI1ZTkxMjM4
N2YyZGE0ZTI3YjBhYTcwLi44NTJlZmE3NDQyYmI5NWE2OTllOTRlNDQ2MGYxY2E2ZDM4MWQ5MmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC03NzYsMjAgKzc3NiwxNCBAQCB2b2lkIFdlYlBhZ2U6OnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3Rv
cnMoZG91YmxlIHBhZ2Vab29tRmFjdG9yLCBkb3VibGUgdGV4dFpvb21GYQogCiB2b2lkIFdlYlBh
Z2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIGlmICghZnJh
bWUpCi0gICAgICAgIHJldHVybjsKLSAgICBmcmFtZS0+c2NhbGVQYWdlKHNjYWxlLCBvcmlnaW4p
OworICAgIG1fcGFnZS0+c2NhbGVQYWdlKHNjYWxlLCBvcmlnaW4pOwogCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQYWdlU2NhbGVGYWN0b3JEaWRDaGFuZ2Uoc2NhbGUpKTsKIH0K
IAogZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7Ci0gICAgRnJhbWUq
IGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAg
ICAgIHJldHVybiAxOwotICAgIHJldHVybiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAg
cmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0
RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106596</attachid>
            <date>2011-09-07 10:33:35 -0700</date>
            <delta_ts>2011-09-08 13:25:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110907133334.patch</filename>
            <type>text/plain</type>
            <size>31508</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ2NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNjBkNDI2ODUxZmU5ZThi
ZDliNTI0NjI0NDI4ZGE5NmJhNjViZjJhLi5iZmFiYmQzNTg3ZGFjNTRmZjM0MGY1ODBkZTgwODAy
OTg3Nzk3MmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDktMDcgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgor
ICAgICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
b3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQpOgorICAgICAgICAqIGRvbS9SYW5n
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJz
b2x1dGVab29tQW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RGb3Jab29tKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxCb2R5RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Qm9keUVsZW1lbnQ6OnNldFNjcm9sbFRvcCk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Ny
b2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9y
eUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAg
ICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsWEZvckZpeGVkUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxZRm9yRml4ZWRQb3NpdGlvbik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDIgIEFu
ZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbRXh0ZW5zaW9ucyBBUEldIGV4cG9zZSBjb25zb2xlIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCBjOTY1YjBlZjUyYTI0Y2I2ZjU3YWY0YWRlNGNmZTBjNDFjMzNhNjNlLi41NWJkMzE0
MDg4MGJhMGExNjlhMGM4OWVjM2ZiMjAxOGVjNzc1YzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtNzE0LDYgKzcxNCw3IEBAIF9fWk43V2ViQ29yZTRQYWdlMjB1bm1hcmtBbGxUZXh0TWF0Y2hl
c0V2CiBfX1pON1dlYkNvcmU0UGFnZTIxbWFya0FsbE1hdGNoZXNGb3JUZXh0RVJLTjNXVEY2U3Ry
aW5nRWpiagogX19aTjdXZWJDb3JlNFBhZ2UyMmFsbFZpc2l0ZWRTdGF0ZUNoYW5nZWRFUE5TXzlQ
YWdlR3JvdXBFCiBfX1pON1dlYkNvcmU0UGFnZTIzY2xlYXJVbmRvUmVkb09wZXJhdGlvbnNFdgor
X19aTjdXZWJDb3JlNFBhZ2U5c2NhbGVQYWdlRWZSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29y
ZTRQYWdlMjdzZXRKYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWRFYgogX19aTjdXZWJDb3JlNFBhZ2Uz
MXNldEN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemVFaQogX19aTjdXZWJDb3JlNFBhZ2UzMXNl
dEN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXlFZApAQCAtNzQ4LDcgKzc0OSw2IEBAIF9fWk43
V2ViQ29yZTVGcmFtZTI4c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudEVQN05TQXJyYXlQTlNf
N0VsZW1lbnRFUG1QYgogX19aTjdXZWJDb3JlNUZyYW1lNmNyZWF0ZUVQTlNfNFBhZ2VFUE5TXzIx
SFRNTEZyYW1lT3duZXJFbGVtZW50RVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19aTjdXZWJD
b3JlNUZyYW1lN3NldFZpZXdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZyYW1lVmlld0VFRQogX19a
TjdXZWJDb3JlNUZyYW1lOW5vZGVJbWFnZUVQTlNfNE5vZGVFCi1fX1pON1dlYkNvcmU1RnJhbWU5
c2NhbGVQYWdlRWZSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTVGcmFtZUQxRXYKIF9fWk43
V2ViQ29yZTVJbWFnZTludWxsSW1hZ2VFdgogX19aTjdXZWJDb3JlNUltYWdlMTJzdXBwb3J0c1R5
cGVFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
aW5kZXggMjVjNTI3Yjg4MDA5NTU3MmExNzMwYTE1MjIwYjkwYzJhZmJmNzc1ZC4uNDA3MWE4Y2Zi
MmU1YThiYWU2ZGZjODc4MTcwYzZmMDg1ZGMxMmVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtMTA1OCw3ICsxMDU4LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CiAgICAgZG9jdW1lbnRT
dHlsZS0+c2V0UlRMT3JkZXJpbmcoZG9jdW1lbnQtPnZpc3VhbGx5T3JkZXJlZCgpID8gVmlzdWFs
T3JkZXIgOiBMb2dpY2FsT3JkZXIpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUg
PyBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSA6IDEpOwotICAgIGRvY3VtZW50U3R5bGUtPnNldFBh
Z2VTY2FsZVRyYW5zZm9ybShmcmFtZSA/IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOwor
ICAgIGRvY3VtZW50U3R5bGUtPnNldFBhZ2VTY2FsZVRyYW5zZm9ybShkb2N1bWVudC0+cGFnZSgp
ID8gZG9jdW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVu
dFN0eWxlLT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJ
VEUgOiBSRUFEX09OTFkpOwogCiAgICAgRWxlbWVudCogZG9jRWxlbWVudCA9IGRvY3VtZW50LT5k
b2N1bWVudEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyZjJiNjIzYjdjMjEx
YjJmYzRlZmZhYTU3N2RiYjVlNTEyYjllZWVjLi44MWEzZjlhODhlNjg5ZTM3MmQzNDkxZWEzY2Rl
NDE5MzBiNDMxZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01MTQsMTAgKzUxNCw4IEBA
IFBhc3NSZWZQdHI8Q2xpZW50UmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKICAg
ICByZW5kZXJCb3hNb2RlbE9iamVjdC0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CiAKICAgICBmbG9h
dCBwYWdlU2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgp
KSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAg
ICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9CisgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIAorICAgICAgICBwYWdlU2NhbGUg
PSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBk
b2N1bWVudCgpLT52aWV3KCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCB2aXNpYmxlQ29udGVudFJl
Y3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKQEAgLTU2NSwxMCArNTYzLDggQEAgUGFz
c1JlZlB0cjxDbGllbnRSZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQogICAg
IH0KIAogICAgIGFkanVzdEZsb2F0UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRlcmVy
KCkpOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0gICAgICAg
IGlmIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIGFkanVz
dEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7
Ci0gICAgfQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAg
ICBhZGp1c3RGbG9hdFJlY3RGb3JQYWdlU2NhbGUocmVzdWx0LCBwYWdlLT5wYWdlU2NhbGVGYWN0
b3IoKSk7CiAKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHJlc3VsdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAppbmRleCAyZDgxOTM1NmU3NDVhNmJj
ODY3OGNkODQxNWZmNzEwYTJiMzY4ODc2Li5jMmQ2ZDI2Mjc4NDRiMGFjNzJjNjQ2MTUxMzgwZDJk
NWUzZTZiMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKQEAgLTY3LDcgKzY4LDgg
QEAgTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmIKICAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVW
aWV3ID0gZnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb24gPSBmcmFt
ZVZpZXctPnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgICAgICAgICBhZGp1c3RlZFBhZ2VMb2NhdGlv
biA9IGZyYW1lVmlldy0+d2luZG93VG9Db250ZW50cyh3aW5kb3dMb2NhdGlvbik7Ci0gICAgICAg
ICAgICBmbG9hdCBwYWdlWm9vbSA9IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPnBh
Z2VTY2FsZUZhY3RvcigpOworICAgICAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gZnJh
bWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICAg
ICAgICAgIGZsb2F0IHBhZ2Vab29tID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2Nh
bGVGYWN0b3I7CiAgICAgICAgICAgICBpZiAocGFnZVpvb20gIT0gMS4wZikgewogICAgICAgICAg
ICAgICAgIC8vIEFkanVzdCBvdXIgcGFnZVggYW5kIHBhZ2VZIHRvIGFjY291bnQgZm9yIHRoZSBw
YWdlIHpvb20uCiAgICAgICAgICAgICAgICAgYWRqdXN0ZWRQYWdlTG9jYXRpb24uc2NhbGUoMSAv
IHBhZ2Vab29tLCAxIC8gcGFnZVpvb20pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggM2VjNTYwZmQ1
M2EwMWE1ZDIxZmExNTI4NDgwMzAwODFhMDg4ZmIxMC4uOTFhMjFkODExNDhiMTc2MDI5MzFmMGEz
NWE1ZGE1Yzk0MzkwZTI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC0yMDI4LDEwICsyMDI4LDgg
QEAgc3RhdGljIHZvaWQgYWRqdXN0RmxvYXRRdWFkc0ZvclNjcm9sbEFuZEFic29sdXRlWm9vbUFu
ZFBhZ2VTY2FsZShWZWN0b3I8RmxvYXRRdWEKICAgICAgICAgcmV0dXJuOwogCiAgICAgZmxvYXQg
cGFnZVNjYWxlID0gMTsKLSAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpIHsK
LSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAg
ICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIH0KKyAgICBpZiAo
UGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHBhZ2VTY2FsZSA9IHBhZ2Ut
PnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgTGF5b3V0UmVjdCB2aXNpYmxlQ29udGVudFJlY3Qg
PSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHF1YWRzLnNpemUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5j
cHAKaW5kZXggMDM4YzU2YTYyODNmM2UyMjZhYzA1NDg5NjEwYzNjMTUxMzQ3Yzg2OC4uNDBkYWJi
OWI0MDUxZWEyMzQyYTU2NTE2NmMxMzQxMjZmMzE3MGFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmNwcApAQCAtMjY3LDcgKzI2Nyw5IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpzZXRWTGluayhjb25zdCBTdHJpbmcmIHZhbHVlKQogc3RhdGljIGludCBhZGp1c3RGb3Ja
b29tKGludCB2YWx1ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50LT5mcmFtZSgpOwotICAgIGZsb2F0IHpvb21GYWN0b3IgPSBmcmFtZS0+cGFnZVpv
b21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBQYWdlKiBwYWdlID0g
ZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFn
ZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOworICAgIGZsb2F0IHpvb21GYWN0b3IgPSBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIHBhZ2VTY2FsZUZhY3RvcjsKICAgICBpZiAoem9vbUZhY3RvciA9
PSAxKQogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgLy8gTmVlZGVkIGJlY2F1c2Ugb2YgdHJ1
bmNhdGlvbiAocmF0aGVyIHRoYW4gcm91bmRpbmcpIHdoZW4gc2NhbGluZyB1cC4KQEAgLTI4OCw2
ICsyOTAsNyBAQCBpbnQgSFRNTEJvZHlFbGVtZW50OjpzY3JvbGxMZWZ0KCkKIHZvaWQgSFRNTEJv
ZHlFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBzY3JvbGxMZWZ0KQogewogICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50
LT5wYWdlKCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC0yOTUsNyArMjk4LDggQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnNldFNjcm9s
bExlZnQoaW50IHNjcm9sbExlZnQpCiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXco
KTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKLSAgICB2aWV3LT5zZXRTY3JvbGxQ
b3NpdGlvbihJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KHNjcm9sbExlZnQgKiBmcmFtZS0+cGFn
ZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSksIHZpZXctPnNjcm9sbFko
KSkpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVG
YWN0b3IoKSA6IDE7CisgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoc3RhdGlj
X2Nhc3Q8aW50PihzY3JvbGxMZWZ0ICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBwYWdlU2Nh
bGVGYWN0b3IpLCB2aWV3LT5zY3JvbGxZKCkpKTsKIH0KIAogaW50IEhUTUxCb2R5RWxlbWVudDo6
c2Nyb2xsVG9wKCkKQEAgLTMxMCw2ICszMTQsNyBAQCBpbnQgSFRNTEJvZHlFbGVtZW50OjpzY3Jv
bGxUb3AoKQogdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnNldFNjcm9sbFRvcChpbnQgc2Nyb2xsVG9w
KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgUGFn
ZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5m
cmFtZSgpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMTcsNyArMzIyLDggQEAgdm9pZCBIVE1MQm9k
eUVsZW1lbnQ6OnNldFNjcm9sbFRvcChpbnQgc2Nyb2xsVG9wKQogICAgIEZyYW1lVmlldyogdmll
dyA9IGZyYW1lLT52aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm47Ci0gICAg
dmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQodmlldy0+c2Nyb2xsWCgpLCBzdGF0aWNf
Y2FzdDxpbnQ+KHNjcm9sbFRvcCAqIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogZnJhbWUtPnBh
Z2VTY2FsZUZhY3RvcigpKSkpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBw
YWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEuMGY7CisgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRp
b24oSW50UG9pbnQodmlldy0+c2Nyb2xsWCgpLCBzdGF0aWNfY2FzdDxpbnQ+KHNjcm9sbFRvcCAq
IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICogcGFnZVNjYWxlRmFjdG9yKSkpOwogfQogCiBpbnQg
SFRNTEJvZHlFbGVtZW50OjpzY3JvbGxIZWlnaHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggNWMzOWY5NmYwNDY2ZDhlZTVmNmNmYWMzOWY0MTk1
ZGI2Mzg5ZDk0Ni4uNDZlMWJlNmE0MTA4OGQ3NjkzMTk3ZTk5ZmVkNmQ5ZmJhNmVjY2E0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC04Niw3ICs4
Niw4IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdT
dGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaXRlbSkKICAgICBlbHNlCiAgICAgICAgIGl0ZW0tPnNl
dFNjcm9sbFBvaW50KG1fZnJhbWUtPnZpZXcoKS0+c2Nyb2xsUG9zaXRpb24oKSk7CiAKLSAgICBp
dGVtLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9mcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkpOworICAg
IFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFj
dG9yKHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEuMGYpOwogICAgIAogICAgIC8v
IEZJWE1FOiBJdCB3b3VsZCBiZSBncmVhdCB0byB3b3JrIG91dCBhIHdheSB0byBwdXQgdGhpcyBj
b2RlIGluIFdlYkNvcmUgaW5zdGVhZCBvZiBjYWxsaW5nIHRocm91Z2ggdG8gdGhlIGNsaWVudC4K
ICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNhdmVWaWV3U3RhdGVUb0l0ZW0oaXRl
bSk7CkBAIC0xMjUsNyArMTI2LDggQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNj
cm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9m
cmFtZS0+dmlldygpKSB7CiAgICAgICAgIGlmICghdmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkg
ewogICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obV9jdXJyZW50SXRlbS0+c2Ny
b2xsUG9pbnQoKSk7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5zY2FsZVBhZ2UobV9jdXJyZW50SXRl
bS0+cGFnZVNjYWxlRmFjdG9yKCksIG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOworICAg
ICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAg
ICAgcGFnZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBtX2N1
cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKaW5kZXggYmRkYWU2MTEzMWZkNWRjMjk1YzA5NzEzZDJmMTQzNzNkNWFjMWM2Yy4u
OWY4Y2ZmODMwZjY2Nzg0MjFmYzZkYmY4MWM4NWJhOTBiMjc2MzQ0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKQEAgLTE2MCw3ICsxNjAsNiBAQCBpbmxpbmUgRnJhbWU6OkZyYW1lKFBhZ2UqIHBhZ2Us
IEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlcgogICAgICwg
bV9hbmltYXRpb25Db250cm9sbGVyKHRoaXMpCiAgICAgLCBtX3BhZ2Vab29tRmFjdG9yKHBhcmVu
dFBhZ2Vab29tRmFjdG9yKHRoaXMpKQogICAgICwgbV90ZXh0Wm9vbUZhY3RvcihwYXJlbnRUZXh0
Wm9vbUZhY3Rvcih0aGlzKSkKLSAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAjaWYgRU5BQkxF
KE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICAsIG1fb3JpZW50YXRpb24oMCkKICNlbmRpZgpAQCAt
MTAzNywzMyArMTAzNiw2IEBAIHZvaWQgRnJhbWU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hh
bmdlZCgpCiAgICAgICAgIHJvb3QtPmNvbXBvc2l0b3IoKS0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCk7CiB9CiAjZW5kaWYKLQotdm9pZCBGcmFtZTo6c2NhbGVQYWdlKGZsb2F0IHNj
YWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKQotewotICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKHNjYWxlICE9IG1fcGFnZVNjYWxlRmFjdG9yKSB7Ci0gICAgICAgIG1fcGFn
ZVNjYWxlRmFjdG9yID0gc2NhbGU7Ci0KLSAgICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigp
KQotICAgICAgICAgICAgZG9jdW1lbnQtPnJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUp
OwotCi0gICAgICAgIGRvY3VtZW50LT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7Ci0KLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwotI2VuZGlmCi0gICAgfQotCi0gICAgaWYgKEZyYW1lVmlldyogdmlldyA9
IHRoaXMtPnZpZXcoKSkgewotICAgICAgICBpZiAoZG9jdW1lbnQtPnJlbmRlcmVyKCkgJiYgZG9j
dW1lbnQtPnJlbmRlcmVyKCktPm5lZWRzTGF5b3V0KCkgJiYgdmlldy0+ZGlkRmlyc3RMYXlvdXQo
KSkKLSAgICAgICAgICAgIHZpZXctPmxheW91dCgpOwotICAgICAgICB2aWV3LT5zZXRTY3JvbGxQ
b3NpdGlvbihvcmlnaW4pOwotICAgIH0KLX0KLQogdm9pZCBGcmFtZTo6bm90aWZ5Q2hyb21lQ2xp
ZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoKSBjb25zdAogewogICAgIC8vIEVuc3Vy
ZSB0aGF0IHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiB0
aGUgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAzNWZlOGEyN2QxZjhhMThkYmM2MzA3ZTM5NWRl
MDRlMzJkYjNiYTBkLi4wMTQ3ZmIxNzBkMzEyZDY5NDZjMGI5NThlNmE2NjFlNTAwZTVjYzVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCkBAIC0xNjEsOSArMTYxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBmbG9hdCB0ZXh0Wm9vbUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFpvb21G
YWN0b3I7IH0KICAgICAgICAgdm9pZCBzZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKGZsb2F0IHBh
Z2Vab29tRmFjdG9yLCBmbG9hdCB0ZXh0Wm9vbUZhY3Rvcik7CiAKLSAgICAgICAgLy8gRklYTUU6
IFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbW92ZSB0byBQYWdlLgotICAgICAgICB2b2lkIHNjYWxl
UGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbik7Ci0gICAgICAgIGZs
b2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlRmFjdG9yOyB9
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICB2b2lkIGRldmljZU9y
UGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogI2VuZGlmCkBAIC0yNDEsOCArMjM4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBmbG9hdCBtX3BhZ2Vab29tRmFjdG9yOwogICAgICAg
ICBmbG9hdCBtX3RleHRab29tRmFjdG9yOwogCi0gICAgICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFj
dG9yOwotCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICAgICAgaW50IG1fb3Jp
ZW50YXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA0ZGI5ZmE5
YmZkNjAyMDgyYjU1N2I4MmU5MTU5MmQ2M2QxNTA3OTQ5Li45YjZmNjE4MTU2YjJhNGUyNWQ1MjFj
ZDlmYjM3NTY0YjI1NjhjZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01Mjcs
NyArNTI3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdwb3J0KFJlbmRl
ck9iamVjdCogbywgU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFMKICAgICAvLyBUbyBjb21iYXQgdGhl
IGluYWJpbGl0eSB0byBzY3JvbGwgb24gYSBwYWdlIHdpdGggb3ZlcmZsb3c6aGlkZGVuIG9uIHRo
ZSByb290IHdoZW4gc2NhbGVkLCBkaXNyZWdhcmQgaGlkZGVuIHdoZW4KICAgICAvLyB0aGVyZSBp
cyBhIHBhZ2VTY2FsZUZhY3RvciB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBvbmUgb24gdGhlIG1haW4g
ZnJhbWUuCiAKLSAgICBib29sIG92ZXJyaWRlSGlkZGVuID0gbV9mcmFtZS0+cGFnZSgpICYmIG1f
ZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgPT0gbV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlU2Nh
bGVGYWN0b3IoKSA+IDE7CisgICAgYm9vbCBvdmVycmlkZUhpZGRlbiA9IG1fZnJhbWUtPnBhZ2Uo
KSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IG1fZnJhbWUgJiYgbV9mcmFtZS0+
cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA+IDE7CiAKICAgICBzd2l0Y2ggKG8tPnN0eWxlKCkt
Pm92ZXJmbG93WCgpKSB7CiAgICAgICAgIGNhc2UgT0hJRERFTjoKQEAgLTEzMzksNyArMTMzOSw4
IEBAIExheW91dFVuaXQgRnJhbWVWaWV3OjpzY3JvbGxYRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0
CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4geDsKIAotICAgIGZsb2F0IHBhZ2VT
Y2FsZUZhY3RvciA9IG1fZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIFBhZ2UqIHBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBh
Z2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKIAogICAgIC8vIFdoZW4gdGhlIHBhZ2UgaXMgc2Nh
bGVkLCB0aGUgc2NhbGVkICJ2aWV3cG9ydCIgd2l0aCByZXNwZWN0IHRvIHdoaWNoIGZpeGVkIG9i
amVjdCBhcmUgcG9zaXRpb25lZAogICAgIC8vIGRvZXNuJ3QgbW92ZSBhcyBmYXN0IGFzIHRoZSBj
b250ZW50IHZpZXcsIHNvIHRoYXQgd2hlbiB0aGUgY29udGVudCBpcyBzY3JvbGxlZCBhbGwgdGhl
IHdheSB0byB0aGUKQEAgLTEzNzQsNyArMTM3NSw4IEBAIExheW91dFVuaXQgRnJhbWVWaWV3Ojpz
Y3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpIGNvbnN0CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAg
ICByZXR1cm4geTsKIAotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IG1fZnJhbWUtPnBhZ2VT
Y2FsZUZhY3RvcigpOworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsK
ICAgICBmbG9hdCBkcmFnRmFjdG9yID0gKGNvbnRlbnRzSGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVu
dEhlaWdodCAqIHBhZ2VTY2FsZUZhY3RvcikgLyBtYXhZOwogCiAgICAgcmV0dXJuIHkgKiBkcmFn
RmFjdG9yIC8gcGFnZVNjYWxlRmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYjE4ZmQzOTJl
OWQxMGRmZDU2MDNkYmQ2NWY1YWUxMzI5YmMxOWM3ZC4uOTc3OGYxMzc0OTM2N2U0MTcxODJmM2Ri
Mzg4ZjgyMzY0N2QxMWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNDcsNiArMTQ3LDcgQEAg
UGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX2Nvb2tpZUVuYWJs
ZWQodHJ1ZSkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQodHJ1ZSkK
ICAgICAsIG1fbWVkaWFWb2x1bWUoMSkKKyAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAgICAg
LCBtX2RldmljZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2phdmFTY3JpcHRVUkxzQXJlQWxsb3dl
ZCh0cnVlKQogICAgICwgbV9kaWRMb2FkVXNlclN0eWxlU2hlZXQoZmFsc2UpCkBAIC02MDgsNiAr
NjA5LDMxIEBAIHZvaWQgUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIH0K
IH0KIAordm9pZCBQYWdlOjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50
JiBvcmlnaW4pCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbWFpbkZyYW1lKCktPmRvY3Vt
ZW50KCk7CisKKyAgICBpZiAoc2NhbGUgIT0gbV9wYWdlU2NhbGVGYWN0b3IpIHsKKyAgICAgICAg
bV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZTsKKworICAgICAgICBpZiAoZG9jdW1lbnQtPnJlbmRl
cmVyKCkpCisgICAgICAgICAgICBkb2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQo
dHJ1ZSk7CisKKyAgICAgICAgZG9jdW1lbnQtPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsKKwor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAgICAgbWFpbkZyYW1lKCktPmRl
dmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOworI2VuZGlmCisgICAgfQorCisgICAgaWYg
KEZyYW1lVmlldyogdmlldyA9IGRvY3VtZW50LT52aWV3KCkpIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVkc0xheW91dCgpICYm
IHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCisgICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsKKyAg
ICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKKyAgICB9Cit9CisKKwogdm9p
ZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBp
ZiAobV9kZXZpY2VTY2FsZUZhY3RvciA9PSBzY2FsZUZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXgg
ZWZkMTMwMzMzMzZlOWQxZTM3YjdiMGU0ZDJiNDJmMTY3ODdlZmNhOS4uYWM5N2IyODljZGM0ZWE1
ZjczNDMwZTkzODc2ODZmNDljYTkyNGRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9u
cy5oIgorI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlT
dGF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRB
cmd1bWVudHMuaCIKQEAgLTI0Myw2ICsyNDQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGZsb2F0IG1lZGlhVm9sdW1lKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVZvbHVtZTsgfQog
ICAgICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSk7CiAKKyAgICAgICAgdm9p
ZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pOworICAg
ICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZUZh
Y3RvcjsgfQorCiAgICAgICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1
cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQogICAgICAgICB2b2lkIHNldERldmljZVNjYWxlRmFj
dG9yKGZsb2F0KTsKIApAQCAtMzY5LDYgKzM3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkOwogICAgICAgICBm
bG9hdCBtX21lZGlhVm9sdW1lOwogCisgICAgICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yOwog
ICAgICAgICBmbG9hdCBtX2RldmljZVNjYWxlRmFjdG9yOwogCiAgICAgICAgIGJvb2wgbV9qYXZh
U2NyaXB0VVJMc0FyZUFsbG93ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGFjODQxNTYzZmUxZTViZmM0MGUwOGUyZjQz
NjZjZDg0ZDdiZTlkZTkuLmVmY2Q5ZTA1MjZkZGE0MWM0YzQwZmQ0Y2IxMDVmMzQxOGVlMmJmMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0xMjUxLDcgKzEyNTEsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
c2hvdWxkUHJvcGFnYXRlQ29tcG9zaXRpbmdUb0VuY2xvc2luZ0ZyYW1lKCkgY29uc3QKICAgICAv
LyBkb2N1bWVudCwgb3IgdGhlIHBhcmVudCBpcyBhbHJlYWR5IGNvbXBvc2l0aW5nLCBvciB0aGUg
bWFpbiBmcmFtZSBpcyBzY2FsZWQuCiAgICAgRnJhbWUqIGZyYW1lID0gbV9yZW5kZXJWaWV3LT5m
cmFtZVZpZXcoKS0+ZnJhbWUoKTsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFn
ZSgpIDogMDsKLSAgICBpZiAocGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpICE9
IDEpCisgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgUmVuZGVyUGFydCogZnJhbWVSZW5kZXJlciA9IHRv
UmVuZGVyUGFydChyZW5kZXJlcik7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBmbG9hdCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgUGFnZSogcGFnZSA9
IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMTsKLSAgICBy
ZXR1cm4gcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBw
YWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxYWYyYzk1ZDNlM2NlNDdj
ZWUwMTkyNDIzZDEyMTNlZTQ2NmM4MTYzLi42MDVmYmQ2ZGRjMjM5ZjhhZTM0MmExOTVjNjliNjgy
ZmFlMDg0YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRN
TEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTZWxlY3Rpb25JbmZvLmgiCkBAIC0yMjYsMTAg
KzIyNyw5IEBAIHZvaWQgUmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgICAgICBSZW5kZXJCb3gqIHJvb3RC
b3ggPSByb290UmVuZGVyZXItPmlzQm94KCkgPyB0b1JlbmRlckJveChyb290UmVuZGVyZXIpIDog
MDsKICAgICAgICAgcm9vdEZpbGxzVmlld3BvcnQgPSByb290Qm94ICYmICFyb290Qm94LT54KCkg
JiYgIXJvb3RCb3gtPnkoKSAmJiByb290Qm94LT53aWR0aCgpID49IHdpZHRoKCkgJiYgcm9vdEJv
eC0+aGVpZ2h0KCkgPj0gaGVpZ2h0KCk7CiAgICAgfQotCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gMTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZVZpZXctPmZyYW1lKCkpCi0g
ICAgICAgIHBhZ2VTY2FsZUZhY3RvciA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICAK
KyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VTY2Fs
ZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAKICAgICAvLyBJ
ZiBwYWludGluZyB3aWxsIGVudGlyZWx5IGZpbGwgdGhlIHZpZXcsIG5vIG5lZWQgdG8gZmlsbCB0
aGUgYmFja2dyb3VuZC4KICAgICBpZiAocm9vdEZpbGxzVmlld3BvcnQgJiYgcmVuZGVyZXJPYnNj
dXJlc0JhY2tncm91bmQoZmlyc3RDaGlsZCgpKSAmJiBwYWdlU2NhbGVGYWN0b3IgPj0gMSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggN2Y5NTk4MWVmN2NjOWQ0OTE3NzViZjQxYWE5ZWY3
OTZlMzQwYmExOS4uYjFiNGJmZmIxMzhlMDc4YTE0NmFmN2JmZWEwZTJhMDkyMGEyNGNlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0wNyAgRmFk
eSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2Fs
ZUZhY3RvciBjb2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFjdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNjYWxlUGFnZSk6CisKIDIwMTEtMDktMDcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NDYzNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCA2YzI5MmMxZDU4MDg1ODllY2RlMDVhYzJjY2FkNzRlYTVhMjU1
MmIxLi4wOWQ3N2FmYmRjMTExZWI2OTFiMDgxOTk4YTI1MGRlNzgxYmI3ZDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xODc3LDExICsxODc3LDcg
QEAgZmxvYXQgV2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgaWYgKCFw
YWdlKCkpCiAgICAgICAgIHJldHVybiAxLjA7CiAKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCkt
Pm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAxLjA7Ci0KLSAg
ICByZXR1cm4gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBwYWdlKCktPnBh
Z2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzY2FsZVBhZ2UoZmxvYXQg
c2NhbGVGYWN0b3IsIFdlYlBvaW50IG9yaWdpbikKQEAgLTE4ODksMTEgKzE4ODUsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGVGYWN0b3IsIFdlYlBvaW50IG9yaWdp
bikKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWUqIGZyYW1l
ID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBmcmFtZS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBvcmlnaW4pOworICAgIHBhZ2Uo
KS0+c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBvcmlnaW4pOwogfQogCiBib29sIFdlYlZpZXdJbXBs
Ojppc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDlk
NzIzYjlkZmMzZjExOTI5YTg1YTg1NzM4OGIyMjZlYzA0NjIyOTIuLmZiNDg1Mjk5ZTZjYzQ3MmVk
ZTZmZmIxNDhkOTJkYWEwZTdlMjc5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMS0wOS0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdl
LntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeSk6CisKIDIwMTEtMDktMDYgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1lIGNvbmZpcm1D
b21wb3NpdGlvbldpdGhvdXREaXN0dXJiaW5nU2VsZWN0aW9uIHRvIGNhbmNlbENvbXBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA1ZDVhMDc4MjI1ZWIwMWJlOTljN2RjYTli
NTJkMjAyN2NjYjJmMGY5Li5hYjg2ZmFkODJhYmRkNzZkYTIzMDQyNGRmYTVhYTFmMWM5Zjc5ODY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgwMyw5ICs4MDMsNSBAQCBib29sIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2hvdWxkQ2xvc2UoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2NhbGVQYWdlQnkoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0g
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpOwotICAgIGlm
ICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb3JlRnJhbWUtPnNjYWxlUGFn
ZShzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOworICAgIGNvcmUod2ViVmlldyktPnNjYWxl
UGFnZShzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDRhZGZiNTYyYTU1YzVlOGRmNzE1OWMwZTUxYzZhOWIwOGUzNjEzOTYuLmQ0M2ZkMTRmYWQ2ZTkz
ZDA0MWM3ZWE1NGRhMGIzMDc1ZGRmNWUwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wOS0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQ
YWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3NjYWxlV2ViVmll
dzphdE9yaWdpbjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfdmlld1NjYWxlRmFjdG9yXSk6CisK
IDIwMTEtMDktMDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NDYyNyBhbmQgcjk0NjMyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDI1Mjk1NzlkYjE2NTBhM2QyZjcxNGUw
MjczZWM4MWVhZjgxOTQ3ODguLmE1YTA0OWNmNTczMjlmNzIwMzJiZjA4MGFlMTk3NTk4MDE1ZTIx
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI3MzIsMjAgKzI3MzIs
MTIgQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3RvcihO
U0FycmF5KiBwYXR0ZXJucykKIAogLSAodm9pZClfc2NhbGVXZWJWaWV3OihmbG9hdClzY2FsZSBh
dE9yaWdpbjooTlNQb2ludClvcmlnaW4KIHsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYg
X21haW5Db3JlRnJhbWVdOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjb3JlRnJhbWUtPnNjYWxlUGFnZShzY2FsZSwgSW50UG9pbnQob3JpZ2luKSk7CisgICAg
X3ByaXZhdGUtPnBhZ2UtPnNjYWxlUGFnZShzY2FsZSwgSW50UG9pbnQob3JpZ2luKSk7CiB9CiAK
IC0gKGZsb2F0KV92aWV3U2NhbGVGYWN0b3IKIHsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gW3Nl
bGYgX21haW5Db3JlRnJhbWVdOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm4g
MTsKLQotICAgIHJldHVybiBjb3JlRnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVy
biBfcHJpdmF0ZS0+cGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIC0gKHZvaWQpX3NldFVz
ZUZpeGVkTGF5b3V0OihCT09MKWZpeGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGI3ODQ1ZWE0YzE2OGE2
OGQ5N2MwZDZjZmZmYTQ2ZWY4ZTM4ZmMyZTkuLjAyNzBkOTYwNGVmYjhmZmMzMWY5OTQ1ZjFmOGQx
NDdmZWMzNDZmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDcg
IEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdl
U2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnNjYWxlUGFnZUJ5KToKKwogMjAxMS0wOS0wNiAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGRmaXggYWZ0ZXIg
cjk0NjIwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCBlYWQ1YWMyYWVhNDYyYWIwN2ZlYzQy
N2RlZDE5MmYzZGE1ZGVhNjQ3Li5mOGVmYzNjYTg0MmI3YmYxNTlmMjZjMmY2ODNkNThhZTQ0N2E1
YzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNzg1LDcgKzc4NSw4IEBAIFFTdHJpbmcg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnZpZXdwb3J0QXNUZXh0KFFXZWJQYWdlKiBwYWdlLCBp
bnQgZGV2aWNlRFBJLCBjCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBhZ2VC
eShRV2ViRnJhbWUqIGZyYW1lLCBmbG9hdCBzY2FsZWZhY3RvciwgY29uc3QgUVBvaW50JiBvcmln
aW4pCiB7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVByaXZhdGU6
OmNvcmUoZnJhbWUpOwotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNjYWxlZmFjdG9yLCBvcmln
aW4pOworICAgIGlmIChQYWdlKiBwYWdlID0gY29yZUZyYW1lLT5wYWdlKCkpCisgICAgICAgIHBh
Z2UtPnNjYWxlUGFnZShzY2FsZWZhY3Rvciwgb3JpZ2luKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6YWN0aXZlTW9ja0RldmljZU9yaWVudGF0aW9uQ2xpZW50KGJvb2wgYikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiYTJjOWY2ZGRhOTk3ZjA2YzY3NDFjNGYxYjc0NzljOWQ1N2VjMmJjLi4y
NGFhMzczZWM3OWIyM2JjNzdiYTdjMjk4YjE1MTMzZTY3YzhhYzdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTEtMDktMDcgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNw
cH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5WaWV3OjpoYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6OnZpZXdHZW9tZXRyeURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZp
ZXc6OmNsaXBSZWN0SW5XaW5kb3dDb29yZGluYXRlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c2NhbGVQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9y
KToKKwogMjAxMS0wOS0wNyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgc3VwcHJlc3Npb24gb2YgYW4gdW5uZWNl
c3NhcnkgZGVidWcgb3V0cHV0LiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA2MWM4MDE1YTkzZjdiNjBmNmVkZjAwMzljZWU2NmQy
ODQ5YTIyOWJmLi5jMWI0ZTQ4ZDFhMTg0NTU0Y2U5MzFiYzYxM2NkN2Y4YzczYjY3YjZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBA
IC01OTAsNyArNTkwLDkgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCogZXZl
bnQpCiAgICAgICAgICAgICBmb2N1c1BsdWdpbkVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAg
IC8vIEFkanVzdCBtb3VzZSBjb29yZGluYXRlcyB0byBhY2NvdW50IGZvciBwYWdlU2NhbGVGYWN0
b3IKLSAgICAgICAgV2ViTW91c2VFdmVudCBldmVudFdpdGhTY2FsZWRDb29yZGluYXRlcygqc3Rh
dGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KGN1cnJlbnRFdmVudCksIGZyYW1lKCktPnBh
Z2VTY2FsZUZhY3RvcigpKTsKKyAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCktPnBhZ2UoKTsK
KyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gcGFnZSA/IHBhZ2UtPnBhZ2VTY2FsZUZh
Y3RvcigpIDogMTsKKyAgICAgICAgV2ViTW91c2VFdmVudCBldmVudFdpdGhTY2FsZWRDb29yZGlu
YXRlcygqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KGN1cnJlbnRFdmVudCksIHBh
Z2VTY2FsZUZhY3Rvcik7CiAgICAgICAgIGRpZEhhbmRsZUV2ZW50ID0gbV9wbHVnaW4tPmhhbmRs
ZU1vdXNlRXZlbnQoZXZlbnRXaXRoU2NhbGVkQ29vcmRpbmF0ZXMpOwogICAgIH0gZWxzZSBpZiAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50ICYmIGN1cnJlbnRF
dmVudC0+dHlwZSgpID09IFdlYkV2ZW50OjpXaGVlbCkgewogICAgICAgICAvLyBXZSBoYXZlIGEg
d2hlZWwgZXZlbnQuCkBAIC02NTcsNyArNjU5LDkgQEAgdm9pZCBQbHVnaW5WaWV3Ojp2aWV3R2Vv
bWV0cnlEaWRDaGFuZ2UoKQogICAgIEludFJlY3QgZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRl
cyA9IHBhcmVudCgpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVjdCgpKTsKICAgICAKICAgICAv
LyBBZGp1c3QgYm91bmRzIHRvIGFjY291bnQgZm9yIHBhZ2VTY2FsZUZhY3RvcgotICAgIGZyYW1l
UmVjdEluV2luZG93Q29vcmRpbmF0ZXMuc2NhbGUoMSAvIGZyYW1lKCktPnBhZ2VTY2FsZUZhY3Rv
cigpKTsKKyAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VT
Y2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CisgICAgZnJh
bWVSZWN0SW5XaW5kb3dDb29yZGluYXRlcy5zY2FsZSgxIC8gcGFnZVNjYWxlRmFjdG9yKTsKICAg
ICBtX3BsdWdpbi0+Z2VvbWV0cnlEaWRDaGFuZ2UoZnJhbWVSZWN0SW5XaW5kb3dDb29yZGluYXRl
cywgY2xpcFJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKCkpOwogfQogCkBAIC02ODMsNyArNjg3LDkg
QEAgSW50UmVjdCBQbHVnaW5WaWV3OjpjbGlwUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25z
dAogICAgIC8vIEludGVyc2VjdCB0aGUgdHdvIHJlY3RzIHRvIGdldCB0aGUgdmlldyBjbGlwIHJl
Y3QgaW4gd2luZG93IGNvb3JkaW5hdGVzLgogICAgIGZyYW1lUmVjdEluV2luZG93Q29vcmRpbmF0
ZXMuaW50ZXJzZWN0KHdpbmRvd0NsaXBSZWN0KTsKIAotICAgIGZyYW1lUmVjdEluV2luZG93Q29v
cmRpbmF0ZXMuc2NhbGUoMSAvIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgUGFnZSog
cGFnZSA9IGZyYW1lLT5wYWdlKCk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gcGFnZSA/
IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpIDogMTsKKyAgICBmcmFtZVJlY3RJbldpbmRvd0Nvb3Jk
aW5hdGVzLnNjYWxlKDEgLyBwYWdlU2NhbGVGYWN0b3IpOwogICAgIHJldHVybiBmcmFtZVJlY3RJ
bldpbmRvd0Nvb3JkaW5hdGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDAyNDllOTY1Y2NmN2ZmY2VmODRkY2E0MDQyYjc4NDk3NmQzNDUwODEuLjkyNDgyZDE0
NGE3N2QyZWQyMDI4NWNlNzUyODdjMmY5ZWVkMGRhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC00NDMsNyArNDQzLDggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIAogICAgIC8vIE9ubHkgcmVzdG9yZSB0aGUgc2Nh
bGUgZmFjdG9yIGZvciBzdGFuZGFyZCBmcmFtZSBsb2FkcyAob2YgdGhlIG1haW4gZnJhbWUpLgog
ICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgpICYmIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5s
b2FkZXIoKS0+bG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlU3RhbmRhcmQpIHsKLSAgICAgICAg
aWYgKG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgICAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPnBhZ2UoKTsKKyAgICAgICAgaWYg
KHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKICAgICAgICAgICAgIHdlYlBh
Z2UtPnNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjM0NmQxM2IyNDI2ZDE1ZjU3
Mzg1NzBkMjU1MTliNTQ0Zjc0NzRkZi4uMmYwODdkNzk4NzI2ZWZjZjk4MzI0ZGI3YmExYTBjNmI3
NTU2N2I0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNzc3LDIwICs3NzcsMTQgQEAgdm9pZCBXZWJQYWdlOjpzZXRQYWdlQW5kVGV4dFpv
b21GYWN0b3JzKGRvdWJsZSBwYWdlWm9vbUZhY3RvciwgZG91YmxlIHRleHRab29tRmEKIAogdm9p
ZCBXZWJQYWdlOjpzY2FsZVBhZ2UoZG91YmxlIHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2lu
KQogewotICAgIEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBp
ZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0gICAgZnJhbWUtPnNjYWxlUGFnZShzY2FsZSwg
b3JpZ2luKTsKKyAgICBtX3BhZ2UtPnNjYWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKIAogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKHNjYWxl
KSk7CiB9CiAKIGRvdWJsZSBXZWJQYWdlOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewotICAg
IEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm4gMTsKLSAgICByZXR1cm4gZnJhbWUtPnBhZ2VTY2FsZUZhY3Rvcigp
OworICAgIHJldHVybiBtX3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFdlYlBh
Z2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106778</attachid>
            <date>2011-09-08 13:25:34 -0700</date>
            <delta_ts>2011-09-08 13:51:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110908162533.patch</filename>
            <type>text/plain</type>
            <size>26459</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ3NjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjBmNWYwM2VjMzgyNTYz
ZDExYzJjNjVkYjVlMzA4YjI4M2UzNzNhLi40YTUwZjA1M2Q1YWVmMGFkNDVkMzVkMDgwMDljMDZh
YzMwODBlNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMDktMDggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgor
ICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1
YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBsb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRy
b2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0
YXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
OjpGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cGFnZVNjYWxlRmFjdG9yKToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UGFnZVNj
YWxlRmFjdG9yKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNo
b3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6
cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisKIDIwMTEtMDktMDcgIFBhdmVsIFBvZGl2aWxvdiAgPHBv
ZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBv
ZiBSYXdTb3VyY2VDb2RlLmNyZWF0ZVNvdXJjZU1hcHBpbmdJZk5lZWRlZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggNjE5NDRlMGEyMzIwNWY2YWQzMWQyMWI3NjBmYTQ1MTIzM2YzZWFhYS4uODkz
MzM1M2NkNTY2NjJlNDlhM2IxMDZmOTRmYjVmMWM5ODJjNjFhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTcyMCw2ICs3MjAsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTI3c2V0SmF2YVNjcmlwdFVS
THNBcmVBbGxvd2VkRWIKIF9fWk43V2ViQ29yZTRQYWdlMzFzZXRDdXN0b21IVE1MVG9rZW5pemVy
Q2h1bmtTaXplRWkKIF9fWk43V2ViQ29yZTRQYWdlMzFzZXRDdXN0b21IVE1MVG9rZW5pemVyVGlt
ZURlbGF5RWQKIF9fWk43V2ViQ29yZTRQYWdlMzJzZXRNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5h
YmxlZEViCitfX1pON1dlYkNvcmU0UGFnZTE4c2V0UGFnZVNjYWxlRmFjdG9yRWZSS05TXzhJbnRQ
b2ludEUKIF9fWk43V2ViQ29yZTRQYWdlMzdzZXRJbkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRp
b25Nb2RlRWIKIF9fWk43V2ViQ29yZTRQYWdlNmdvQmFja0V2CiBfX1pON1dlYkNvcmU0UGFnZThn
b1RvSXRlbUVQTlNfMTFIaXN0b3J5SXRlbUVOU18xM0ZyYW1lTG9hZFR5cGVFCkBAIC03NTAsNyAr
NzUxLDYgQEAgX19aTjdXZWJDb3JlNUZyYW1lMjhzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbGVtZW50
RVA3TlNBcnJheVBOU183RWxlbWVudEVQbVBiCiBfX1pON1dlYkNvcmU1RnJhbWU2Y3JlYXRlRVBO
U180UGFnZUVQTlNfMjFIVE1MRnJhbWVPd25lckVsZW1lbnRFUE5TXzE3RnJhbWVMb2FkZXJDbGll
bnRFCiBfX1pON1dlYkNvcmU1RnJhbWU3c2V0Vmlld0VOM1dURjEwUGFzc1JlZlB0cklOU185RnJh
bWVWaWV3RUVFCiBfX1pON1dlYkNvcmU1RnJhbWU5bm9kZUltYWdlRVBOU180Tm9kZUUKLV9fWk43
V2ViQ29yZTVGcmFtZTlzY2FsZVBhZ2VFZlJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNUZy
YW1lRDFFdgogX19aTjdXZWJDb3JlNUltYWdlOW51bGxJbWFnZUV2CiBfX1pON1dlYkNvcmU1SW1h
Z2UxMnN1cHBvcnRzVHlwZUVSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAppbmRleCAxNjdhMDE5YTY2ZDI2N2QxMWU3NTkzYWRkODYzOTAzNGU5MDZh
M2Q1Li44MWE1YjJlODliZTI5NDQ4YmFjYTFlM2E3ZGYwYjZlNzU1YWMyN2Y3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsK
ICAgICBkb2N1bWVudFN0eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRl
cmVkKCkgPyBWaXN1YWxPcmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+
c2V0Wm9vbShmcmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1l
bnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZh
Y3RvcigpIDogMSk7CisgICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRv
Y3VtZW50LT5wYWdlKCkgPyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEp
OwogICAgIGRvY3VtZW50U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9k
ZSgpID8gUkVBRF9XUklURSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50
ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDJmMmI2MjNiN2MyMTFiMmZjNGVmZmFhNTc3ZGJiNWU1MTJiOWVlZWMuLjgxYTNmOWE4OGU2ODll
MzcyZDM0OTFlYTNjZGU0MTkzMGI0MzFmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTUx
NCwxMCArNTE0LDggQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xp
ZW50UmVjdHMoKQogICAgIHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRz
KTsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudCgpLT5wYWdlKCkpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5G
cmFtZSgpKQotICAgICAgICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3Rvcigp
OwotICAgIH0KKyAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAg
ICAgIHBhZ2VTY2FsZSA9IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1l
VmlldyogdmlldyA9IGRvY3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZp
c2libGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNTY1LDEw
ICs1NjMsOCBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpCiAgICAgfQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJl
c3VsdCwgcmVuZGVyZXIoKSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdl
KCkpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAg
ICAgICAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VT
Y2FsZUZhY3RvcigpKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5w
YWdlKCkpCisgICAgICAgIGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2Ut
PnBhZ2VTY2FsZUZhY3RvcigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVz
dWx0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDNlYzU2MGZkNTNhMDFhNWQyMWZhMTUyODQ4
MDMwMDgxYTA4OGZiMTAuLjkxYTIxZDgxMTQ4YjE3NjAyOTMxZjBhMzVhNWRhNWM5NDM5MGUyNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMjAyOCwxMCArMjAyOCw4IEBAIHN0YXRpYyB2b2lkIGFk
anVzdEZsb2F0UXVhZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9y
PEZsb2F0UXVhCiAgICAgICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0g
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZy
YW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudC0+cGFnZSgpKQorICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3Io
KTsKIAogICAgIExheW91dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsr
aSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXgg
NWMzOWY5NmYwNDY2ZDhlZTVmNmNmYWMzOWY0MTk1ZGI2Mzg5ZDk0Ni4uOWNhNTczMjlmNmE5ZjUw
NDdiY2I3Njc4OWM4ZDliOWNkNGQ3MWJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlz
dG9yeUNvbnRyb2xsZXIuY3BwCkBAIC04Niw3ICs4Niw4IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xs
ZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaXRl
bSkKICAgICBlbHNlCiAgICAgICAgIGl0ZW0tPnNldFNjcm9sbFBvaW50KG1fZnJhbWUtPnZpZXco
KS0+c2Nyb2xsUG9zaXRpb24oKSk7CiAKLSAgICBpdGVtLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9m
cmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkpOworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdl
KCk7CisgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVG
YWN0b3IoKSA6IDEpOwogICAgIAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBncmVhdCB0byB3
b3JrIG91dCBhIHdheSB0byBwdXQgdGhpcyBjb2RlIGluIFdlYkNvcmUgaW5zdGVhZCBvZiBjYWxs
aW5nIHRocm91Z2ggdG8gdGhlIGNsaWVudC4KICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50
KCktPnNhdmVWaWV3U3RhdGVUb0l0ZW0oaXRlbSk7CkBAIC0xMjUsNyArMTI2LDggQEAgdm9pZCBI
aXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAg
ICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7CiAgICAgICAgIGlmICgh
dmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkgewogICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xs
UG9zaXRpb24obV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7Ci0gICAgICAgICAgICBtX2Zy
YW1lLT5zY2FsZVBhZ2UobV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCksIG1fY3VycmVu
dEl0ZW0tPnNjcm9sbFBvaW50KCkpOworICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1f
Y3VycmVudEl0ZW0tPnBhZ2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJdGVtLT5zY3JvbGxQb2lu
dCgpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYmRkYWU2
MTEzMWZkNWRjMjk1YzA5NzEzZDJmMTQzNzNkNWFjMWM2Yy4uZTg5MWU4NzY5MGY0ZTNiMmMyMGNk
ZDBjODg0OGQxN2MxYzY4NWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTE2MCw3ICsxNjAs
NiBAQCBpbmxpbmUgRnJhbWU6OkZyYW1lKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtZU93bmVyRWxlbWVu
dCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlcgogICAgICwgbV9hbmltYXRpb25Db250cm9sbGVy
KHRoaXMpCiAgICAgLCBtX3BhZ2Vab29tRmFjdG9yKHBhcmVudFBhZ2Vab29tRmFjdG9yKHRoaXMp
KQogICAgICwgbV90ZXh0Wm9vbUZhY3RvcihwYXJlbnRUZXh0Wm9vbUZhY3Rvcih0aGlzKSkKLSAg
ICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykK
ICAgICAsIG1fb3JpZW50YXRpb24oMCkKICNlbmRpZgpAQCAtMTAyNiw2ICsxMDI1LDE0IEBAIHZv
aWQgRnJhbWU6OnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoZmxvYXQgcGFnZVpvb21GYWN0b3Is
IGZsb2F0IHRleHRab29tRmFjdG9yCiAgICAgICAgIHBhZ2UtPmJhY2tGb3J3YXJkKCktPm1hcmtQ
YWdlc0ZvckZ1bGxTdHlsZVJlY2FsYygpOwogfQogCitmbG9hdCBGcmFtZTo6cGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QKK3sKKyAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgcmV0dXJuIHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpOworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBGcmFtZTo6
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKIHsKQEAgLTEwMzcsMzMgKzEwNDQsNiBA
QCB2b2lkIEZyYW1lOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICBy
b290LT5jb21wb3NpdG9yKCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQog
I2VuZGlmCi0KLXZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0
UG9pbnQmIG9yaWdpbikKLXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2Fs
ZSAhPSBtX3BhZ2VTY2FsZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNj
YWxlOwotCi0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRv
Y3VtZW50LT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1
bWVudC0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotICAgICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNl
bmRpZgotICAgIH0KLQotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsK
LSAgICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigp
LT5uZWVkc0xheW91dCgpICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2
aWV3LT5sYXlvdXQoKTsKLSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsK
LSAgICB9Ci19Ci0KIHZvaWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5k
bGVyQ291bnRDaGFuZ2VkKCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhv
ZCBpcyBiZWluZyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmgKaW5kZXggMzVmZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uODA0
MTRhODM2Y2E1NmM5YWU2ZmViYTRjYWUyZTE0OGRiNTc0YjI0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApA
QCAtMTYxLDkgKzE2MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4
dFpvb21GYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAg
IHZvaWQgc2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxv
YXQgdGV4dFpvb21GYWN0b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMg
c2hvdWxkIG1vdmUgdG8gUGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUs
IGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0
b3IoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQorICAgICAgICAvLyBDb252
ZW5pZW5jZSBoZWxwZXIgbWV0aG9kIHRoYXQgZ3JhYnMgdGhlIHBhZ2VTY2FsZUZhY3RvciBmcm9t
IFBhZ2UuCisgICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICB2b2lkIGRldmljZU9yUGFnZVNjYWxl
RmFjdG9yQ2hhbmdlZCgpOwogI2VuZGlmCkBAIC0yNDEsOCArMjQxLDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBmbG9hdCBtX3BhZ2Vab29tRmFjdG9yOwogICAgICAgICBmbG9hdCBt
X3RleHRab29tRmFjdG9yOwogCi0gICAgICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yOwotCiAj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICAgICAgaW50IG1fb3JpZW50YXRpb247
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGIxOGZkMzkyZTlkMTBkZmQ1NjAzZGJkNjVm
NWFlMTMyOWJjMTljN2QuLjBhNGYyZTE1YTY5YjE3OGJkYTM4YjYyNzdkYTVhYTBiN2ZiOTVjZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNs
aWVudHMmIHBhZ2VDbGllbnRzKQogICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCiAgICAgLCBt
X2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9s
dW1lKDEpCisgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9kZXZpY2VTY2FsZUZh
Y3RvcigxKQogICAgICwgbV9qYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQodHJ1ZSkKICAgICAsIG1f
ZGlkTG9hZFVzZXJTdHlsZVNoZWV0KGZhbHNlKQpAQCAtNjA4LDYgKzYwOSwzMyBAQCB2b2lkIFBh
Z2U6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICB9CiB9CiAKK3ZvaWQgUGFnZTo6
c2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2lu
KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLT5kb2N1bWVudCgpOwor
CisgICAgaWYgKHNjYWxlICE9IG1fcGFnZVNjYWxlRmFjdG9yKSB7CisgICAgICAgIG1fcGFnZVNj
YWxlRmFjdG9yID0gc2NhbGU7CisKKyAgICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpKQor
ICAgICAgICAgICAgZG9jdW1lbnQtPnJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwor
CisgICAgICAgIGRvY3VtZW50LT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CisKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgIG1haW5GcmFtZSgpLT5kZXZpY2VPclBh
Z2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlmIChGcmFtZVZp
ZXcqIHZpZXcgPSBkb2N1bWVudC0+dmlldygpKSB7CisgICAgICAgIGlmICh2aWV3LT5zY3JvbGxQ
b3NpdGlvbigpICE9IG9yaWdpbikgeworICAgICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIo
KSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJz
dExheW91dCgpKQorICAgICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsKKyAgICAgICAgICB2aWV3
LT5zZXRTY3JvbGxQb3NpdGlvbihvcmlnaW4pOworICAgICAgICB9CisgICAgfQorfQorCisKIHZv
aWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAgICAg
aWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVGYWN0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4
IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2Nzg3ZWZjYTkuLmQ1YzIzOTczOGE0NzRh
ZTIxYmQzMTI0Mjg1YmUyZjA5NGZmODI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3
IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlv
bnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0
QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFWb2x1bWU7IH0K
ICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpOwogCisgICAgICAgIHZv
aWQgc2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3Jp
Z2luKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlU2NhbGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAgICAgdm9pZCBzZXREZXZp
Y2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsK
ICAgICAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBmbG9hdCBtX3BhZ2VTY2Fs
ZUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIAogICAgICAgICBi
b29sIG1famF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBhYzg0MTU2M2ZlMWU1YmZj
NDBlMDhlMmY0MzY2Y2Q4NGQ3YmU5ZGU5Li5lZmNkOWUwNTI2ZGRhNDFjNGM0MGZkNGNiMTA1ZjM0
MThlZTJiZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSgpIGNv
bnN0CiAgICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxyZWFkeSBjb21wb3NpdGlu
Zywgb3IgdGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1lKiBmcmFtZSA9IG1fcmVu
ZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lID8g
ZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2NhbGVG
YWN0b3IoKSAhPSAxKQorICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpICE9
IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIFJlbmRlclBhcnQqIGZyYW1lUmVu
ZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOwpAQCAtMTU2Niw3ICsxNTY2LDcgQEAgZmxv
YXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIFBh
Z2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
IDE7Ci0gICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAg
ICByZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMWFmMmM5
NWQzZTNjZTQ3Y2VlMDE5MjQyM2QxMjEzZWU0NjZjODE2My4uNjA1ZmJkNmRkYzIzOWY4YWUzNDJh
MTk1YzY5YjY4MmZhZTA4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2VsZWN0aW9uSW5mby5oIgpA
QCAtMjI2LDEwICsyMjcsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICAgICAgUmVuZGVy
Qm94KiByb290Qm94ID0gcm9vdFJlbmRlcmVyLT5pc0JveCgpID8gdG9SZW5kZXJCb3gocm9vdFJl
bmRlcmVyKSA6IDA7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdwb3J0ID0gcm9vdEJveCAmJiAhcm9v
dEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJveC0+d2lkdGgoKSA+PSB3aWR0aCgp
ICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwogICAgIH0KLQotICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZnJhbWVWaWV3LT5m
cmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBmcmFtZS0+cGFnZVNjYWxlRmFjdG9y
KCk7CisgICAgCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKTsKKyAgICBmbG9h
dCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOwog
CiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBlbnRpcmVseSBmaWxsIHRoZSB2aWV3LCBubyBuZWVk
IHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAgICAgaWYgKHJvb3RGaWxsc1ZpZXdwb3J0ICYmIHJl
bmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZpcnN0Q2hpbGQoKSkgJiYgcGFnZVNjYWxlRmFjdG9y
ID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGE3NGQxZTg5NTdlYWEwMzljNzVi
ZDcyNzk2NjhhNGU3ZjkzNTA0ZDMuLmQ2YTg4ZWNhNGFlNjk0ODMwYWVmYTI5OTI5OTA5MWRkZTA0
OTY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEt
MDktMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92
ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2FsZVBhZ2UpOgorCiAyMDEx
LTA5LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRnJhbWVM
b2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0IGNhbiBjcmFzaCB3aGVuIGNhbGxlZCBmcm9t
IG9yIGFmdGVyIEZyYW1lTG9hZGVyOjpkZXRhY2hGcm9tUGFyZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNmMyOTJjMWQ1ODA4NTg5ZWNkZTA1YWMy
Y2NhZDc0ZWE1YTI1NTJiMS4uNDY3MThkNGUzNzY5YWI2OGE4MmE2YjliMmFlM2UxYjdmMzYyYTRm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTg3
NywxMSArMTg3Nyw3IEBAIGZsb2F0IFdlYlZpZXdJbXBsOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25z
dAogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm4gMS4wOwogCi0gICAgRnJhbWUqIGZy
YW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1
cm4gMS4wOwotCi0gICAgcmV0dXJuIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1
cm4gcGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2Nh
bGVQYWdlKGZsb2F0IHNjYWxlRmFjdG9yLCBXZWJQb2ludCBvcmlnaW4pCkBAIC0xODg5LDExICsx
ODg1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2NhbGVQYWdlKGZsb2F0IHNjYWxlRmFjdG9yLCBX
ZWJQb2ludCBvcmlnaW4pCiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgZnJhbWUtPnNjYWxlUGFnZShzY2FsZUZhY3Rvciwgb3JpZ2lu
KTsKKyAgICBwYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvciwgb3JpZ2luKTsK
IH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCA5ZDcyM2I5ZGZjM2YxMTkyOWE4NWE4NTczODhiMjI2ZWMwNDYy
MjkyLi43ZDFiYzQ3ZjQ4YzQ5MWMyY2RiYjBkN2Q1NmMwOWUwOTIxMTk0OTcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVl
bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9t
IEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2NhbGVQYWdl
QnkpOgorCiAyMDExLTA5LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlbmFtZSBjb25maXJtQ29tcG9zaXRpb25XaXRob3V0RGlzdHVyYmluZ1NlbGVjdGlv
biB0byBjYW5jZWxDb21wb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggNWQ1
YTA3ODIyNWViMDFiZTk5YzdkY2E5YjUyZDIwMjdjY2IyZjBmOS4uYTE0ZTk0NjZlNDQ4ODcyMmJl
ZDRjMzE2MTY2ZDQ0N2UzZmY3OTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04
MDMsOSArODAzLDUgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNob3VsZENsb3Nl
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGZsb2F0IHNjYWxlRmFjdG9yLCBm
bG9hdCB4LCBmbG9hdCB5KQogewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYlZpZXcp
LT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKKyAg
ICBjb3JlKHdlYlZpZXcpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIEludFBvaW50
KHgsIHkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0YWRmYjU2MmE1NWM1ZThkZjcxNTljMGU1
MWM2YTliMDhlMzYxMzk2Li4wMjAzMDliNDhjMzVhM2JkMDg3ZGViYTMyNWU1MzRjOGI4ZWVhZjE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMDggIEZhZHkgU2Ft
dWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0
b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9zY2FsZVdlYlZpZXc6YXRPcmlnaW46XSk6CisgICAgICAgICgt
W1dlYlZpZXcgX3ZpZXdTY2FsZUZhY3Rvcl0pOgorCiAyMDExLTA5LTA3ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByOTQ2MjcgYW5kIHI5NDYzMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2VjODFlYWY4MTk0Nzg4Li42NGQ2YmYy
Yzg2NDBiY2YzOGRjMGY5NTFmNTc1NDc5MjU1MzM3YTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBAIHN0YXRpYyBQYXNzT3duUHRyPFZl
Y3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAKIC0gKHZv
aWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmlnaW46KE5TUG9pbnQpb3JpZ2luCiB7
Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKLSAgICBpZiAo
IWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uo
c2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2YXRlLT5wYWdlLT5zZXRQYWdlU2Nh
bGVGYWN0b3Ioc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAtIChmbG9hdClfdmlld1Nj
YWxlRmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1l
XTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICByZXR1cm4g
Y29yZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2Ut
PnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VGaXhlZExheW91dDooQk9P
TClmaXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzNTAwYmQwNDIwMjg2YWNhYTg0Mzg4MTBjZmJkM2Q1
NGUxM2JlODZlLi5kNTQ5ZjFlNDIxYWM4YmZiZGEyNGI0YmVjNWNkZmZiYjJhNWE2NTQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTA4ICBGYWR5IFNhbXVlbCAgPGZz
YW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNvZGUg
ZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2FsZVBh
Z2VCeSk6CisKIDIwMTEtMDktMDUgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRl
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSBUaWxlZERyYXdpbmdBcmVhIHJl
cXVlc3QgdGlsZXMgb25seSBpbiB0aGUgZGlyZWN0aW9uIHRoZSB2aWV3cG9ydCBpcyBwYW5uZWQg
dG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGVhZDVhYzJhZWE0NjJhYjA3ZmVjNDI3ZGVk
MTkyZjNkYTVkZWE2NDcuLjAzZTRiMzc1MmQxYzhjOTM1MmRkMTQxM2MyNTRlNWJiYmMyZGFlMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03ODUsNyArNzg1LDggQEAgUVN0cmluZyBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6dmlld3BvcnRBc1RleHQoUVdlYlBhZ2UqIHBhZ2UsIGludCBk
ZXZpY2VEUEksIGMKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNjYWxlUGFnZUJ5KFFX
ZWJGcmFtZSogZnJhbWUsIGZsb2F0IHNjYWxlZmFjdG9yLCBjb25zdCBRUG9pbnQmIG9yaWdpbikK
IHsKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29y
ZShmcmFtZSk7Ci0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVmYWN0b3IsIG9yaWdpbik7
CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBjb3JlRnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+
c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlZmFjdG9yLCBvcmlnaW4pOwogfQogCiB2b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjphY3RpdmVNb2NrRGV2aWNlT3JpZW50YXRpb25DbGllbnQoYm9v
bCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDJmZTBlZjRmN2Q1MzgwM2QxZmJiOWJiNmQwZjczNTBkOTNjMzVj
MjYuLmVkYzAwNTBhYTI0YzBmNTQ0ZTY3ODFkMGFmZTJjYmNlOTkyYWFjOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMS0wOS0wOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZyb20gRnJhbWUu
e2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luVmlldzo6dmlld0dlb21ldHJ5RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6Y2xpcFJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzY2FsZVBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwYWdlU2NhbGVG
YWN0b3IpOgorCiAyMDExLTA5LTA3ICBBbGV4ZWkgU3ZpdGtpbmUgIDxhc3ZpdGtpbmVAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHRlc3QgcnViYmVy
LWJhbmRpbmcgb3ZlcmhhbmcgZHJhd2luZyBhbG9uZyB3aXRoIGxheW91dCB0ZXN0cyBmb3IgZXhp
c3RpbmcgQ2hyb21pdW0gTWFjIG92ZXJoYW5nIGRyYXdpbmcgaW4gdGhlIG5vbi1ncHUgcGF0aC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApp
bmRleCA2MWM4MDE1YTkzZjdiNjBmNmVkZjAwMzljZWU2NmQyODQ5YTIyOWJmLi4zMTZkMmQ1ZmVm
MTRlMWIwMGVlMGNiYjQyZGY4NTczNzE4ZTU5OGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OTAsNyArNTkwLDggQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBmb2N1
c1BsdWdpbkVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEFkanVzdCBtb3VzZSBjb29y
ZGluYXRlcyB0byBhY2NvdW50IGZvciBwYWdlU2NhbGVGYWN0b3IKLSAgICAgICAgV2ViTW91c2VF
dmVudCBldmVudFdpdGhTY2FsZWRDb29yZGluYXRlcygqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91
c2VFdmVudCo+KGN1cnJlbnRFdmVudCksIGZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAg
ICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gZnJhbWUoKS0+cGFnZVNjYWxlRmFjdG9yKCk7
CisgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnRXaXRoU2NhbGVkQ29vcmRpbmF0ZXMoKnN0YXRp
Y19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPihjdXJyZW50RXZlbnQpLCBwYWdlU2NhbGVGYWN0
b3IpOwogICAgICAgICBkaWRIYW5kbGVFdmVudCA9IG1fcGx1Z2luLT5oYW5kbGVNb3VzZUV2ZW50
KGV2ZW50V2l0aFNjYWxlZENvb3JkaW5hdGVzKTsKICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCAmJiBjdXJyZW50RXZlbnQtPnR5cGUo
KSA9PSBXZWJFdmVudDo6V2hlZWwpIHsKICAgICAgICAgLy8gV2UgaGF2ZSBhIHdoZWVsIGV2ZW50
LgpAQCAtNjU3LDcgKzY1OCw4IEBAIHZvaWQgUGx1Z2luVmlldzo6dmlld0dlb21ldHJ5RGlkQ2hh
bmdlKCkKICAgICBJbnRSZWN0IGZyYW1lUmVjdEluV2luZG93Q29vcmRpbmF0ZXMgPSBwYXJlbnQo
KS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7CiAgICAgCiAgICAgLy8gQWRqdXN0IGJv
dW5kcyB0byBhY2NvdW50IGZvciBwYWdlU2NhbGVGYWN0b3IKLSAgICBmcmFtZVJlY3RJbldpbmRv
d0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBmcmFtZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAg
ZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIGZy
YW1lUmVjdEluV2luZG93Q29vcmRpbmF0ZXMuc2NhbGUoMSAvIHBhZ2VTY2FsZUZhY3Rvcik7CiAg
ICAgbV9wbHVnaW4tPmdlb21ldHJ5RGlkQ2hhbmdlKGZyYW1lUmVjdEluV2luZG93Q29vcmRpbmF0
ZXMsIGNsaXBSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpKTsKIH0KIApAQCAtNjgzLDcgKzY4NSw4
IEBAIEludFJlY3QgUGx1Z2luVmlldzo6Y2xpcFJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKCkgY29u
c3QKICAgICAvLyBJbnRlcnNlY3QgdGhlIHR3byByZWN0cyB0byBnZXQgdGhlIHZpZXcgY2xpcCBy
ZWN0IGluIHdpbmRvdyBjb29yZGluYXRlcy4KICAgICBmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5h
dGVzLmludGVyc2VjdCh3aW5kb3dDbGlwUmVjdCk7CiAKLSAgICBmcmFtZVJlY3RJbldpbmRvd0Nv
b3JkaW5hdGVzLnNjYWxlKDEgLyBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGZsb2F0
IHBhZ2VTY2FsZUZhY3RvciA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBmcmFtZVJl
Y3RJbldpbmRvd0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBwYWdlU2NhbGVGYWN0b3IpOwogICAgIHJl
dHVybiBmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDAyNDllOTY1Y2NmN2ZmY2VmODRkY2E0MDQyYjc4NDk3NmQz
NDUwODEuLjkyNDgyZDE0NGE3N2QyZWQyMDI4NWNlNzUyODdjMmY5ZWVkMGRhYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00NDMsNyArNDQzLDggQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIAogICAgIC8vIE9ubHkg
cmVzdG9yZSB0aGUgc2NhbGUgZmFjdG9yIGZvciBzdGFuZGFyZCBmcmFtZSBsb2FkcyAob2YgdGhl
IG1haW4gZnJhbWUpLgogICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgpICYmIG1fZnJhbWUt
PmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlU3RhbmRh
cmQpIHsKLSAgICAgICAgaWYgKG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5wYWdlU2NhbGVGYWN0b3Io
KSAhPSAxKQorICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPnBhZ2Uo
KTsKKyAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKICAg
ICAgICAgICAgIHdlYlBhZ2UtPnNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjM0
NmQxM2IyNDI2ZDE1ZjU3Mzg1NzBkMjU1MTliNTQ0Zjc0NzRkZi4uODkxNWJmNGNmNzFiMTJkNmVk
ODVmMTRkZmE3YzgyYmViY2M4N2I5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzc3LDIwICs3NzcsMTQgQEAgdm9pZCBXZWJQYWdlOjpz
ZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKGRvdWJsZSBwYWdlWm9vbUZhY3RvciwgZG91YmxlIHRl
eHRab29tRmEKIAogdm9pZCBXZWJQYWdlOjpzY2FsZVBhZ2UoZG91YmxlIHNjYWxlLCBjb25zdCBJ
bnRQb2ludCYgb3JpZ2luKQogewotICAgIEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3Jl
RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0gICAgZnJhbWUtPnNj
YWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKKyAgICBtX3BhZ2UtPnNldFBhZ2VTY2FsZUZhY3Rvcihz
Y2FsZSwgb3JpZ2luKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVNj
YWxlRmFjdG9yRGlkQ2hhbmdlKHNjYWxlKSk7CiB9CiAKIGRvdWJsZSBXZWJQYWdlOjpwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdAogewotICAgIEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3Jl
RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMTsKLSAgICByZXR1cm4g
ZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBtX3BhZ2UtPnBhZ2VTY2FsZUZh
Y3RvcigpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNj
YWxlRmFjdG9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106783</attachid>
            <date>2011-09-08 13:51:42 -0700</date>
            <delta_ts>2011-09-08 15:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110908165140.patch</filename>
            <type>text/plain</type>
            <size>25847</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ3NjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjBmNWYwM2VjMzgyNTYz
ZDExYzJjNjVkYjVlMzA4YjI4M2UzNzNhLi42OGYwNmQ0Y2VlN2NhM2IzMzViNmY2Njk0NWU3MjE0
ZTA0ZWU0NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDktMDggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgor
ICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1
YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBsb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRy
b2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGFnZS9GcmFtZS5o
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwYWdlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3Np
dGluZ1RvRW5jbG9zaW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMp
OgorCiAyMDExLTA5LTA3ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgUmF3U291cmNlQ29kZS5jcmVh
dGVTb3VyY2VNYXBwaW5nSWZOZWVkZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDYxOTQ0ZTBh
MjMyMDVmNmFkMzFkMjFiNzYwZmE0NTEyMzNmM2VhYWEuLjg5MzMzNTNjZDU2NjYyZTQ5YTNiMTA2
Zjk0ZmI1ZjFjOTgyYzYxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MjAsNiArNzIwLDcg
QEAgX19aTjdXZWJDb3JlNFBhZ2UyN3NldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZEViCiBfX1pO
N1dlYkNvcmU0UGFnZTMxc2V0Q3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZUVpCiBfX1pON1dl
YkNvcmU0UGFnZTMxc2V0Q3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheUVkCiBfX1pON1dlYkNv
cmU0UGFnZTMyc2V0TWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWRFYgorX19aTjdXZWJDb3Jl
NFBhZ2UxOHNldFBhZ2VTY2FsZUZhY3RvckVmUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmU0
UGFnZTM3c2V0SW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZUViCiBfX1pON1dlYkNv
cmU0UGFnZTZnb0JhY2tFdgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9y
eUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQpAQCAtNzUwLDcgKzc1MSw2IEBAIF9fWk43V2ViQ29y
ZTVGcmFtZTI4c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudEVQN05TQXJyYXlQTlNfN0VsZW1l
bnRFUG1QYgogX19aTjdXZWJDb3JlNUZyYW1lNmNyZWF0ZUVQTlNfNFBhZ2VFUE5TXzIxSFRNTEZy
YW1lT3duZXJFbGVtZW50RVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19aTjdXZWJDb3JlNUZy
YW1lN3NldFZpZXdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZyYW1lVmlld0VFRQogX19aTjdXZWJD
b3JlNUZyYW1lOW5vZGVJbWFnZUVQTlNfNE5vZGVFCi1fX1pON1dlYkNvcmU1RnJhbWU5c2NhbGVQ
YWdlRWZSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTVGcmFtZUQxRXYKIF9fWk43V2ViQ29y
ZTVJbWFnZTludWxsSW1hZ2VFdgogX19aTjdXZWJDb3JlNUltYWdlMTJzdXBwb3J0c1R5cGVFUktO
M1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXgg
MTY3YTAxOWE2NmQyNjdkMTFlNzU5M2FkZDg2MzkwMzRlOTA2YTNkNS4uODFhNWIyZTg5YmUyOTQ0
OGJhY2ExZTNhN2RmMGI2ZTc1NWFjMjdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcApAQCAtMTA1OCw3ICsxMDU4LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCiAg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CiAgICAgZG9jdW1lbnRTdHlsZS0+
c2V0UlRMT3JkZXJpbmcoZG9jdW1lbnQtPnZpc3VhbGx5T3JkZXJlZCgpID8gVmlzdWFsT3JkZXIg
OiBMb2dpY2FsT3JkZXIpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUgPyBmcmFt
ZS0+cGFnZVpvb21GYWN0b3IoKSA6IDEpOwotICAgIGRvY3VtZW50U3R5bGUtPnNldFBhZ2VTY2Fs
ZVRyYW5zZm9ybShmcmFtZSA/IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOworICAgIGRv
Y3VtZW50U3R5bGUtPnNldFBhZ2VTY2FsZVRyYW5zZm9ybShkb2N1bWVudC0+cGFnZSgpID8gZG9j
dW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVudFN0eWxl
LT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJVEUgOiBS
RUFEX09OTFkpOwogCiAgICAgRWxlbWVudCogZG9jRWxlbWVudCA9IGRvY3VtZW50LT5kb2N1bWVu
dEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyZjJiNjIzYjdjMjExYjJmYzRl
ZmZhYTU3N2RiYjVlNTEyYjllZWVjLi44MWEzZjlhODhlNjg5ZTM3MmQzNDkxZWEzY2RlNDE5MzBi
NDMxZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01MTQsMTAgKzUxNCw4IEBAIFBhc3NS
ZWZQdHI8Q2xpZW50UmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKICAgICByZW5k
ZXJCb3hNb2RlbE9iamVjdC0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CiAKICAgICBmbG9hdCBwYWdl
U2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0g
ICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAg
IHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIAorICAgICAgICBwYWdlU2NhbGUgPSBwYWdl
LT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVu
dCgpLT52aWV3KCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCB2aXNpYmxlQ29udGVudFJlY3QgPSB2
aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKQEAgLTU2NSwxMCArNTYzLDggQEAgUGFzc1JlZlB0
cjxDbGllbnRSZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQogICAgIH0KIAog
ICAgIGFkanVzdEZsb2F0UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRlcmVyKCkpOwot
ICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIGFkanVzdEZsb2F0
UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAg
fQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICBhZGp1
c3RGbG9hdFJlY3RGb3JQYWdlU2NhbGUocmVzdWx0LCBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7
CiAKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcAppbmRleCAzZWM1NjBmZDUzYTAxYTVkMjFmYTE1Mjg0ODAzMDA4MWEwODhmYjEwLi45MWEy
MWQ4MTE0OGIxNzYwMjkzMWYwYTM1YTVkYTVjOTQzOTBlMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAK
QEAgLTIwMjgsMTAgKzIwMjgsOCBAQCBzdGF0aWMgdm9pZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Ny
b2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKFZlY3RvcjxGbG9hdFF1YQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmbG9hdCBwYWdlU2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0g
ZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFp
bkZyYW1lKCkpCi0gICAgICAgICAgICBwYWdlU2NhbGUgPSBmcmFtZS0+cGFnZVNjYWxlRmFjdG9y
KCk7Ci0gICAgfQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAg
ICAgcGFnZVNjYWxlID0gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiAKICAgICBMYXlvdXRSZWN0
IHZpc2libGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IDVjMzlmOTZmMDQ2NmQ4ZWU1ZjZj
ZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjE2MzViNDVmM2RiMDljNjkyOTc0MjhhNThiNjM2MDkxOTc4
YTIyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApA
QCAtMTI1LDcgKzEyNSw4IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQ
b3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUt
PnZpZXcoKSkgewogICAgICAgICBpZiAoIXZpZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAg
ICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBv
aW50KCkpOwotICAgICAgICAgICAgbV9mcmFtZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBh
Z2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAg
ICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBh
Z2UtPnNldFBhZ2VTY2FsZUZhY3RvcihtX2N1cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSwg
bV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IGJkZGFlNjExMzFmZDVkYzI5NWMwOTcxM2QyZjE0MzczZDVhYzFj
NmMuLmU4OTFlODc2OTBmNGUzYjJjMjBjZGQwYzg4NDhkMTdjMWM2ODVjYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBw
YWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKICAg
ICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0aGlzKQogICAgICwgbV9wYWdlWm9vbUZhY3Rvcihw
YXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkKICAgICAsIG1fdGV4dFpvb21GYWN0b3IocGFyZW50
VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogI2lmIEVO
QUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgLCBtX29yaWVudGF0aW9uKDApCiAjZW5kaWYK
QEAgLTEwMjYsNiArMTAyNSwxNCBAQCB2b2lkIEZyYW1lOjpzZXRQYWdlQW5kVGV4dFpvb21GYWN0
b3JzKGZsb2F0IHBhZ2Vab29tRmFjdG9yLCBmbG9hdCB0ZXh0Wm9vbUZhY3RvcgogICAgICAgICBw
YWdlLT5iYWNrRm9yd2FyZCgpLT5tYXJrUGFnZXNGb3JGdWxsU3R5bGVSZWNhbGMoKTsKIH0KIAor
ZmxvYXQgRnJhbWU6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgUGFnZSogcGFnZSA9
IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAxOworICAgIHJl
dHVybiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIHZvaWQgRnJhbWU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgp
CiB7CkBAIC0xMDM3LDMzICsxMDQ0LDYgQEAgdm9pZCBGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCkKICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5kZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWQoKTsKIH0KICNlbmRpZgotCi12b2lkIEZyYW1lOjpzY2FsZVBhZ2Uo
ZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pCi17Ci0gICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoc2NhbGUgIT0gbV9wYWdlU2NhbGVGYWN0b3IpIHsKLSAgICAg
ICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZTsKLQotICAgICAgICBpZiAoZG9jdW1lbnQtPnJl
bmRlcmVyKCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlv
dXQodHJ1ZSk7Ci0KLSAgICAgICAgZG9jdW1lbnQtPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsK
LQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgZGV2aWNlT3JQYWdl
U2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBpZiAoRnJhbWVWaWV3
KiB2aWV3ID0gdGhpcy0+dmlldygpKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIo
KSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJz
dExheW91dCgpKQotICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7Ci0gICAgICAgIHZpZXctPnNl
dFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0gICAgfQotfQotCiB2b2lkIEZyYW1lOjpub3RpZnlD
aHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0CiB7CiAgICAg
Ly8gRW5zdXJlIHRoYXQgdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIG9uIHRoZSBtYWluIGZy
YW1lIG9mIHRoZSBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDM1ZmU4YTI3ZDFmOGExOGRiYzYz
MDdlMzk1ZGUwNGUzMmRiM2JhMGQuLjgwNDE0YTgzNmNhNTZjOWFlNmZlYmE0Y2FlMmUxNDhkYjU3
NGIyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE2MSw5ICsxNjEsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGZsb2F0IHRleHRab29tRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0Wm9vbUZhY3RvcjsgfQogICAgICAgICB2b2lkIHNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMo
ZmxvYXQgcGFnZVpvb21GYWN0b3IsIGZsb2F0IHRleHRab29tRmFjdG9yKTsKIAotICAgICAgICAv
LyBGSVhNRTogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBtb3ZlIHRvIFBhZ2UuCi0gICAgICAgIHZv
aWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKTsKLSAg
ICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVG
YWN0b3I7IH0KKyAgICAgICAgLy8gQ29udmVuaWVuY2UgaGVscGVyIG1ldGhvZCB0aGF0IGdyYWJz
IHRoZSBwYWdlU2NhbGVGYWN0b3IgZnJvbSBQYWdlLgorICAgICAgICBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IoKSBjb25zdDsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAg
ICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICNlbmRpZgpAQCAtMjQx
LDggKzI0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbV9wYWdlWm9v
bUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3RvcjsKIAotICAgICAgICBmbG9h
dCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAg
ICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBi
MThmZDM5MmU5ZDEwZGZkNTYwM2RiZDY1ZjVhZTEzMjliYzE5YzdkLi40MDcyYzkwZGYyZmFkYWQ3
MGU3OGMzNDU1ZTY4ZWE5Njg3ZjZiZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE0Nyw2ICsx
NDcsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fY29v
a2llRW5hYmxlZCh0cnVlKQogICAgICwgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxl
ZCh0cnVlKQogICAgICwgbV9tZWRpYVZvbHVtZSgxKQorICAgICwgbV9wYWdlU2NhbGVGYWN0b3Io
MSkKICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1famF2YVNjcmlwdFVSTHNB
cmVBbGxvd2VkKHRydWUpCiAgICAgLCBtX2RpZExvYWRVc2VyU3R5bGVTaGVldChmYWxzZSkKQEAg
LTYwOCw2ICs2MDksMzQgQEAgdm9pZCBQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUp
CiAgICAgfQogfQogCit2b2lkIFBhZ2U6OnNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSwg
Y29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikKK3sKKyAgICBpZiAoc2NhbGUgPT0gbV9wYWdlU2Nh
bGVGYWN0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1h
aW5GcmFtZSgpLT5kb2N1bWVudCgpOworCisgICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZTsK
KworICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAgZG9jdW1lbnQtPnJlbmRl
cmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCisgICAgZG9jdW1lbnQtPnJlY2FsY1N0eWxl
KE5vZGU6OkZvcmNlKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBt
YWluRnJhbWUoKS0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisjZW5kaWYKKwor
ICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVudC0+dmlldygpKSB7CisgICAgICAgIGlm
ICh2aWV3LT5zY3JvbGxQb3NpdGlvbigpICE9IG9yaWdpbikgeworICAgICAgICAgIGlmIChkb2N1
bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAm
JiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsK
KyAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihvcmlnaW4pOworICAgICAgICB9Cisg
ICAgfQorfQorCisKIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVG
YWN0b3IpCiB7CiAgICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVGYWN0b3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCmluZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2Nzg3ZWZjYTku
LmQ1YzIzOTczOGE0NzRhZTIxYmQzMTI0Mjg1YmUyZjA5NGZmODI3OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5j
bHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUg
IlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFWb2x1bWU7IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUp
OwogCisgICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBM
YXlvdXRQb2ludCYgb3JpZ2luKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAg
ICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVu
dENhbGxzRW5hYmxlZDsKICAgICAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBm
bG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3Rv
cjsKIAogICAgICAgICBib29sIG1famF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBh
Yzg0MTU2M2ZlMWU1YmZjNDBlMDhlMmY0MzY2Y2Q4NGQ3YmU5ZGU5Li5lZmNkOWUwNTI2ZGRhNDFj
NGM0MGZkNGNiMTA1ZjM0MThlZTJiZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNs
b3NpbmdGcmFtZSgpIGNvbnN0CiAgICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxy
ZWFkeSBjb21wb3NpdGluZywgb3IgdGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSog
cGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOwpAQCAtMTU2Niw3
ICsxNTY2LDcgQEAgZmxvYXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggMWFmMmM5NWQzZTNjZTQ3Y2VlMDE5MjQyM2QxMjEzZWU0NjZjODE2My4uNjA1ZmJk
NmRkYzIzOWY4YWUzNDJhMTk1YzY5YjY4MmZhZTA4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxv
d1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIgpAQCAtMjI2LDEwICsyMjcsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgUmVuZGVyQm94KiByb290Qm94ID0gcm9vdFJlbmRlcmVyLT5pc0JveCgpID8gdG9S
ZW5kZXJCb3gocm9vdFJlbmRlcmVyKSA6IDA7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdwb3J0ID0g
cm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJveC0+d2lk
dGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwogICAgIH0K
LQotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBh
Z2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCkgOiAxOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBlbnRpcmVseSBmaWxsIHRo
ZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAgICAgaWYgKHJvb3RGaWxs
c1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZpcnN0Q2hpbGQoKSkgJiYg
cGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGE3NGQx
ZTg5NTdlYWEwMzljNzViZDcyNzk2NjhhNGU3ZjkzNTA0ZDMuLmQ2YTg4ZWNhNGFlNjk0ODMwYWVm
YTI5OTI5OTA5MWRkZTA0OTY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDktMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0g
dG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2Fs
ZVBhZ2UpOgorCiAyMDExLTA5LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgRnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0IGNhbiBjcmFzaCB3
aGVuIGNhbGxlZCBmcm9tIG9yIGFmdGVyIEZyYW1lTG9hZGVyOjpkZXRhY2hGcm9tUGFyZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNmMyOTJjMWQ1
ODA4NTg5ZWNkZTA1YWMyY2NhZDc0ZWE1YTI1NTJiMS4uNDY3MThkNGUzNzY5YWI2OGE4MmE2Yjli
MmFlM2UxYjdmMzYyYTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcApAQCAtMTg3NywxMSArMTg3Nyw3IEBAIGZsb2F0IFdlYlZpZXdJbXBsOjpwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdAogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm4gMS4wOwog
Ci0gICAgRnJhbWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm4gMS4wOwotCi0gICAgcmV0dXJuIGZyYW1lLT5wYWdlU2NhbGVGYWN0
b3IoKTsKKyAgICByZXR1cm4gcGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6c2NhbGVQYWdlKGZsb2F0IHNjYWxlRmFjdG9yLCBXZWJQb2ludCBvcmlnaW4p
CkBAIC0xODg5LDExICsxODg1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2NhbGVQYWdlKGZsb2F0
IHNjYWxlRmFjdG9yLCBXZWJQb2ludCBvcmlnaW4pCiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZnJhbWUtPnNjYWxlUGFnZShzY2Fs
ZUZhY3Rvciwgb3JpZ2luKTsKKyAgICBwYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZh
Y3Rvciwgb3JpZ2luKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6aXNGaXhlZExheW91dE1vZGVF
bmFibGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5ZDcyM2I5ZGZjM2YxMTkyOWE4NWE4
NTczODhiMjI2ZWMwNDYyMjkyLi43ZDFiYzQ3ZjQ4YzQ5MWMyY2RiYjBkN2Q1NmMwOWUwOTIxMTk0
OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2NhbGVQYWdlQnkpOgorCiAyMDExLTA5LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBjb25maXJtQ29tcG9zaXRpb25XaXRob3V0RGlz
dHVyYmluZ1NlbGVjdGlvbiB0byBjYW5jZWxDb21wb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHAKaW5kZXggNWQ1YTA3ODIyNWViMDFiZTk5YzdkY2E5YjUyZDIwMjdjY2IyZjBmOS4uYTE0
ZTk0NjZlNDQ4ODcyMmJlZDRjMzE2MTY2ZDQ0N2UzZmY3OTk5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwCkBAIC04MDMsOSArODAzLDUgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNob3VsZENsb3NlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGZsb2F0
IHNjYWxlRmFjdG9yLCBmbG9hdCB4LCBmbG9hdCB5KQogewotICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBv
aW50KHgsIHkpKTsKKyAgICBjb3JlKHdlYlZpZXcpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IsIEludFBvaW50KHgsIHkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0YWRmYjU2MmE1
NWM1ZThkZjcxNTljMGU1MWM2YTliMDhlMzYxMzk2Li4wMjAzMDliNDhjMzVhM2JkMDg3ZGViYTMy
NWU1MzRjOGI4ZWVhZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEt
MDktMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92
ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2FsZVdlYlZpZXc6YXRPcmlnaW46
XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ZpZXdTY2FsZUZhY3Rvcl0pOgorCiAyMDExLTA5LTA3
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByOTQ2MjcgYW5kIHI5NDYzMi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2VjODFlYWY4
MTk0Nzg4Li42NGQ2YmYyYzg2NDBiY2YzOGRjMGY5NTFmNTc1NDc5MjU1MzM3YTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBAIHN0YXRp
YyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0
dGVybnMpCiAKIC0gKHZvaWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmlnaW46KE5T
UG9pbnQpb3JpZ2luCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZy
YW1lXTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZy
YW1lLT5zY2FsZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2YXRlLT5w
YWdlLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAt
IChmbG9hdClfdmlld1NjYWxlRmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxm
IF9tYWluQ29yZUZyYW1lXTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7
Ci0KLSAgICByZXR1cm4gY29yZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4g
X3ByaXZhdGUtPnBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VG
aXhlZExheW91dDooQk9PTClmaXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzNTAwYmQwNDIwMjg2YWNh
YTg0Mzg4MTBjZmJkM2Q1NGUxM2JlODZlLi5kNTQ5ZjFlNDIxYWM4YmZiZGEyNGI0YmVjNWNkZmZi
YjJhNWE2NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTA4ICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzY2FsZVBhZ2VCeSk6CisKIDIwMTEtMDktMDUgIEpvY2VseW4gVHVyY290dGUgIDxq
b2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSBUaWxl
ZERyYXdpbmdBcmVhIHJlcXVlc3QgdGlsZXMgb25seSBpbiB0aGUgZGlyZWN0aW9uIHRoZSB2aWV3
cG9ydCBpcyBwYW5uZWQgdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGVhZDVhYzJhZWE0
NjJhYjA3ZmVjNDI3ZGVkMTkyZjNkYTVkZWE2NDcuLjAzZTRiMzc1MmQxYzhjOTM1MmRkMTQxM2My
NTRlNWJiYmMyZGFlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03ODUsNyArNzg1LDgg
QEAgUVN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dmlld3BvcnRBc1RleHQoUVdlYlBh
Z2UqIHBhZ2UsIGludCBkZXZpY2VEUEksIGMKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnNjYWxlUGFnZUJ5KFFXZWJGcmFtZSogZnJhbWUsIGZsb2F0IHNjYWxlZmFjdG9yLCBjb25zdCBR
UG9pbnQmIG9yaWdpbikKIHsKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gUVdlYkZy
YW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7Ci0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVm
YWN0b3IsIG9yaWdpbik7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBjb3JlRnJhbWUtPnBhZ2UoKSkK
KyAgICAgICAgcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlZmFjdG9yLCBvcmlnaW4pOwog
fQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphY3RpdmVNb2NrRGV2aWNlT3JpZW50
YXRpb25DbGllbnQoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJmZTBlZjRmN2Q1MzgwM2QxZmJiOWJi
NmQwZjczNTBkOTNjMzVjMjYuLmVkYzAwNTBhYTI0YzBmNTQ0ZTY3ODFkMGFmZTJjYmNlOTkyYWFj
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wOS0wOCAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBj
b2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6dmlld0dlb21ldHJ5RGlkQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Y2xpcFJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29t
bWl0TG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZVBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpwYWdlU2NhbGVGYWN0b3IpOgorCiAyMDExLTA5LTA3ICBBbGV4ZWkgU3ZpdGtpbmUgIDxh
c3ZpdGtpbmVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHRlc3QgcnViYmVyLWJhbmRpbmcgb3ZlcmhhbmcgZHJhd2luZyBhbG9uZyB3aXRoIGxheW91
dCB0ZXN0cyBmb3IgZXhpc3RpbmcgQ2hyb21pdW0gTWFjIG92ZXJoYW5nIGRyYXdpbmcgaW4gdGhl
IG5vbi1ncHUgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAppbmRleCA2MWM4MDE1YTkzZjdiNjBmNmVkZjAwMzljZWU2NmQyODQ5YTIy
OWJmLi4zMTZkMmQ1ZmVmMTRlMWIwMGVlMGNiYjQyZGY4NTczNzE4ZTU5OGM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OTAs
NyArNTkwLDggQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAg
ICAgICAgICAgICBmb2N1c1BsdWdpbkVsZW1lbnQoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEFk
anVzdCBtb3VzZSBjb29yZGluYXRlcyB0byBhY2NvdW50IGZvciBwYWdlU2NhbGVGYWN0b3IKLSAg
ICAgICAgV2ViTW91c2VFdmVudCBldmVudFdpdGhTY2FsZWRDb29yZGluYXRlcygqc3RhdGljX2Nh
c3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KGN1cnJlbnRFdmVudCksIGZyYW1lKCktPnBhZ2VTY2Fs
ZUZhY3RvcigpKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gZnJhbWUoKS0+cGFn
ZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnRXaXRoU2NhbGVkQ29v
cmRpbmF0ZXMoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPihjdXJyZW50RXZlbnQp
LCBwYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICBkaWRIYW5kbGVFdmVudCA9IG1fcGx1Z2luLT5o
YW5kbGVNb3VzZUV2ZW50KGV2ZW50V2l0aFNjYWxlZENvb3JkaW5hdGVzKTsKICAgICB9IGVsc2Ug
aWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCAmJiBjdXJy
ZW50RXZlbnQtPnR5cGUoKSA9PSBXZWJFdmVudDo6V2hlZWwpIHsKICAgICAgICAgLy8gV2UgaGF2
ZSBhIHdoZWVsIGV2ZW50LgpAQCAtNjU3LDcgKzY1OCw4IEBAIHZvaWQgUGx1Z2luVmlldzo6dmll
d0dlb21ldHJ5RGlkQ2hhbmdlKCkKICAgICBJbnRSZWN0IGZyYW1lUmVjdEluV2luZG93Q29vcmRp
bmF0ZXMgPSBwYXJlbnQoKS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7CiAgICAgCiAg
ICAgLy8gQWRqdXN0IGJvdW5kcyB0byBhY2NvdW50IGZvciBwYWdlU2NhbGVGYWN0b3IKLSAgICBm
cmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBmcmFtZSgpLT5wYWdlU2NhbGVG
YWN0b3IoKSk7CisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gZnJhbWUtPnBhZ2VTY2FsZUZh
Y3RvcigpOworICAgIGZyYW1lUmVjdEluV2luZG93Q29vcmRpbmF0ZXMuc2NhbGUoMSAvIHBhZ2VT
Y2FsZUZhY3Rvcik7CiAgICAgbV9wbHVnaW4tPmdlb21ldHJ5RGlkQ2hhbmdlKGZyYW1lUmVjdElu
V2luZG93Q29vcmRpbmF0ZXMsIGNsaXBSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpKTsKIH0KIApA
QCAtNjgzLDcgKzY4NSw4IEBAIEludFJlY3QgUGx1Z2luVmlldzo6Y2xpcFJlY3RJbldpbmRvd0Nv
b3JkaW5hdGVzKCkgY29uc3QKICAgICAvLyBJbnRlcnNlY3QgdGhlIHR3byByZWN0cyB0byBnZXQg
dGhlIHZpZXcgY2xpcCByZWN0IGluIHdpbmRvdyBjb29yZGluYXRlcy4KICAgICBmcmFtZVJlY3RJ
bldpbmRvd0Nvb3JkaW5hdGVzLmludGVyc2VjdCh3aW5kb3dDbGlwUmVjdCk7CiAKLSAgICBmcmFt
ZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBmcmFtZS0+cGFnZVNjYWxlRmFjdG9y
KCkpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3Io
KTsKKyAgICBmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLnNjYWxlKDEgLyBwYWdlU2NhbGVG
YWN0b3IpOwogICAgIHJldHVybiBmcmFtZVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDAyNDllOTY1Y2NmN2ZmY2VmODRk
Y2E0MDQyYjc4NDk3NmQzNDUwODEuLjkyNDgyZDE0NGE3N2QyZWQyMDI4NWNlNzUyODdjMmY5ZWVk
MGRhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00NDMsNyArNDQz
LDggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkK
IAogICAgIC8vIE9ubHkgcmVzdG9yZSB0aGUgc2NhbGUgZmFjdG9yIGZvciBzdGFuZGFyZCBmcmFt
ZSBsb2FkcyAob2YgdGhlIG1haW4gZnJhbWUpLgogICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFt
ZSgpICYmIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZFR5cGUoKSA9PSBGcmFt
ZUxvYWRUeXBlU3RhbmRhcmQpIHsKLSAgICAgICAgaWYgKG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5w
YWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+Y29y
ZUZyYW1lKCktPnBhZ2UoKTsKKyAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFj
dG9yKCkgIT0gMSkKICAgICAgICAgICAgIHdlYlBhZ2UtPnNjYWxlUGFnZSgxLCBJbnRQb2ludCgp
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggZjM0NmQxM2IyNDI2ZDE1ZjU3Mzg1NzBkMjU1MTliNTQ0Zjc0NzRkZi4uODkx
NWJmNGNmNzFiMTJkNmVkODVmMTRkZmE3YzgyYmViY2M4N2I5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzc3LDIwICs3NzcsMTQgQEAg
dm9pZCBXZWJQYWdlOjpzZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKGRvdWJsZSBwYWdlWm9vbUZh
Y3RvciwgZG91YmxlIHRleHRab29tRmEKIAogdm9pZCBXZWJQYWdlOjpzY2FsZVBhZ2UoZG91Ymxl
IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogewotICAgIEZyYW1lKiBmcmFtZSA9IG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47
Ci0gICAgZnJhbWUtPnNjYWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKKyAgICBtX3BhZ2UtPnNldFBh
Z2VTY2FsZUZhY3RvcihzY2FsZSwgb3JpZ2luKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKHNjYWxlKSk7CiB9CiAKIGRvdWJsZSBX
ZWJQYWdlOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewotICAgIEZyYW1lKiBmcmFtZSA9IG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4g
MTsKLSAgICByZXR1cm4gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBtX3Bh
Z2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldERldmljZVNjYWxl
RmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106804</attachid>
            <date>2011-09-08 15:37:56 -0700</date>
            <delta_ts>2011-09-09 11:43:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110908183754.patch</filename>
            <type>text/plain</type>
            <size>23665</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ3NjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjBmNWYwM2VjMzgyNTYz
ZDExYzJjNjVkYjVlMzA4YjI4M2UzNzNhLi42OGYwNmQ0Y2VlN2NhM2IzMzViNmY2Njk0NWU3MjE0
ZTA0ZWU0NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDktMDggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgor
ICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1
YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBsb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRy
b2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGFnZS9GcmFtZS5o
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwYWdlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3Np
dGluZ1RvRW5jbG9zaW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMp
OgorCiAyMDExLTA5LTA3ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgUmF3U291cmNlQ29kZS5jcmVh
dGVTb3VyY2VNYXBwaW5nSWZOZWVkZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDYxOTQ0ZTBh
MjMyMDVmNmFkMzFkMjFiNzYwZmE0NTEyMzNmM2VhYWEuLjg5MzMzNTNjZDU2NjYyZTQ5YTNiMTA2
Zjk0ZmI1ZjFjOTgyYzYxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MjAsNiArNzIwLDcg
QEAgX19aTjdXZWJDb3JlNFBhZ2UyN3NldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZEViCiBfX1pO
N1dlYkNvcmU0UGFnZTMxc2V0Q3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZUVpCiBfX1pON1dl
YkNvcmU0UGFnZTMxc2V0Q3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheUVkCiBfX1pON1dlYkNv
cmU0UGFnZTMyc2V0TWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWRFYgorX19aTjdXZWJDb3Jl
NFBhZ2UxOHNldFBhZ2VTY2FsZUZhY3RvckVmUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmU0
UGFnZTM3c2V0SW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZUViCiBfX1pON1dlYkNv
cmU0UGFnZTZnb0JhY2tFdgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9y
eUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQpAQCAtNzUwLDcgKzc1MSw2IEBAIF9fWk43V2ViQ29y
ZTVGcmFtZTI4c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudEVQN05TQXJyYXlQTlNfN0VsZW1l
bnRFUG1QYgogX19aTjdXZWJDb3JlNUZyYW1lNmNyZWF0ZUVQTlNfNFBhZ2VFUE5TXzIxSFRNTEZy
YW1lT3duZXJFbGVtZW50RVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19aTjdXZWJDb3JlNUZy
YW1lN3NldFZpZXdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOUZyYW1lVmlld0VFRQogX19aTjdXZWJD
b3JlNUZyYW1lOW5vZGVJbWFnZUVQTlNfNE5vZGVFCi1fX1pON1dlYkNvcmU1RnJhbWU5c2NhbGVQ
YWdlRWZSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTVGcmFtZUQxRXYKIF9fWk43V2ViQ29y
ZTVJbWFnZTludWxsSW1hZ2VFdgogX19aTjdXZWJDb3JlNUltYWdlMTJzdXBwb3J0c1R5cGVFUktO
M1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXgg
MTY3YTAxOWE2NmQyNjdkMTFlNzU5M2FkZDg2MzkwMzRlOTA2YTNkNS4uODFhNWIyZTg5YmUyOTQ0
OGJhY2ExZTNhN2RmMGI2ZTc1NWFjMjdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcApAQCAtMTA1OCw3ICsxMDU4LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCiAg
ICAgZG9jdW1lbnRTdHlsZS0+c2V0RGlzcGxheShCTE9DSyk7CiAgICAgZG9jdW1lbnRTdHlsZS0+
c2V0UlRMT3JkZXJpbmcoZG9jdW1lbnQtPnZpc3VhbGx5T3JkZXJlZCgpID8gVmlzdWFsT3JkZXIg
OiBMb2dpY2FsT3JkZXIpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUgPyBmcmFt
ZS0+cGFnZVpvb21GYWN0b3IoKSA6IDEpOwotICAgIGRvY3VtZW50U3R5bGUtPnNldFBhZ2VTY2Fs
ZVRyYW5zZm9ybShmcmFtZSA/IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOworICAgIGRv
Y3VtZW50U3R5bGUtPnNldFBhZ2VTY2FsZVRyYW5zZm9ybShkb2N1bWVudC0+cGFnZSgpID8gZG9j
dW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVudFN0eWxl
LT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJVEUgOiBS
RUFEX09OTFkpOwogCiAgICAgRWxlbWVudCogZG9jRWxlbWVudCA9IGRvY3VtZW50LT5kb2N1bWVu
dEVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyZjJiNjIzYjdjMjExYjJmYzRl
ZmZhYTU3N2RiYjVlNTEyYjllZWVjLi44MWEzZjlhODhlNjg5ZTM3MmQzNDkxZWEzY2RlNDE5MzBi
NDMxZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01MTQsMTAgKzUxNCw4IEBAIFBhc3NS
ZWZQdHI8Q2xpZW50UmVjdExpc3Q+IEVsZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKICAgICByZW5k
ZXJCb3hNb2RlbE9iamVjdC0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CiAKICAgICBmbG9hdCBwYWdl
U2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0g
ICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAg
IHBhZ2VTY2FsZSA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpIAorICAgICAgICBwYWdlU2NhbGUgPSBwYWdl
LT5wYWdlU2NhbGVGYWN0b3IoKTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVu
dCgpLT52aWV3KCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCB2aXNpYmxlQ29udGVudFJlY3QgPSB2
aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKQEAgLTU2NSwxMCArNTYzLDggQEAgUGFzc1JlZlB0
cjxDbGllbnRSZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQogICAgIH0KIAog
ICAgIGFkanVzdEZsb2F0UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRlcmVyKCkpOwot
ICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIGFkanVzdEZsb2F0
UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAg
fQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICBhZGp1
c3RGbG9hdFJlY3RGb3JQYWdlU2NhbGUocmVzdWx0LCBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7
CiAKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcAppbmRleCAzZWM1NjBmZDUzYTAxYTVkMjFmYTE1Mjg0ODAzMDA4MWEwODhmYjEwLi45MWEy
MWQ4MTE0OGIxNzYwMjkzMWYwYTM1YTVkYTVjOTQzOTBlMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAK
QEAgLTIwMjgsMTAgKzIwMjgsOCBAQCBzdGF0aWMgdm9pZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Ny
b2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKFZlY3RvcjxGbG9hdFF1YQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmbG9hdCBwYWdlU2NhbGUgPSAxOwotICAgIGlmIChQYWdlKiBwYWdlID0g
ZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFp
bkZyYW1lKCkpCi0gICAgICAgICAgICBwYWdlU2NhbGUgPSBmcmFtZS0+cGFnZVNjYWxlRmFjdG9y
KCk7Ci0gICAgfQorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAg
ICAgcGFnZVNjYWxlID0gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiAKICAgICBMYXlvdXRSZWN0
IHZpc2libGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IDVjMzlmOTZmMDQ2NmQ4ZWU1ZjZj
ZmFjMzlmNDE5NWRiNjM4OWQ5NDYuLjE2MzViNDVmM2RiMDljNjkyOTc0MjhhNThiNjM2MDkxOTc4
YTIyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApA
QCAtMTI1LDcgKzEyNSw4IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQ
b3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUt
PnZpZXcoKSkgewogICAgICAgICBpZiAoIXZpZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAg
ICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBv
aW50KCkpOwotICAgICAgICAgICAgbV9mcmFtZS0+c2NhbGVQYWdlKG1fY3VycmVudEl0ZW0tPnBh
Z2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICAgICAg
ICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBh
Z2UtPnNldFBhZ2VTY2FsZUZhY3RvcihtX2N1cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSwg
bV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IGJkZGFlNjExMzFmZDVkYzI5NWMwOTcxM2QyZjE0MzczZDVhYzFj
NmMuLmU4OTFlODc2OTBmNGUzYjJjMjBjZGQwYzg4NDhkMTdjMWM2ODVjYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBw
YWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKICAg
ICAsIG1fYW5pbWF0aW9uQ29udHJvbGxlcih0aGlzKQogICAgICwgbV9wYWdlWm9vbUZhY3Rvcihw
YXJlbnRQYWdlWm9vbUZhY3Rvcih0aGlzKSkKICAgICAsIG1fdGV4dFpvb21GYWN0b3IocGFyZW50
VGV4dFpvb21GYWN0b3IodGhpcykpCi0gICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogI2lmIEVO
QUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgLCBtX29yaWVudGF0aW9uKDApCiAjZW5kaWYK
QEAgLTEwMjYsNiArMTAyNSwxNCBAQCB2b2lkIEZyYW1lOjpzZXRQYWdlQW5kVGV4dFpvb21GYWN0
b3JzKGZsb2F0IHBhZ2Vab29tRmFjdG9yLCBmbG9hdCB0ZXh0Wm9vbUZhY3RvcgogICAgICAgICBw
YWdlLT5iYWNrRm9yd2FyZCgpLT5tYXJrUGFnZXNGb3JGdWxsU3R5bGVSZWNhbGMoKTsKIH0KIAor
ZmxvYXQgRnJhbWU6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgUGFnZSogcGFnZSA9
IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAxOworICAgIHJl
dHVybiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIHZvaWQgRnJhbWU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgp
CiB7CkBAIC0xMDM3LDMzICsxMDQ0LDYgQEAgdm9pZCBGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCkKICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5kZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWQoKTsKIH0KICNlbmRpZgotCi12b2lkIEZyYW1lOjpzY2FsZVBhZ2Uo
ZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pCi17Ci0gICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoc2NhbGUgIT0gbV9wYWdlU2NhbGVGYWN0b3IpIHsKLSAgICAg
ICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZTsKLQotICAgICAgICBpZiAoZG9jdW1lbnQtPnJl
bmRlcmVyKCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlv
dXQodHJ1ZSk7Ci0KLSAgICAgICAgZG9jdW1lbnQtPnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsK
LQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgZGV2aWNlT3JQYWdl
U2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBpZiAoRnJhbWVWaWV3
KiB2aWV3ID0gdGhpcy0+dmlldygpKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIo
KSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJz
dExheW91dCgpKQotICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7Ci0gICAgICAgIHZpZXctPnNl
dFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0gICAgfQotfQotCiB2b2lkIEZyYW1lOjpub3RpZnlD
aHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0CiB7CiAgICAg
Ly8gRW5zdXJlIHRoYXQgdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIG9uIHRoZSBtYWluIGZy
YW1lIG9mIHRoZSBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDM1ZmU4YTI3ZDFmOGExOGRiYzYz
MDdlMzk1ZGUwNGUzMmRiM2JhMGQuLjgwNDE0YTgzNmNhNTZjOWFlNmZlYmE0Y2FlMmUxNDhkYjU3
NGIyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE2MSw5ICsxNjEsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGZsb2F0IHRleHRab29tRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0Wm9vbUZhY3RvcjsgfQogICAgICAgICB2b2lkIHNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMo
ZmxvYXQgcGFnZVpvb21GYWN0b3IsIGZsb2F0IHRleHRab29tRmFjdG9yKTsKIAotICAgICAgICAv
LyBGSVhNRTogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBtb3ZlIHRvIFBhZ2UuCi0gICAgICAgIHZv
aWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKTsKLSAg
ICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVG
YWN0b3I7IH0KKyAgICAgICAgLy8gQ29udmVuaWVuY2UgaGVscGVyIG1ldGhvZCB0aGF0IGdyYWJz
IHRoZSBwYWdlU2NhbGVGYWN0b3IgZnJvbSBQYWdlLgorICAgICAgICBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IoKSBjb25zdDsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAg
ICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICNlbmRpZgpAQCAtMjQx
LDggKzI0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbV9wYWdlWm9v
bUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV90ZXh0Wm9vbUZhY3RvcjsKIAotICAgICAgICBmbG9h
dCBtX3BhZ2VTY2FsZUZhY3RvcjsKLQogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAg
ICAgICAgIGludCBtX29yaWVudGF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBi
MThmZDM5MmU5ZDEwZGZkNTYwM2RiZDY1ZjVhZTEzMjliYzE5YzdkLi40MDcyYzkwZGYyZmFkYWQ3
MGU3OGMzNDU1ZTY4ZWE5Njg3ZjZiZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE0Nyw2ICsx
NDcsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fY29v
a2llRW5hYmxlZCh0cnVlKQogICAgICwgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxl
ZCh0cnVlKQogICAgICwgbV9tZWRpYVZvbHVtZSgxKQorICAgICwgbV9wYWdlU2NhbGVGYWN0b3Io
MSkKICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1famF2YVNjcmlwdFVSTHNB
cmVBbGxvd2VkKHRydWUpCiAgICAgLCBtX2RpZExvYWRVc2VyU3R5bGVTaGVldChmYWxzZSkKQEAg
LTYwOCw2ICs2MDksMzQgQEAgdm9pZCBQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUp
CiAgICAgfQogfQogCit2b2lkIFBhZ2U6OnNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSwg
Y29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikKK3sKKyAgICBpZiAoc2NhbGUgPT0gbV9wYWdlU2Nh
bGVGYWN0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1h
aW5GcmFtZSgpLT5kb2N1bWVudCgpOworCisgICAgbV9wYWdlU2NhbGVGYWN0b3IgPSBzY2FsZTsK
KworICAgIGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAgZG9jdW1lbnQtPnJlbmRl
cmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCisgICAgZG9jdW1lbnQtPnJlY2FsY1N0eWxl
KE5vZGU6OkZvcmNlKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBt
YWluRnJhbWUoKS0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisjZW5kaWYKKwor
ICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBkb2N1bWVudC0+dmlldygpKSB7CisgICAgICAgIGlm
ICh2aWV3LT5zY3JvbGxQb3NpdGlvbigpICE9IG9yaWdpbikgeworICAgICAgICAgIGlmIChkb2N1
bWVudC0+cmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSAm
JiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQorICAgICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsK
KyAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihvcmlnaW4pOworICAgICAgICB9Cisg
ICAgfQorfQorCisKIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVG
YWN0b3IpCiB7CiAgICAgaWYgKG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gc2NhbGVGYWN0b3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCmluZGV4IGVmZDEzMDMzMzM2ZTlkMWUzN2I3YjBlNGQyYjQyZjE2Nzg3ZWZjYTku
LmQ1YzIzOTczOGE0NzRhZTIxYmQzMTI0Mjg1YmUyZjA5NGZmODI3OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5j
bHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUg
IlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0yNDMsNiArMjQ0LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBmbG9hdCBtZWRpYVZvbHVtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFWb2x1bWU7IH0KICAgICAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUp
OwogCisgICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBM
YXlvdXRQb2ludCYgb3JpZ2luKTsKKyAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KKwogICAgICAgICBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICAg
ICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKQEAgLTM2OSw2ICszNzMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVu
dENhbGxzRW5hYmxlZDsKICAgICAgICAgZmxvYXQgbV9tZWRpYVZvbHVtZTsKIAorICAgICAgICBm
bG9hdCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3Rv
cjsKIAogICAgICAgICBib29sIG1famF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBh
Yzg0MTU2M2ZlMWU1YmZjNDBlMDhlMmY0MzY2Y2Q4NGQ3YmU5ZGU5Li5lZmNkOWUwNTI2ZGRhNDFj
NGM0MGZkNGNiMTA1ZjM0MThlZTJiZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI1MSw3ICsxMjUxLDcgQEAgYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNs
b3NpbmdGcmFtZSgpIGNvbnN0CiAgICAgLy8gZG9jdW1lbnQsIG9yIHRoZSBwYXJlbnQgaXMgYWxy
ZWFkeSBjb21wb3NpdGluZywgb3IgdGhlIG1haW4gZnJhbWUgaXMgc2NhbGVkLgogICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CiAgICAgUGFnZSog
cGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgaWYgKHBhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOwpAQCAtMTU2Niw3
ICsxNTY2LDcgQEAgZmxvYXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYWN0b3Io
KSBjb25zdAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggMWFmMmM5NWQzZTNjZTQ3Y2VlMDE5MjQyM2QxMjEzZWU0NjZjODE2My4uNjA1ZmJk
NmRkYzIzOWY4YWUzNDJhMTk1YzY5YjY4MmZhZTA4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxv
d1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIgpAQCAtMjI2LDEwICsyMjcsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgUmVuZGVyQm94KiByb290Qm94ID0gcm9vdFJlbmRlcmVyLT5pc0JveCgpID8gdG9S
ZW5kZXJCb3gocm9vdFJlbmRlcmVyKSA6IDA7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdwb3J0ID0g
cm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJveC0+d2lk
dGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwogICAgIH0K
LQotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDE7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWVWaWV3LT5mcmFtZSgpKQotICAgICAgICBwYWdlU2NhbGVGYWN0b3IgPSBmcmFtZS0+
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBh
Z2UoKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCkgOiAxOwogCiAgICAgLy8gSWYgcGFpbnRpbmcgd2lsbCBlbnRpcmVseSBmaWxsIHRo
ZSB2aWV3LCBubyBuZWVkIHRvIGZpbGwgdGhlIGJhY2tncm91bmQuCiAgICAgaWYgKHJvb3RGaWxs
c1ZpZXdwb3J0ICYmIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKGZpcnN0Q2hpbGQoKSkgJiYg
cGFnZVNjYWxlRmFjdG9yID49IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGE3NGQx
ZTg5NTdlYWEwMzljNzViZDcyNzk2NjhhNGU3ZjkzNTA0ZDMuLmQ2YTg4ZWNhNGFlNjk0ODMwYWVm
YTI5OTI5OTA5MWRkZTA0OTY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDktMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0g
dG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2Fs
ZVBhZ2UpOgorCiAyMDExLTA5LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgRnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0IGNhbiBjcmFzaCB3
aGVuIGNhbGxlZCBmcm9tIG9yIGFmdGVyIEZyYW1lTG9hZGVyOjpkZXRhY2hGcm9tUGFyZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNmMyOTJjMWQ1
ODA4NTg5ZWNkZTA1YWMyY2NhZDc0ZWE1YTI1NTJiMS4uNDY3MThkNGUzNzY5YWI2OGE4MmE2Yjli
MmFlM2UxYjdmMzYyYTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcApAQCAtMTg3NywxMSArMTg3Nyw3IEBAIGZsb2F0IFdlYlZpZXdJbXBsOjpwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdAogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm4gMS4wOwog
Ci0gICAgRnJhbWUqIGZyYW1lID0gcGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm4gMS4wOwotCi0gICAgcmV0dXJuIGZyYW1lLT5wYWdlU2NhbGVGYWN0
b3IoKTsKKyAgICByZXR1cm4gcGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6c2NhbGVQYWdlKGZsb2F0IHNjYWxlRmFjdG9yLCBXZWJQb2ludCBvcmlnaW4p
CkBAIC0xODg5LDExICsxODg1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2NhbGVQYWdlKGZsb2F0
IHNjYWxlRmFjdG9yLCBXZWJQb2ludCBvcmlnaW4pCiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZnJhbWUtPnNjYWxlUGFnZShzY2Fs
ZUZhY3Rvciwgb3JpZ2luKTsKKyAgICBwYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZh
Y3Rvciwgb3JpZ2luKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6aXNGaXhlZExheW91dE1vZGVF
bmFibGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5ZDcyM2I5ZGZjM2YxMTkyOWE4NWE4
NTczODhiMjI2ZWMwNDYyMjkyLi43ZDFiYzQ3ZjQ4YzQ5MWMyY2RiYjBkN2Q1NmMwOWUwOTIxMTk0
OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2NhbGVQYWdlQnkpOgorCiAyMDExLTA5LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBjb25maXJtQ29tcG9zaXRpb25XaXRob3V0RGlz
dHVyYmluZ1NlbGVjdGlvbiB0byBjYW5jZWxDb21wb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHAKaW5kZXggNWQ1YTA3ODIyNWViMDFiZTk5YzdkY2E5YjUyZDIwMjdjY2IyZjBmOS4uYTE0
ZTk0NjZlNDQ4ODcyMmJlZDRjMzE2MTY2ZDQ0N2UzZmY3OTk5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwCkBAIC04MDMsOSArODAzLDUgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNob3VsZENsb3NlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGZsb2F0
IHNjYWxlRmFjdG9yLCBmbG9hdCB4LCBmbG9hdCB5KQogewotICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBv
aW50KHgsIHkpKTsKKyAgICBjb3JlKHdlYlZpZXcpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IsIEludFBvaW50KHgsIHkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0YWRmYjU2MmE1
NWM1ZThkZjcxNTljMGU1MWM2YTliMDhlMzYxMzk2Li4wMjAzMDliNDhjMzVhM2JkMDg3ZGViYTMy
NWU1MzRjOGI4ZWVhZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEt
MDktMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92
ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2FsZVdlYlZpZXc6YXRPcmlnaW46
XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3ZpZXdTY2FsZUZhY3Rvcl0pOgorCiAyMDExLTA5LTA3
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByOTQ2MjcgYW5kIHI5NDYzMi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQppbmRleCAyNTI5NTc5ZGIxNjUwYTNkMmY3MTRlMDI3M2VjODFlYWY4
MTk0Nzg4Li42NGQ2YmYyYzg2NDBiY2YzOGRjMGY5NTFmNTc1NDc5MjU1MzM3YTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzMyLDIwICsyNzMyLDEyIEBAIHN0YXRp
YyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0
dGVybnMpCiAKIC0gKHZvaWQpX3NjYWxlV2ViVmlldzooZmxvYXQpc2NhbGUgYXRPcmlnaW46KE5T
UG9pbnQpb3JpZ2luCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZy
YW1lXTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZy
YW1lLT5zY2FsZVBhZ2Uoc2NhbGUsIEludFBvaW50KG9yaWdpbikpOworICAgIF9wcml2YXRlLT5w
YWdlLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGUsIEludFBvaW50KG9yaWdpbikpOwogfQogCiAt
IChmbG9hdClfdmlld1NjYWxlRmFjdG9yCiB7Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxm
IF9tYWluQ29yZUZyYW1lXTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDE7
Ci0KLSAgICByZXR1cm4gY29yZUZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4g
X3ByaXZhdGUtPnBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiAtICh2b2lkKV9zZXRVc2VG
aXhlZExheW91dDooQk9PTClmaXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzNTAwYmQwNDIwMjg2YWNh
YTg0Mzg4MTBjZmJkM2Q1NGUxM2JlODZlLi5kNTQ5ZjFlNDIxYWM4YmZiZGEyNGI0YmVjNWNkZmZi
YjJhNWE2NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTA4ICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNj
YWxlRmFjdG9yIGNvZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzY2FsZVBhZ2VCeSk6CisKIDIwMTEtMDktMDUgIEpvY2VseW4gVHVyY290dGUgIDxq
b2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSBUaWxl
ZERyYXdpbmdBcmVhIHJlcXVlc3QgdGlsZXMgb25seSBpbiB0aGUgZGlyZWN0aW9uIHRoZSB2aWV3
cG9ydCBpcyBwYW5uZWQgdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGVhZDVhYzJhZWE0
NjJhYjA3ZmVjNDI3ZGVkMTkyZjNkYTVkZWE2NDcuLjAzZTRiMzc1MmQxYzhjOTM1MmRkMTQxM2My
NTRlNWJiYmMyZGFlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03ODUsNyArNzg1LDgg
QEAgUVN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dmlld3BvcnRBc1RleHQoUVdlYlBh
Z2UqIHBhZ2UsIGludCBkZXZpY2VEUEksIGMKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnNjYWxlUGFnZUJ5KFFXZWJGcmFtZSogZnJhbWUsIGZsb2F0IHNjYWxlZmFjdG9yLCBjb25zdCBR
UG9pbnQmIG9yaWdpbikKIHsKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gUVdlYkZy
YW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7Ci0gICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVm
YWN0b3IsIG9yaWdpbik7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBjb3JlRnJhbWUtPnBhZ2UoKSkK
KyAgICAgICAgcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlZmFjdG9yLCBvcmlnaW4pOwog
fQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphY3RpdmVNb2NrRGV2aWNlT3JpZW50
YXRpb25DbGllbnQoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJmZTBlZjRmN2Q1MzgwM2QxZmJiOWJi
NmQwZjczNTBkOTNjMzVjMjYuLjlkM2ZmZDkzYzQ2MTBmMjdiNmEyZmY5YzNhNzBmZWM1ZDFhY2Uy
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wOS0wOCAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBj
b2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZVBhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwYWdlU2NhbGVGYWN0b3IpOgorCiAyMDExLTA5
LTA3ICBBbGV4ZWkgU3ZpdGtpbmUgIDxhc3ZpdGtpbmVAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHRlc3QgcnViYmVyLWJhbmRpbmcgb3Zlcmhhbmcg
ZHJhd2luZyBhbG9uZyB3aXRoIGxheW91dCB0ZXN0cyBmb3IgZXhpc3RpbmcgQ2hyb21pdW0gTWFj
IG92ZXJoYW5nIGRyYXdpbmcgaW4gdGhlIG5vbi1ncHUgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggMDI0OWU5NjVjY2Y3ZmZjZWY4NGRjYTQwNDJiNzg0OTc2ZDM0
NTA4MS4uOTI0ODJkMTQ0YTc3ZDJlZDIwMjg1Y2U3NTI4N2MyZjllZWQwZGFhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQ0Myw3ICs0NDMsOCBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQogCiAgICAgLy8gT25seSBy
ZXN0b3JlIHRoZSBzY2FsZSBmYWN0b3IgZm9yIHN0YW5kYXJkIGZyYW1lIGxvYWRzIChvZiB0aGUg
bWFpbiBmcmFtZSkuCiAgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVTdGFuZGFy
ZCkgewotICAgICAgICBpZiAobV9mcmFtZS0+Y29yZUZyYW1lKCktPnBhZ2VTY2FsZUZhY3Rvcigp
ICE9IDEpCisgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+cGFnZSgp
OworICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQogICAg
ICAgICAgICAgd2ViUGFnZS0+c2NhbGVQYWdlKDEsIEludFBvaW50KCkpOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmMzQ2
ZDEzYjI0MjZkMTVmNTczODU3MGQyNTUxOWI1NDRmNzQ3NGRmLi44OTE1YmY0Y2Y3MWIxMmQ2ZWQ4
NWYxNGRmYTdjODJiZWJjYzg3Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03NzcsMjAgKzc3NywxNCBAQCB2b2lkIFdlYlBhZ2U6OnNl
dFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoZG91YmxlIHBhZ2Vab29tRmFjdG9yLCBkb3VibGUgdGV4
dFpvb21GYQogCiB2b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IElu
dFBvaW50JiBvcmlnaW4pCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBmcmFtZS0+c2Nh
bGVQYWdlKHNjYWxlLCBvcmlnaW4pOworICAgIG1fcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNj
YWxlLCBvcmlnaW4pOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlU2Nh
bGVGYWN0b3JEaWRDaGFuZ2Uoc2NhbGUpKTsKIH0KIAogZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2Fs
ZUZhY3RvcigpIGNvbnN0CiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVG
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAxOwotICAgIHJldHVybiBm
cmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxlRmFj
dG9yKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2Nh
bGVGYWN0b3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106893</attachid>
            <date>2011-09-09 11:43:41 -0700</date>
            <delta_ts>2011-09-09 16:39:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67250-20110909144339.patch</filename>
            <type>text/plain</type>
            <size>23858</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ4NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NmMzYTkzY2YyMGVkNjM0
YzQ5ZmEyMWI5ZGE0NzliY2M0OTY5Y2JmLi41NTMyMGM0Y2UyN2JhOWQ4NjdjODM3MTg5YTNiZDJk
MDlkOGFhYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDktMDkgIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVG
YWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRDbGllbnRSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgor
ICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RGbG9hdFF1
YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kUGFnZVNjYWxlKToKKyAgICAgICAgKiBsb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRy
b2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGFnZS9GcmFtZS5o
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwYWdlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3Np
dGluZ1RvRW5jbG9zaW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMp
OgorCiAyMDExLTA5LTA5ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJvZHVjZSBKYXZhU2NyaXB0U291cmNlRnJh
bWUgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDYxOTQ0ZTBhMjMyMDVmNmFkMzFkMjFi
NzYwZmE0NTEyMzNmM2VhYWEuLmEwYzRiNjNlMzNkY2FhNDUyMWM5NTI2YzAwMWMwYWRiYjhjZjU4
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MjAsNiArNzIwLDcgQEAgX19aTjdXZWJDb3Jl
NFBhZ2UyN3NldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZEViCiBfX1pON1dlYkNvcmU0UGFnZTMx
c2V0Q3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZUVpCiBfX1pON1dlYkNvcmU0UGFnZTMxc2V0
Q3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheUVkCiBfX1pON1dlYkNvcmU0UGFnZTMyc2V0TWVt
b3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWRFYgorX19aTjdXZWJDb3JlNFBhZ2UxOHNldFBhZ2VT
Y2FsZUZhY3RvckVmUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmU0UGFnZTM3c2V0SW5Mb3dR
dWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZUViCiBfX1pON1dlYkNvcmU0UGFnZTZnb0JhY2tF
dgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNGcmFt
ZUxvYWRUeXBlRQpAQCAtNzQ0LDEzICs3NDUsMTMgQEAgX19aTjdXZWJDb3JlNUZyYW1lMTdzZXRQ
YWdlWm9vbUZhY3RvckVmCiBfX1pON1dlYkNvcmU1RnJhbWUxN3NldFRleHRab29tRmFjdG9yRWYK
IF9fWk43V2ViQ29yZTVGcmFtZTIzdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRFUktOU184SW50UG9p
bnRFCiBfX1pON1dlYkNvcmU1RnJhbWUyNW1hdGNoTGFiZWxzQWdhaW5zdEVsZW1lbnRFUDdOU0Fy
cmF5UE5TXzdFbGVtZW50RQorX19aTks3V2ViQ29yZTVGcmFtZTE1cGFnZVNjYWxlRmFjdG9yRXYK
IF9fWk43V2ViQ29yZTVGcmFtZTI1c2V0UGFnZUFuZFRleHRab29tRmFjdG9yc0VmZgogX19aTjdX
ZWJDb3JlNUZyYW1lMjdyZXNpemVQYWdlUmVjdHNLZWVwaW5nUmF0aW9FUktOU185RmxvYXRTaXpl
RVMzXwogX19aTjdXZWJDb3JlNUZyYW1lMjhzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbGVtZW50RVA3
TlNBcnJheVBOU183RWxlbWVudEVQbVBiCiBfX1pON1dlYkNvcmU1RnJhbWU2Y3JlYXRlRVBOU180
UGFnZUVQTlNfMjFIVE1MRnJhbWVPd25lckVsZW1lbnRFUE5TXzE3RnJhbWVMb2FkZXJDbGllbnRF
CiBfX1pON1dlYkNvcmU1RnJhbWU3c2V0Vmlld0VOM1dURjEwUGFzc1JlZlB0cklOU185RnJhbWVW
aWV3RUVFCiBfX1pON1dlYkNvcmU1RnJhbWU5bm9kZUltYWdlRVBOU180Tm9kZUUKLV9fWk43V2Vi
Q29yZTVGcmFtZTlzY2FsZVBhZ2VFZlJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNUZyYW1l
RDFFdgogX19aTjdXZWJDb3JlNUltYWdlOW51bGxJbWFnZUV2CiBfX1pON1dlYkNvcmU1SW1hZ2Ux
MnN1cHBvcnRzVHlwZUVSS04zV1RGNlN0cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAppbmRleCAxNjdhMDE5YTY2ZDI2N2QxMWU3NTkzYWRkODYzOTAzNGU5MDZhM2Q1
Li44MWE1YjJlODliZTI5NDQ4YmFjYTFlM2E3ZGYwYjZlNzU1YWMyN2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBQYXNzUmVm
UHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NLKTsKICAg
ICBkb2N1bWVudFN0eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVk
KCkgPyBWaXN1YWxPcmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0
Wm9vbShmcmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7Ci0gICAgZG9jdW1lbnRT
dHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3Rv
cigpIDogMSk7CisgICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGRvY3Vt
ZW50LT5wYWdlKCkgPyBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOwog
ICAgIGRvY3VtZW50U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgp
ID8gUkVBRF9XUklURSA6IFJFQURfT05MWSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0g
ZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDJm
MmI2MjNiN2MyMTFiMmZjNGVmZmFhNTc3ZGJiNWU1MTJiOWVlZWMuLjgxYTNmOWE4OGU2ODllMzcy
ZDM0OTFlYTNjZGU0MTkzMGI0MzFmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTUxNCwx
MCArNTE0LDggQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50
UmVjdHMoKQogICAgIHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRzKTsK
IAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVu
dCgpLT5wYWdlKCkpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFt
ZSgpKQotICAgICAgICAgICAgcGFnZVNjYWxlID0gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOwot
ICAgIH0KKyAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgCisgICAgICAg
IHBhZ2VTY2FsZSA9IHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogCiAgICAgaWYgKEZyYW1lVmll
dyogdmlldyA9IGRvY3VtZW50KCktPnZpZXcoKSkgewogICAgICAgICBMYXlvdXRSZWN0IHZpc2li
bGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwpAQCAtNTY1LDEwICs1
NjMsOCBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpCiAgICAgfQogCiAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yQWJzb2x1dGVab29tKHJlc3Vs
dCwgcmVuZGVyZXIoKSk7Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkp
IHsKLSAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAg
ICAgICAgYWRqdXN0RmxvYXRSZWN0Rm9yUGFnZVNjYWxlKHJlc3VsdCwgZnJhbWUtPnBhZ2VTY2Fs
ZUZhY3RvcigpKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdl
KCkpCisgICAgICAgIGFkanVzdEZsb2F0UmVjdEZvclBhZ2VTY2FsZShyZXN1bHQsIHBhZ2UtPnBh
Z2VTY2FsZUZhY3RvcigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDNlYzU2MGZkNTNhMDFhNWQyMWZhMTUyODQ4MDMw
MDgxYTA4OGZiMTAuLjkxYTIxZDgxMTQ4YjE3NjAyOTMxZjBhMzVhNWRhNWM5NDM5MGUyNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmNwcApAQCAtMjAyOCwxMCArMjAyOCw4IEBAIHN0YXRpYyB2b2lkIGFkanVz
dEZsb2F0UXVhZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRQYWdlU2NhbGUoVmVjdG9yPEZs
b2F0UXVhCiAgICAgICAgIHJldHVybjsKIAogICAgIGZsb2F0IHBhZ2VTY2FsZSA9IDE7Ci0gICAg
aWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2VTY2FsZSA9IGZyYW1l
LT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVu
dC0+cGFnZSgpKQorICAgICAgICBwYWdlU2NhbGUgPSBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsK
IAogICAgIExheW91dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggNWMz
OWY5NmYwNDY2ZDhlZTVmNmNmYWMzOWY0MTk1ZGI2Mzg5ZDk0Ni4uMTYzNWI0NWYzZGIwOWM2OTI5
NzQyOGE1OGI2MzYwOTE5NzhhMjJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuY3BwCkBAIC0xMjUsNyArMTI1LDggQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxl
cjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBpZiAoRnJhbWVWaWV3
KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7CiAgICAgICAgIGlmICghdmlldy0+d2FzU2Nyb2xs
ZWRCeVVzZXIoKSkgewogICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obV9jdXJy
ZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5zY2FsZVBhZ2Uo
bV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCksIG1fY3VycmVudEl0ZW0tPnNjcm9sbFBv
aW50KCkpOworICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisg
ICAgICAgICAgICAgICAgcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKG1fY3VycmVudEl0ZW0tPnBh
Z2VTY2FsZUZhY3RvcigpLCBtX2N1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKICAgICAgICAg
fQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYmRkYWU2MTEzMWZkNWRjMjk1YzA5
NzEzZDJmMTQzNzNkNWFjMWM2Yy4uZTg5MWU4NzY5MGY0ZTNiMmMyMGNkZDBjODg0OGQxN2MxYzY4
NWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTE2MCw3ICsxNjAsNiBAQCBpbmxpbmUgRnJh
bWU6OkZyYW1lKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50
LCBGcmFtZUxvYWRlcgogICAgICwgbV9hbmltYXRpb25Db250cm9sbGVyKHRoaXMpCiAgICAgLCBt
X3BhZ2Vab29tRmFjdG9yKHBhcmVudFBhZ2Vab29tRmFjdG9yKHRoaXMpKQogICAgICwgbV90ZXh0
Wm9vbUZhY3RvcihwYXJlbnRUZXh0Wm9vbUZhY3Rvcih0aGlzKSkKLSAgICAsIG1fcGFnZVNjYWxl
RmFjdG9yKDEpCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICAsIG1fb3JpZW50
YXRpb24oMCkKICNlbmRpZgpAQCAtMTAyNiw2ICsxMDI1LDE0IEBAIHZvaWQgRnJhbWU6OnNldFBh
Z2VBbmRUZXh0Wm9vbUZhY3RvcnMoZmxvYXQgcGFnZVpvb21GYWN0b3IsIGZsb2F0IHRleHRab29t
RmFjdG9yCiAgICAgICAgIHBhZ2UtPmJhY2tGb3J3YXJkKCktPm1hcmtQYWdlc0ZvckZ1bGxTdHls
ZVJlY2FsYygpOwogfQogCitmbG9hdCBGcmFtZTo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKK3sK
KyAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgcmV0dXJuIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOworfQorCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBGcmFtZTo6ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCkKIHsKQEAgLTEwMzcsMzMgKzEwNDQsNiBAQCB2b2lkIEZyYW1lOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogICAgICAgICByb290LT5jb21wb3NpdG9y
KCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogI2VuZGlmCi0KLXZvaWQg
RnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgTGF5b3V0UG9pbnQmIG9yaWdpbikK
LXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICgh
ZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzY2FsZSAhPSBtX3BhZ2VTY2Fs
ZUZhY3RvcikgewotICAgICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwotCi0gICAgICAg
IGlmIChkb2N1bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5yZW5kZXJl
cigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLQotICAgICAgICBkb2N1bWVudC0+cmVjYWxjU3R5
bGUoTm9kZTo6Rm9yY2UpOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
ICAgICBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgotICAgIH0KLQot
ICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSB0aGlzLT52aWV3KCkpIHsKLSAgICAgICAgaWYgKGRv
Y3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigpLT5uZWVkc0xheW91dCgp
ICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCi0gICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsK
LSAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKLSAgICB9Ci19Ci0KIHZv
aWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2Vk
KCkgY29uc3QKIHsKICAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxs
ZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggMzVm
ZThhMjdkMWY4YTE4ZGJjNjMwN2UzOTVkZTA0ZTMyZGIzYmEwZC4uODA0MTRhODM2Y2E1NmM5YWU2
ZmViYTRjYWUyZTE0OGRiNTc0YjI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTYxLDkgKzE2MSw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgdGV4dFpvb21GYWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CiAgICAgICAgIHZvaWQgc2V0UGFnZUFu
ZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxvYXQgdGV4dFpvb21GYWN0
b3IpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG1vdmUgdG8g
UGFnZS4KLSAgICAgICAgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGUsIGNvbnN0IExheW91dFBv
aW50JiBvcmlnaW4pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQorICAgICAgICAvLyBDb252ZW5pZW5jZSBoZWxwZXIg
bWV0aG9kIHRoYXQgZ3JhYnMgdGhlIHBhZ2VTY2FsZUZhY3RvciBmcm9tIFBhZ2UuCisgICAgICAg
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgICAgICB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgp
OwogI2VuZGlmCkBAIC0yNDEsOCArMjQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBmbG9hdCBtX3BhZ2Vab29tRmFjdG9yOwogICAgICAgICBmbG9hdCBtX3RleHRab29tRmFjdG9y
OwogCi0gICAgICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yOwotCiAjaWYgRU5BQkxFKE9SSUVO
VEFUSU9OX0VWRU5UUykKICAgICAgICAgaW50IG1fb3JpZW50YXRpb247CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGIxOGZkMzkyZTlkMTBkZmQ1NjAzZGJkNjVmNWFlMTMyOWJjMTljN2Qu
LjQwNzJjOTBkZjJmYWRhZDcwZTc4YzM0NTVlNjhlYTk2ODdmNmJkN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGll
bnRzKQogICAgICwgbV9jb29raWVFbmFibGVkKHRydWUpCiAgICAgLCBtX2FyZU1lbW9yeUNhY2hl
Q2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCisgICAgLCBt
X3BhZ2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9kZXZpY2VTY2FsZUZhY3RvcigxKQogICAgICwg
bV9qYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQodHJ1ZSkKICAgICAsIG1fZGlkTG9hZFVzZXJTdHls
ZVNoZWV0KGZhbHNlKQpAQCAtNjA4LDYgKzYwOSwzNCBAQCB2b2lkIFBhZ2U6OnNldE1lZGlhVm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICB9CiB9CiAKK3ZvaWQgUGFnZTo6c2V0UGFnZVNjYWxlRmFj
dG9yKGZsb2F0IHNjYWxlLCBjb25zdCBMYXlvdXRQb2ludCYgb3JpZ2luKQoreworICAgIGlmIChz
Y2FsZSA9PSBtX3BhZ2VTY2FsZUZhY3RvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gbWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisKKyAgICBtX3BhZ2VTY2Fs
ZUZhY3RvciA9IHNjYWxlOworCisgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpKQorICAgICAg
ICBkb2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CisKKyAgICBkb2N1
bWVudC0+cmVjYWxjU3R5bGUoTm9kZTo6Rm9yY2UpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQorICAgIG1haW5GcmFtZSgpLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5n
ZWQoKTsKKyNlbmRpZgorCisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGRvY3VtZW50LT52aWV3
KCkpIHsKKyAgICAgICAgaWYgKHZpZXctPnNjcm9sbFBvc2l0aW9uKCkgIT0gb3JpZ2luKSB7Cisg
ICAgICAgICAgaWYgKGRvY3VtZW50LT5yZW5kZXJlcigpICYmIGRvY3VtZW50LT5yZW5kZXJlcigp
LT5uZWVkc0xheW91dCgpICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCisgICAgICAgICAgICAg
IHZpZXctPmxheW91dCgpOworICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdp
bik7CisgICAgICAgIH0KKyAgICB9Cit9CisKKwogdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZh
Y3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBpZiAobV9kZXZpY2VTY2FsZUZhY3RvciA9
PSBzY2FsZUZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZWZkMTMwMzMzMzZlOWQxZTM3YjdiMGU0
ZDJiNDJmMTY3ODdlZmNhOS4uZDVjMjM5NzM4YTQ3NGFlMjFiZDMxMjQyODViZTJmMDk0ZmY4Mjc5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyVHlwZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgorI2luY2x1ZGUgIkxheW91dFR5
cGVzLmgiCiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKQEAgLTI0Myw2ICsy
NDQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0IG1lZGlhVm9sdW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVZvbHVtZTsgfQogICAgICAgICB2b2lkIHNldE1lZGlhVm9s
dW1lKGZsb2F0IHZvbHVtZSk7CiAKKyAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxv
YXQgc2NhbGUsIGNvbnN0IExheW91dFBvaW50JiBvcmlnaW4pOworICAgICAgICBmbG9hdCBwYWdl
U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQorCiAgICAg
ICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2Fs
ZUZhY3RvcjsgfQogICAgICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKIApA
QCAtMzY5LDYgKzM3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Fy
ZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkOwogICAgICAgICBmbG9hdCBtX21lZGlhVm9s
dW1lOwogCisgICAgICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yOwogICAgICAgICBmbG9hdCBt
X2RldmljZVNjYWxlRmFjdG9yOwogCiAgICAgICAgIGJvb2wgbV9qYXZhU2NyaXB0VVJMc0FyZUFs
bG93ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IGFjODQxNTYzZmUxZTViZmM0MGUwOGUyZjQzNjZjZDg0ZDdiZTlkZTku
LmVmY2Q5ZTA1MjZkZGE0MWM0YzQwZmQ0Y2IxMDVmMzQxOGVlMmJmMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xMjUx
LDcgKzEyNTEsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvdWxkUHJvcGFnYXRl
Q29tcG9zaXRpbmdUb0VuY2xvc2luZ0ZyYW1lKCkgY29uc3QKICAgICAvLyBkb2N1bWVudCwgb3Ig
dGhlIHBhcmVudCBpcyBhbHJlYWR5IGNvbXBvc2l0aW5nLCBvciB0aGUgbWFpbiBmcmFtZSBpcyBz
Y2FsZWQuCiAgICAgRnJhbWUqIGZyYW1lID0gbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+ZnJh
bWUoKTsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgpIDogMDsKLSAgICBp
ZiAocGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpICE9IDEpCisgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCiAgICAgUmVuZGVyUGFydCogZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVyUGFydChyZW5k
ZXJlcik7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBmbG9hdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMTsKLSAgICByZXR1cm4gcGFnZS0+bWFp
bkZyYW1lKCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBwYWdlLT5wYWdlU2NhbGVG
YWN0b3IoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZENvbW1pdENoYW5n
ZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxYWYyYzk1ZDNlM2NlNDdjZWUwMTkyNDIzZDEyMTNl
ZTQ2NmM4MTYzLi42MDVmYmQ2ZGRjMjM5ZjhhZTM0MmExOTVjNjliNjgyZmFlMDg0YzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJTZWxlY3Rpb25JbmZvLmgiCkBAIC0yMjYsMTAgKzIyNyw5IEBAIHZvaWQg
UmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmKQogICAgICAgICBSZW5kZXJCb3gqIHJvb3RCb3ggPSByb290UmVuZGVy
ZXItPmlzQm94KCkgPyB0b1JlbmRlckJveChyb290UmVuZGVyZXIpIDogMDsKICAgICAgICAgcm9v
dEZpbGxzVmlld3BvcnQgPSByb290Qm94ICYmICFyb290Qm94LT54KCkgJiYgIXJvb3RCb3gtPnko
KSAmJiByb290Qm94LT53aWR0aCgpID49IHdpZHRoKCkgJiYgcm9vdEJveC0+aGVpZ2h0KCkgPj0g
aGVpZ2h0KCk7CiAgICAgfQotCi0gICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gMTsKLSAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZVZpZXctPmZyYW1lKCkpCi0gICAgICAgIHBhZ2VTY2Fs
ZUZhY3RvciA9IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICAKKyAgICBQYWdlKiBwYWdl
ID0gZG9jdW1lbnQoKS0+cGFnZSgpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2Ug
PyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiAKICAgICAvLyBJZiBwYWludGluZyB3aWxs
IGVudGlyZWx5IGZpbGwgdGhlIHZpZXcsIG5vIG5lZWQgdG8gZmlsbCB0aGUgYmFja2dyb3VuZC4K
ICAgICBpZiAocm9vdEZpbGxzVmlld3BvcnQgJiYgcmVuZGVyZXJPYnNjdXJlc0JhY2tncm91bmQo
Zmlyc3RDaGlsZCgpKSAmJiBwYWdlU2NhbGVGYWN0b3IgPj0gMSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYzU4NzA0ZmNlNzdhOTIyOTMwNTAxYWJmMWRmMjEyZmIzNWUyMTg5Yi4uODFi
OTk4YzYzNGFiNjgyMGEwZTZhMTgwYzJkMzViNjMwYmVlMDJlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0wOSAgRmFkeSBTYW11ZWwgIDxmc2Ft
dWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBjb2RlIGZy
b20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNjYWxlUGFnZSk6CisKIDIwMTEtMDktMDkgIE1hcnRpbiBLb3NpYmEgIDxt
a29zaWJhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFeHBvc2luZyB0aGUgaXNMaW5rIG1ldGhv
ZCBvbiBXZWJOb2RlIGZvciB0aGUgQ2hyb21pdW0gcG9ydCBvbiBBbmRyb2lkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDczOGQ3YTNkOTVkYzUzZWY4
MTJlZDQzOWQyYjE5YzE4YzgyYmY3YzkuLjU2MzQ3Y2M4ZjEzMDRjYzk3OTE4NGFlZWI1MjJhZTJj
NmU3YzUzMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
QEAgLTE4ODEsMTEgKzE4ODEsNyBAQCBmbG9hdCBXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFjdG9y
KCkgY29uc3QKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0dXJuIDEuMDsKIAotICAgIEZy
YW1lKiBmcmFtZSA9IHBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIDEuMDsKLQotICAgIHJldHVybiBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7Cisg
ICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKQpAQCAtMTg5
MywxMSArMTg4OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjYWxlUGFnZShmbG9hdCBzY2FsZUZh
Y3RvciwgV2ViUG9pbnQgb3JpZ2luKQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlKCktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJh
bWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3Is
IG9yaWdpbik7CisgICAgcGFnZSgpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIG9y
aWdpbik7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTFlZmU5ZTBlNTA0OTkwZThmMzgxNWMyMmIyMGZk
ZjEyZmY2YjYyMS4uOTQyZTVkMzU2OWY3Y2JjODEwOTAzZWIxYWRkYzM3ZDRiYjg3NjA3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTA5ICBGYWR5IFNhbXVlbCAg
PGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgcGFnZVNjYWxlRmFjdG9yIGNv
ZGUgZnJvbSBGcmFtZS57aHxjcHB9IHRvIFBhZ2Uue2h8Y3BwfQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNj
YWxlUGFnZUJ5KToKKwogMjAxMS0wOS0wOCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRml4IHRoZSBHVEsgYnVpbGQgYWZ0ZXIgPGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0Lzk0ODEwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggNWQ1
YTA3ODIyNWViMDFiZTk5YzdkY2E5YjUyZDIwMjdjY2IyZjBmOS4uYTE0ZTk0NjZlNDQ4ODcyMmJl
ZDRjMzE2MTY2ZDQ0N2UzZmY3OTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04
MDMsOSArODAzLDUgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNob3VsZENsb3Nl
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGZsb2F0IHNjYWxlRmFjdG9yLCBm
bG9hdCB4LCBmbG9hdCB5KQogewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYlZpZXcp
LT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKKyAg
ICBjb3JlKHdlYlZpZXcpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIEludFBvaW50
KHgsIHkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzMzY1MjgzNjNhNzhjMjVlZmFhMzFkYmRk
NGMwYmFlZDdjNjU0MGY1Li5kNTFkNjRhMjBmY2RkNGNlMjM3ZGY3ZmY3OGRlMjgzMjRiMDJiZjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMDkgIEZhZHkgU2Ft
dWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0
b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9zY2FsZVdlYlZpZXc6YXRPcmlnaW46XSk6CisgICAgICAgICgt
W1dlYlZpZXcgX3ZpZXdTY2FsZUZhY3Rvcl0pOgorCiAyMDExLTA5LTA4ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBDb21wbGV0aW9uIG9iamVjdCBm
cm9tIEpTQywgSSBoYXZlIG5ldmVyIGxpa2VkIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggMjUyOTU3OWRiMTY1MGEzZDJmNzE0ZTAyNzNlYzgxZWFmODE5NDc4OC4uNjRk
NmJmMmM4NjQwYmNmMzhkYzBmOTUxZjU3NTQ3OTI1NTMzN2EzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtMjczMiwyMCArMjczMiwxMiBAQCBzdGF0aWMgUGFzc093blB0
cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVjdG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogCiAt
ICh2b2lkKV9zY2FsZVdlYlZpZXc6KGZsb2F0KXNjYWxlIGF0T3JpZ2luOihOU1BvaW50KW9yaWdp
bgogewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFtZV07Ci0gICAg
aWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvcmVGcmFtZS0+c2NhbGVQ
YWdlKHNjYWxlLCBJbnRQb2ludChvcmlnaW4pKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0UGFn
ZVNjYWxlRmFjdG9yKHNjYWxlLCBJbnRQb2ludChvcmlnaW4pKTsKIH0KIAogLSAoZmxvYXQpX3Zp
ZXdTY2FsZUZhY3RvcgogewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVG
cmFtZV07Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgcmV0
dXJuIGNvcmVGcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIF9wcml2YXRlLT5w
YWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogLSAodm9pZClfc2V0VXNlRml4ZWRMYXlvdXQ6
KEJPT0wpZml4ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNGE5N2M3NTk2YTQ4YjRhODQ1MDM3Y2Y5NmJh
ZjJmY2IwZmI1YmNjOS4uMTlkMGU0NTEyODg3ZTQ2MzQwNTVjYTAzNjI5NjQ0YjBmZDc1YTk0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wOS0wOSAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHBhZ2VTY2FsZUZhY3RvciBj
b2RlIGZyb20gRnJhbWUue2h8Y3BwfSB0byBQYWdlLntofGNwcH0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2Nh
bGVQYWdlQnkpOgorCiAyMDExLTA5LTA5ICBaZW5vIEFsYmlzc2VyICA8emVuby5hbGJpc3NlckBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBRV2ViRWxlbWVudDo6ZW5jbG9zZVdpdGggZG9lc24n
dCB3b3JrIGF0IGFsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCBlYWQ1YWMyYWVhNDYyYWIw
N2ZlYzQyN2RlZDE5MmYzZGE1ZGVhNjQ3Li4wM2U0YjM3NTJkMWM4YzkzNTJkZDE0MTNjMjU0ZTVi
YmJjMmRhZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNzg1LDcgKzc4NSw4IEBAIFFT
dHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnZpZXdwb3J0QXNUZXh0KFFXZWJQYWdlKiBw
YWdlLCBpbnQgZGV2aWNlRFBJLCBjCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzY2Fs
ZVBhZ2VCeShRV2ViRnJhbWUqIGZyYW1lLCBmbG9hdCBzY2FsZWZhY3RvciwgY29uc3QgUVBvaW50
JiBvcmlnaW4pCiB7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVBy
aXZhdGU6OmNvcmUoZnJhbWUpOwotICAgIGNvcmVGcmFtZS0+c2NhbGVQYWdlKHNjYWxlZmFjdG9y
LCBvcmlnaW4pOworICAgIGlmIChQYWdlKiBwYWdlID0gY29yZUZyYW1lLT5wYWdlKCkpCisgICAg
ICAgIHBhZ2UtPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZWZhY3Rvciwgb3JpZ2luKTsKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6YWN0aXZlTW9ja0RldmljZU9yaWVudGF0aW9u
Q2xpZW50KGJvb2wgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5MDJiY2QwZDZmY2U2NzdlN2RlOTE1NzUxNjVj
MWZlNGVjMDAzZDQ1Li5hZjNkOTRlZWY4ZGFlMWRjYTQyNzFhODhlODcxYmUwYTkzNjk3N2RjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMDkgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBm
cm9tIEZyYW1lLntofGNwcH0gdG8gUGFnZS57aHxjcHB9CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0wOS0wOCAg
TWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85
NzQyMzkzPiBTcGVsbCBjaGVja2luZyBhIHRleHQgYXJlYSBjYXVzZXMgdGhlIHBhZ2UgdG8gcmVs
b2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDAyNDllOTY1Y2NmN2Zm
Y2VmODRkY2E0MDQyYjc4NDk3NmQzNDUwODEuLjkyNDgyZDE0NGE3N2QyZWQyMDI4NWNlNzUyODdj
MmY5ZWVkMGRhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00NDMs
NyArNDQzLDggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRM
b2FkKCkKIAogICAgIC8vIE9ubHkgcmVzdG9yZSB0aGUgc2NhbGUgZmFjdG9yIGZvciBzdGFuZGFy
ZCBmcmFtZSBsb2FkcyAob2YgdGhlIG1haW4gZnJhbWUpLgogICAgIGlmIChtX2ZyYW1lLT5pc01h
aW5GcmFtZSgpICYmIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+bG9hZFR5cGUoKSA9
PSBGcmFtZUxvYWRUeXBlU3RhbmRhcmQpIHsKLSAgICAgICAgaWYgKG1fZnJhbWUtPmNvcmVGcmFt
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAxKQorICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+Y29yZUZyYW1lKCktPnBhZ2UoKTsKKyAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCkgIT0gMSkKICAgICAgICAgICAgIHdlYlBhZ2UtPnNjYWxlUGFnZSgxLCBJbnRQ
b2ludCgpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZjM0NmQxM2IyNDI2ZDE1ZjU3Mzg1NzBkMjU1MTliNTQ0Zjc0NzRk
Zi4uODkxNWJmNGNmNzFiMTJkNmVkODVmMTRkZmE3YzgyYmViY2M4N2I5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzc3LDIwICs3Nzcs
MTQgQEAgdm9pZCBXZWJQYWdlOjpzZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKGRvdWJsZSBwYWdl
Wm9vbUZhY3RvciwgZG91YmxlIHRleHRab29tRmEKIAogdm9pZCBXZWJQYWdlOjpzY2FsZVBhZ2Uo
ZG91YmxlIHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogewotICAgIEZyYW1lKiBmcmFt
ZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm47Ci0gICAgZnJhbWUtPnNjYWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKKyAgICBtX3BhZ2Ut
PnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZSwgb3JpZ2luKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKHNjYWxlKSk7CiB9CiAKIGRv
dWJsZSBXZWJQYWdlOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewotICAgIEZyYW1lKiBmcmFt
ZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm4gMTsKLSAgICByZXR1cm4gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVy
biBtX3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldERldmlj
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>