<?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>81882</bug_id>
          
          <creation_ts>2012-03-22 01:57:57 -0700</creation_ts>
          <short_desc>[GTK] display:none has no effect on &lt;option&gt; element</short_desc>
          <delta_ts>2026-04-17 14:24:27 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=8351</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=203606</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=206347</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81883</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antaryami Pandia (apandia)">antaryami.pandia</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>alexey.verlinger</cc>
    
    <cc>aperez</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>mtinberg</cc>
    
    <cc>oleg_smirnov</cc>
    
    <cc>pnormand</cc>
    
    <cc>shanestephens</cc>
    
    <cc>tregoning</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>585070</commentid>
    <comment_count>0</comment_count>
    <who name="Antaryami Pandia (apandia)">antaryami.pandia</who>
    <bug_when>2012-03-22 01:57:57 -0700</bug_when>
    <thetext>While walking through WK2 GTK port found that, the issue &quot;display:none&quot; on &lt;option&gt; elements is still present.

The issue was fixed in GTK WK1 in https://bugs.webkit.org/show_bug.cgi?id=72370

Reproduction for the issue:-
&lt;select&gt;
 &lt;option&gt;First choice&lt;/option&gt;
 &lt;option style=&quot;display: none&quot;&gt;You must NOT see this&lt;/option&gt;
 &lt;option&gt;Second choice&lt;/option&gt;
&lt;/select&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585071</commentid>
    <comment_count>1</comment_count>
    <who name="Antaryami Pandia (apandia)">antaryami.pandia</who>
    <bug_when>2012-03-22 02:01:31 -0700</bug_when>
    <thetext>It seems that style support is not yet present in WK2 WebPopupItem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778505</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-28 17:04:21 -0800</bug_when>
    <thetext>See also: bug 8351.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856737</commentid>
    <comment_count>3</comment_count>
      <attachid>193470</attachid>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-17 11:19:03 -0700</bug_when>
    <thetext>Created attachment 193470
Demonstrates the bug through use of classes to apply display:none

Test-case from issue #8351.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857436</commentid>
    <comment_count>4</comment_count>
      <attachid>193630</attachid>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-18 12:43:12 -0700</bug_when>
    <thetext>Created attachment 193630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857997</commentid>
    <comment_count>5</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-19 00:17:56 -0700</bug_when>
    <thetext>Alexey,
Could you help me about generation WebKit2.order file with Mac functions for XCode?
As you can see build is failed for Mac platforms.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859334</commentid>
    <comment_count>6</comment_count>
      <attachid>194037</attachid>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-20 06:28:11 -0700</bug_when>
    <thetext>Created attachment 194037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859401</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-03-20 07:48:40 -0700</bug_when>
    <thetext>Which patch needs review exactly? Please obsolete the old one and make sure to provide ChangeLog entry for the one to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859418</commentid>
    <comment_count>8</comment_count>
      <attachid>194060</attachid>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-20 08:04:41 -0700</bug_when>
    <thetext>Created attachment 194060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859420</commentid>
    <comment_count>9</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-20 08:07:21 -0700</bug_when>
    <thetext>Philippe,
Please this patch (id=194060).
But im not sure about WebKit2.order changes as for linking for Mac builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859438</commentid>
    <comment_count>10</comment_count>
      <attachid>194060</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-03-20 08:18:54 -0700</bug_when>
    <thetext>Comment on attachment 194060
Patch

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

Sorry I don&apos;t think I can review this entire patch, I&apos;ll CC an OWNER and a WK2/GTK reviewer. Is there a layout test fixed by this patch?

&gt; Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.cpp:71
&gt; +        g_signal_connect(m_popup-&gt;platformMenu(), &quot;unmap&quot;, G_CALLBACK(menuUnmapped), this);

Is this signal disconnected at some point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860015</commentid>
    <comment_count>11</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-20 22:00:44 -0700</bug_when>
    <thetext>Yes it is normal, disconnect is not needed. I made these changes like in WebCore/platform/gtk/PopupMenuGtk.cpp for WK1.
It&apos;s issue for WebPopupMenuProxyGtk.cpp, popup will be clossed immediately in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860018</commentid>
    <comment_count>12</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-20 22:02:06 -0700</bug_when>
    <thetext>And test case in first attachment:
https://bugs.webkit.org/attachment.cgi?id=193470

./run-launcher --gtk -2 https://bugs.webkit.org/attachment.cgi?id=193470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866554</commentid>
    <comment_count>13</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-03-29 22:34:51 -0700</bug_when>
    <thetext>Hi folks,
How about helps with Mac build? After these canges all build tree will be green...Please help me, after this commit i will working for related to this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888880</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-14 09:36:42 -0700</bug_when>
    <thetext>This patch touches a lot of cross-platform code, so it should not have any bracketed prefixes in title. The bug currently has the prefix &quot;[Gtk] [WK2]&quot;, which means that it only touches Gtk code in WebKit2 subproject, which is not accurate. The bracketed prefixes are meant to help people who work on other ports easily skip uninteresting patches.

I haven&apos;t looked into the patch deeply, but if you need to export a new function from WebCore to use it in WebKit on Mac, it needs to be added to WebCore.exp.in. Please don&apos;t modify the order files - changing them doesn&apos;t cause any direct harm, but is useless, as they will get regenerated from scratch by Apple engineers when needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891318</commentid>
    <comment_count>15</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-05-20 13:10:48 -0700</bug_when>
    <thetext>Alexey, yes of cause this bug only for GTK WK2. Im wonder why you change title of issue from GTK WK2 to only GTK. As you know issue for GTK WK1 was already fixed in https://bugs.webkit.org/show_bug.cgi?id=72370.

For this issue changes should touches some code not from GTK WK2 directory.
Patch has no hard logic, only new classes for encode/decode and it is good way fix it by these changs.

I have no Mac for understanding linking stage. And ican not fing any info about exporting symbols for Mac. I think WebCore.exp.in not for these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891324</commentid>
    <comment_count>16</comment_count>
      <attachid>202313</attachid>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2013-05-20 13:21:48 -0700</bug_when>
    <thetext>Created attachment 202313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026492</commentid>
    <comment_count>17</comment_count>
    <who name="Oleg Smirnov">oleg_smirnov</who>
    <bug_when>2014-08-02 14:02:46 -0700</bug_when>
    <thetext>Any news?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026494</commentid>
    <comment_count>18</comment_count>
      <attachid>202313</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-08-02 14:17:48 -0700</bug_when>
    <thetext>Comment on attachment 202313
Patch

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

r-. Rationale: You need a good explanation in the ChangeLog. You should have layout tests or an explanation why this is not tested.

&gt; Source/WebCore/platform/PopupMenuStyle.h:43
&gt; +        , m_textDirection(RTL)

Default to RTL? That&apos;s odd.

&gt; Source/WebKit2/ChangeLog:9
&gt; +        Added PopupMenuStyle as styling for WebPopupMenu.
&gt; +        It&apos;s needed for support display:none property on GTK WK2 popu menu style.

Typo: &quot;popu menu style&quot;.

This change log is not good enough. First, you need to explain what the bug is, why it happens, how it happens, etc. Then you explain how you solve it.
Finally you describe the implementation details, you can use the fields bellow to give information for each function.

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.cpp:898
&gt; +    encoder &lt;&lt; static_cast&lt;int&gt;(font.letterSpacing());
&gt; +    encoder &lt;&lt; static_cast&lt;int&gt;(font.wordSpacing());

Do not convert floating point values to integer across the IPC, that is an invitation for bugs!

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.cpp:928
&gt; +void ArgumentCoder&lt;FontDescription&gt;::encode(ArgumentEncoder&amp; encoder, const FontDescription&amp; fontDescription)
&gt; +{
&gt; +    // FIXME: Add support for styling the font.
&gt; +}
&gt; +
&gt; +bool ArgumentCoder&lt;FontDescription&gt;::decode(ArgumentDecoder&amp; decoder, FontDescription&amp; fontDescription)
&gt; +{
&gt; +    fontDescription = FontDescription();
&gt; +    return true;
&gt; +}

Don&apos;t add code that does not do anything. You can add the font description later with a proper implementation in a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026495</commentid>
    <comment_count>19</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-08-02 14:22:50 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Any news?

Sorry this patch slipped through the cracks of the review queue. The review queue (http://webkit.org/pending-review) has a huge backlog and patches are easily ignored.

When one of your patch is ignored for more than a week, you should ping reviewers on IRC. It may seem impolite but that&apos;s the only thing that works (don&apos;t harass reviewers either :)).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049937</commentid>
    <comment_count>20</comment_count>
    <who name="John Tregoning">tregoning</who>
    <bug_when>2014-11-19 15:17:44 -0800</bug_when>
    <thetext>Any update on the patch status?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428831</commentid>
    <comment_count>21</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-05-31 06:30:32 -0700</bug_when>
    <thetext>Oleg, would you be open to rebase and re-upload the patch with
the review comments solved? If you don&apos;t have the time, I would
like to continue where you left it, if you are okay with that.
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573868</commentid>
    <comment_count>22</comment_count>
      <attachid>379506</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-24 15:39:16 -0700</bug_when>
    <thetext>Created attachment 379506
WIP Patch


I took the patch made by Oleg years ago and brought it up-to-date; with
some parts like the WebPopupMenuProxyGtk code written anew because many
things changed a lot since 2014.

This still needs some layout test, which I have yet to figure out how to
do, but other than that I think the code is ready for reviewers to start
taking a look at =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573870</commentid>
    <comment_count>23</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-24 15:43:46 -0700</bug_when>
    <thetext>Also, do we want to add a new WebPopupItemStyle instead of using
PopupMenuStyle directly as attempted in bug #81883? If yes, I could
bring the patch in that related bug up-to-data as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574069</commentid>
    <comment_count>24</comment_count>
      <attachid>379552</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-25 09:04:15 -0700</bug_when>
    <thetext>Created attachment 379552
WIP Patch v2

This should make the Mac bots happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585892</commentid>
    <comment_count>25</comment_count>
      <attachid>382456</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-10-31 07:24:00 -0700</bug_when>
    <thetext>Created attachment 382456
WIP Patch v3

Let&apos;s see if third time is the charm and the Mac
bots will be happy now :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605757</commentid>
    <comment_count>26</comment_count>
      <attachid>387506</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-13 00:57:41 -0800</bug_when>
    <thetext>Created attachment 387506
WIP Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606772</commentid>
    <comment_count>27</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-01-14 19:45:21 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #22)
&gt; 
&gt; This still needs some layout test, which I have yet to figure out how to
&gt; do, but other than that I think the code is ready for reviewers to start
&gt; taking a look at =)

Something like this should work:

# test:
&lt;select size=&quot;4&quot;&gt;
 &lt;option&gt;First choice&lt;/option&gt;
 &lt;option style=&quot;display: none&quot;&gt;You must NOT see this&lt;/option&gt;
 &lt;option&gt;Second choice&lt;/option&gt;
&lt;/select&gt;

# reftest:
&lt;select size=&quot;4&quot;&gt;
 &lt;option&gt;First choice&lt;/option&gt;
 &lt;option&gt;Second choice&lt;/option&gt;
&lt;/select&gt;


# It just sets the select with 4 visible options elements, and displays 3.. so it can be easily tested as a reftest.
This works both on chrome and firefox ... But it doesn&apos;t seem to work here with this patch, so there is something to fix here still (I guess).


There its also a WPT test that tests a similar thing (I believe). It&apos;s the test:

layout-test: imported/w3c/web-platform-tests/css/css-display/select-4-option-optgroup-display-none.html
in WPT: http://wpt.live/css/css-display/select-4-option-optgroup-display-none.html

This test its currently marked as failing and assigned to bug 203606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607383</commentid>
    <comment_count>28</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-16 01:50:07 -0800</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #27)
&gt; (In reply to Adrian Perez from comment #22)
&gt; &gt; 
&gt; &gt; This still needs some layout test, which I have yet to figure out how to
&gt; &gt; do, but other than that I think the code is ready for reviewers to start
&gt; &gt; taking a look at =)
&gt; 
&gt; Something like this should work:
&gt; 
&gt; # test:
&gt; &lt;select size=&quot;4&quot;&gt;
&gt;  &lt;option&gt;First choice&lt;/option&gt;
&gt;  &lt;option style=&quot;display: none&quot;&gt;You must NOT see this&lt;/option&gt;
&gt;  &lt;option&gt;Second choice&lt;/option&gt;
&gt; &lt;/select&gt;
&gt; 
&gt; # reftest:
&gt; &lt;select size=&quot;4&quot;&gt;
&gt;  &lt;option&gt;First choice&lt;/option&gt;
&gt;  &lt;option&gt;Second choice&lt;/option&gt;
&gt; &lt;/select&gt;
&gt;
&gt; # It just sets the select with 4 visible options elements, and displays 3..
&gt; so it can be easily tested as a reftest.
&gt; This works both on chrome and firefox ... But it doesn&apos;t seem to work here
&gt; with this patch, so there is something to fix here still (I guess).

Thanks, I will add a test based on this!
 
&gt; There its also a WPT test that tests a similar thing (I believe). It&apos;s the
&gt; test:
&gt; 
&gt; layout-test:
&gt; imported/w3c/web-platform-tests/css/css-display/select-4-option-optgroup-
&gt; display-none.html
&gt; in WPT:
&gt; http://wpt.live/css/css-display/select-4-option-optgroup-display-none.html
&gt; 
&gt; This test its currently marked as failing and assigned to bug 203606

Running this WPT test I see that it passed partially: the &lt;option&gt; elements
are correctly hidden, but “display:none” is not respected for &lt;optgroup&gt;.
That is to be expected because this patch only fixes the issue for &lt;option&gt;.

I think we can land this with a reftest added for &lt;option&gt;, and create
a new bug to work on fixing &lt;optgroup&gt; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607416</commentid>
    <comment_count>29</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-16 04:40:53 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #28)

&gt; [...]
&gt;
&gt; I think we can land this with a reftest added for &lt;option&gt;, and create
&gt; a new bug to work on fixing &lt;optgroup&gt; :)

Done, filed bug #206347 for &lt;optgroup&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607431</commentid>
    <comment_count>30</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-16 05:44:32 -0800</bug_when>
    <thetext>While working on a test case, I noticed that there is one case in
which “display:none” is still not working, even with the WIP patch
applied. If the “size” property of the enclosing &lt;select&gt; element is
higher than 1 (causing the control to be a list instead of a popup),
the &lt;option&gt; is still shown. In the following example:

  &lt;select size=&quot;2&quot;&gt;
     &lt;option&gt;visible&lt;/option&gt;
     &lt;option style=&quot;display:none&quot;&gt;invisible&lt;/option&gt;
  &lt;/select&gt;

both options will be shown in the selection box. Note that the patch
does work with &lt;select size=&quot;1&quot;&gt;. I will take a look and see what
needs to make the test above pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607501</commentid>
    <comment_count>31</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-16 09:04:53 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #30)
&gt; While working on a test case, I noticed that there is one case in
&gt; which “display:none” is still not working, even with the WIP patch
&gt; applied. If the “size” property of the enclosing &lt;select&gt; element is
&gt; higher than 1 (causing the control to be a list instead of a popup),
&gt; the &lt;option&gt; is still shown. In the following example:
&gt; 
&gt;   &lt;select size=&quot;2&quot;&gt;
&gt;      &lt;option&gt;visible&lt;/option&gt;
&gt;      &lt;option style=&quot;display:none&quot;&gt;invisible&lt;/option&gt;
&gt;   &lt;/select&gt;
&gt; 
&gt; both options will be shown in the selection box. Note that the patch
&gt; does work with &lt;select size=&quot;1&quot;&gt;. I will take a look and see what
&gt; needs to make the test above pass.

Some investigation: the RenderListBox::paintObject() and ::paintItem()
is where the selection box is taken care of. The whole painting logic
there seems to assume that all the child elements are to be painted,
without accounting those hidden ones (e.g. using “display:none”).

Some observations, so I don&apos;t have to wrap my head around them next
time I look at the code:

 - RenderListBox::numItems() returns the child count of HTMLSelectElement
   regardless of whether they are to be painted or not (i.e. display:none).

 - RenderListBox::numVisibleItems() returns the amount of items which can
   be painted inside the box occupied by rendered element, *NOT* the number
   of items of the HTMLSelectElement which are to be painted (gotcha!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2201653</commentid>
    <comment_count>32</comment_count>
    <who name="Mark Tinberg">mtinberg</who>
    <bug_when>2026-04-17 14:24:27 -0700</bug_when>
    <thetext>Just FYI this still seems to be an issue, `display: none` is not respected for multiple-select option lists, the options are disabled but not hidden, even if the css for disabled options and empty optgroup should be display none.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>193470</attachid>
            <date>2013-03-17 11:19:03 -0700</date>
            <delta_ts>2013-03-17 11:19:03 -0700</delta_ts>
            <desc>Demonstrates the bug through use of classes to apply display:none</desc>
            <filename>test-case.html</filename>
            <type>text/html</type>
            <size>390</size>
            <attacher name="Oleg Smirnov">oleg_smirnov</attacher>
            
              <data encoding="base64">PGh0bWw+Cgo8aGVhZD4KICA8dGl0bGU+QnVnIFJlcHJvIFBhZ2U8L3RpdGxlPgogIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CiAgICAuc2hvdyB7fQogICAgLmhpZGUgeyBkaXNwbGF5OiBub25lOyB9
CiAgPC9zdHlsZT4KPC9oZWFkPgoKPGJvZHk+Cgo8Zm9ybT4KICA8c2VsZWN0IHNpemU9IjEiIG5h
bWU9InRlc3QiPgogICAgPG9wdGlvbiB2YWx1ZT0iMCI+LS0gU2VsZWN0IC0tPC9vcHRpb24+CiAg
ICA8b3B0aW9uIGNsYXNzPSJzaG93IiB2YWx1ZT0iMSI+VGhpcyBzaG91bGQgc2hvdyB1cDwvb3B0
aW9uPgogICAgPG9wdGlvbiBjbGFzcz0iaGlkZSIgdmFsdWU9IjIiPlRoaXMgc2hvdWxkIG5vdDwv
b3B0aW9uPgogIDwvc2VsZWN0Pgo8L2Zvcm0+Cgo8L2JvZHk+CgoKPC9odG1sPgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193630</attachid>
            <date>2013-03-18 12:43:12 -0700</date>
            <delta_ts>2013-03-20 07:57:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>20558</size>
            <attacher name="Oleg Smirnov">oleg_smirnov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MTU3YzRlLi4wNDI4ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDMtMTggIE9sZWcgU21pcm5vdiAgPG9sZWcuc21pcm5vdkBsZ2UuY29tPgorCisg
ICAgICAgIFtHdGtdIFtXSzJdIGRpc3BsYXk6bm9uZSBoYXMgbm8gZWZmZWN0IG9uIDxvcHRpb24+
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnVTdHls
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVN0eWxlKToK
KwogMjAxMy0wMy0xOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTmV0d29ya1Byb2Nlc3Mgc2hvdWxkIHNlbmQgdm1fY29waWVkLCBtbWFwJ2VkIG1lbW9yeSB0
byBXZWJQcm9jZXNzZXMgd2hlbiBhIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUG9wdXBNZW51U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKaW5kZXggNjg5ZWQyOS4uY2FhYjQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
b3B1cE1lbnVTdHlsZS5oCkBAIC0zNyw2ICszNywxNSBAQCBjbGFzcyBQb3B1cE1lbnVTdHlsZSB7
CiBwdWJsaWM6CiAgICAgZW51bSBQb3B1cE1lbnVUeXBlIHsgU2VsZWN0UG9wdXAsIEF1dG9maWxs
UG9wdXAgfTsKICAgICBlbnVtIEJhY2tncm91bmRDb2xvclR5cGUgeyBEZWZhdWx0QmFja2dyb3Vu
ZENvbG9yLCBDdXN0b21CYWNrZ3JvdW5kQ29sb3IgfTsKKyAgICBQb3B1cE1lbnVTdHlsZSgpCisg
ICAgICAgIDogbV92aXNpYmxlKGZhbHNlKQorICAgICAgICAsIG1faXNEaXNwbGF5Tm9uZShmYWxz
ZSkKKyAgICAgICAgLCBtX3RleHREaXJlY3Rpb24oUlRMKQorICAgICAgICAsIG1faGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlKGZhbHNlKQorICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9yVHlwZShE
ZWZhdWx0QmFja2dyb3VuZENvbG9yKQorICAgICAgICAsIG1fbWVudVR5cGUoU2VsZWN0UG9wdXAp
CisgICAgeworICAgIH0KICAgICBQb3B1cE1lbnVTdHlsZShjb25zdCBDb2xvciYgZm9yZWdyb3Vu
ZCwgY29uc3QgQ29sb3ImIGJhY2tncm91bmQsIGNvbnN0IEZvbnQmIGZvbnQsIGJvb2wgdmlzaWJs
ZSwgYm9vbCBpc0Rpc3BsYXlOb25lLCBMZW5ndGggdGV4dEluZGVudCwgVGV4dERpcmVjdGlvbiB0
ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgQmFja2dyb3VuZENv
bG9yVHlwZSBiYWNrZ3JvdW5kQ29sb3JUeXBlID0gRGVmYXVsdEJhY2tncm91bmRDb2xvciwgUG9w
dXBNZW51VHlwZSBtZW51VHlwZSA9IFNlbGVjdFBvcHVwKQogICAgICAgICA6IG1fZm9yZWdyb3Vu
ZENvbG9yKGZvcmVncm91bmQpCiAgICAgICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3Vu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA1YmUyMmJiLi5jMmNmNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzAgQEAKKzIwMTMtMDMtMTggIE9sZWcgU21pcm5vdiAgPG9sZWcuc21pcm5vdkBsZ2UuY29tPgor
CisgICAgICAgIFtHdGtdIFtXSzJdIGRpc3BsYXk6bm9uZSBoYXMgbm8gZWZmZWN0IG9uIDxvcHRp
b24+IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgxODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBD
Ojo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKENvcmVJUEM6Ojo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cEl0ZW06OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBv
cHVwTWVudVByb3h5R3RrOjpjcmVhdGVHdGtBY3Rpb25Gb3JNZW51SXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBvcHVwTWVudTo6cG9wdWxhdGVJdGVtcyk6CisKIDIwMTMtMDMtMTggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE5ldHdvcmtQcm9jZXNzIHNob3Vs
ZCBzZW5kIHZtX2NvcGllZCwgbW1hcCdlZCBtZW1vcnkgdG8gV2ViUHJvY2Vzc2VzIHdoZW4gYSAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMu
Y3BwCmluZGV4IGM3OGNiMWIuLmIzMTliMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBv
aW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGguaD4KICNpbmNsdWRlIDxXZWJDb3JlL01h
dHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcnNwZWN0aXZlVHJhbnNmb3Jt
T3BlcmF0aW9uLmg+CkBAIC04OCwxNiArODcsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQ
b2ludDNEPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRmxvYXRQb2ludDNEJgog
ICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNv
ZGVyLCBmbG9hdFBvaW50M0QpOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGVuZ3RoJiBsZW5ndGgpCi17Ci0g
ICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgbGVuZ3RoKTsK
LX0KLQotYm9vbCBBcmd1bWVudENvZGVyPExlbmd0aD46OmRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIExlbmd0aCYgbGVuZ3RoKQotewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPExlbmd0aD46OmRlY29kZShkZWNvZGVyLCBsZW5ndGgpOwotfQotCiB2b2lkIEFyZ3VtZW50
Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRpb25NYXRyaXgpCiB7
CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShl
bmNvZGVyLCB0cmFuc2Zvcm1hdGlvbk1hdHJpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmluZGV4IGQ0MmFlNzkuLjExMDRhNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5o
CkBAIC00Miw3ICs0Miw2IEBAIHN0cnVjdCBUaWxlQ3JlYXRpb25JbmZvOwogc3RydWN0IFRpbGVV
cGRhdGVJbmZvOwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CiBjbGFzcyBUcmFuc2Zvcm1P
cGVyYXRpb25zOwotc3RydWN0IExlbmd0aDsKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIGNs
YXNzIEZpbHRlck9wZXJhdGlvbnM7CkBAIC02NCwxMSArNjMsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4gewogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGVuZ3RoPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0
aCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpM
ZW5ndGgmKTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXgmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggMTZlZGM1NC4uYjJmYTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTM2LDExICszNiwxNSBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvbnREZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRh
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVTdHlsZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTIyNSw2ICsyMjksNTUg
QEAgYm9vbCBBcmd1bWVudENvZGVyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgQXUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBB
cmd1bWVudENvZGVyPFBvcHVwTWVudVN0eWxlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgUG9wdXBNZW51U3R5bGUmIHBvcHVwTWVudVN0eWxlKQoreworICAgIGVuY29k
ZXIgPDwgcG9wdXBNZW51U3R5bGUuZm9yZWdyb3VuZENvbG9yKCk7CisgICAgZW5jb2RlciA8PCBw
b3B1cE1lbnVTdHlsZS5iYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVu
dVN0eWxlLmZvbnQoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmlzVmlzaWJsZSgp
OworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuaXNEaXNwbGF5Tm9uZSgpOworICAgIGVu
Y29kZXIgPDwgcG9wdXBNZW51U3R5bGUudGV4dEluZGVudCgpOworICAgIGVuY29kZXIuZW5jb2Rl
RW51bShwb3B1cE1lbnVTdHlsZS50ZXh0RGlyZWN0aW9uKCkpOworICAgIGVuY29kZXIgPDwgcG9w
dXBNZW51U3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCk7Cit9CisKK2Jvb2wgQXJndW1l
bnRDb2RlcjxQb3B1cE1lbnVTdHlsZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFBvcHVwTWVudVN0eWxlJiBwb3B1cE1lbnVTdHlsZSkKK3sKKyAgICBDb2xvciBmb3JlZ3JvdW5k
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZm9yZWdyb3VuZCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIENvbG9yIGJhY2tncm91bmQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShi
YWNrZ3JvdW5kKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRm9udCBmb250OworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZm9udCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGJvb2wgaXNWaXNpYmxlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNWaXNpYmxlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBpc0Rpc3BsYXlOb25lOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaXNEaXNwbGF5Tm9uZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIExlbmd0aCB0ZXh0SW5kZW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dEluZGVu
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFRleHREaXJlY3Rpb24gdGV4dERpcmVj
dGlvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0ZXh0RGlyZWN0aW9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBwb3B1cE1lbnVTdHlsZSA9IFBvcHVwTWVudVN0eWxlKGZv
cmVncm91bmQsIGJhY2tncm91bmQsIGZvbnQsIGlzVmlzaWJsZSwgaXNEaXNwbGF5Tm9uZSwgdGV4
dEluZGVudCwgdGV4dERpcmVjdGlvbiwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgc3Bh
Y2UpCiB7CkBAIC04MjQsNiArODc3LDQxIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxGaWxlQ2hvb3Nl
clNldHRpbmdzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRmlsZUNoCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxGb250Pjo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRm9udCYgZm9udCkKK3sKKyAgICBlbmNvZGVyIDw8
IGZvbnQuZm9udERlc2NyaXB0aW9uKCk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxpbnQ+
KGZvbnQubGV0dGVyU3BhY2luZygpKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGludD4o
Zm9udC53b3JkU3BhY2luZygpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPEZvbnQ+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGb250JiBmb250KQoreworICAgIEZvbnREZXNj
cmlwdGlvbiBmb250RGVzY3JpcHRpcHRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmb250
RGVzY3JpcHRpcHRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgbGV0dGVy
U3BhY2luZzsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxldHRlclNwYWNpbmcpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgd29yZFNwYWNpbmc7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh3b3JkU3BhY2luZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvbnQg
PSBGb250KGZvbnREZXNjcmlwdGlwdGlvbiwgbGV0dGVyU3BhY2luZywgd29yZFNwYWNpbmcpOwor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8Rm9udERlc2NyaXB0aW9u
Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pCit7CisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBzdHls
aW5nIHRoZSBmb250LgorfQorCitib29sIEFyZ3VtZW50Q29kZXI8Rm9udERlc2NyaXB0aW9uPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24pCit7CisgICAgZm9udERlc2NyaXB0aW9uID0gRm9udERlc2NyaXB0aW9uKCk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxHcmFtbWFyRGV0YWlsPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgR3JhbW1hckRldGFpbCYgZGV0
YWlsKQogewpAQCAtOTMzLDYgKzEwMjEsMTYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEtVUkw+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBLVVJMJiByZXN1bHQpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMZW5ndGgmIGxlbmd0aCkKK3sKKyAgICBTaW1wbGVBcmd1
bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCBsZW5ndGgpOworfQorCitib29sIEFy
Z3VtZW50Q29kZXI8TGVuZ3RoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTGVu
Z3RoJiBsZW5ndGgpCit7CisgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6
ZGVjb2RlKGRlY29kZXIsIGxlbmd0aCk7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpVc2VyU3R5bGVTaGVldD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0JiB1c2VyU3R5bGVTaGVldCkKIHsKICAgICBlbmNvZGVy
IDw8IHVzZXJTdHlsZVNoZWV0LnNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGNhZTlkOWEuLmM4MGZhMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM1LDYgKzM1LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENyZWRlbnRpYWw7CiAgICAgY2xhc3Mg
Q3Vyc29yOwogICAgIGNsYXNzIERhdGFiYXNlRGV0YWlsczsKKyAgICBjbGFzcyBGb250OworICAg
IGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKICAgICBjbGFzcyBGbG9hdFBvaW50OwogICAgIGNsYXNz
IEZsb2F0UmVjdDsKICAgICBjbGFzcyBGbG9hdFNpemU7CkBAIC00NSw2ICs0Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKICAgICBjbGFzcyBL
VVJMOwogICAgIGNsYXNzIE5vdGlmaWNhdGlvbjsKKyAgICBjbGFzcyBQb3B1cE1lbnVTdHlsZTsK
ICAgICBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiAgICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsKICAg
ICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC01OCw2ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBzdHJ1Y3QgRHJhZ1Nlc3Npb247CiAgICAgc3RydWN0IEZpbGVDaG9vc2VyU2V0
dGluZ3M7CiAgICAgc3RydWN0IEdyYW1tYXJEZXRhaWw7CisgICAgc3RydWN0IExlbmd0aDsKICAg
ICBzdHJ1Y3QgTWltZUNsYXNzSW5mbzsKICAgICBzdHJ1Y3QgUGx1Z2luSW5mbzsKICAgICBzdHJ1
Y3QgVGV4dENoZWNraW5nUmVzdWx0OwpAQCAtNzgsNiArODIsMTYgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0+IHsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7
CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZvbnQ+IHsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Rm9udCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpGb250Jik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZvbnREZXNjcmlwdGlvbj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpGb250RGVzY3JpcHRpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uJik7Cit9Owor
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBX
ZWJDb3JlOjpGbG9hdFBvaW50Jik7CkBAIC0xMzMsNiArMTQ3LDExIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2U+IHsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6UG9wdXBNZW51U3R5bGU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUmKTsK
K307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKQEAgLTI0OCw2ICsyNjcs
MTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLVVJMPiB7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OktVUkwmKTsK
IH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGVuZ3RoPiB7
CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
Okxlbmd0aCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpMZW5ndGgmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6VXNlclN0eWxlU2hlZXQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmKTsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKaW5kZXggODk3MTFhYi4uMjE4ZThmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0zOSw2ICs0MCw3IEBAIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKCkKICAg
ICAsIG1fdGV4dERpcmVjdGlvbihMVFIpCiAgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlk
ZShmYWxzZSkKICAgICAsIG1faXNFbmFibGVkKHRydWUpCisgICAgLCBtX2lzTGFiZWwoZmFsc2Up
CiAgICAgLCBtX2lzU2VsZWN0ZWQoZmFsc2UpCiB7CiB9CkBAIC01MywxMSArNTUsMTIgQEAgV2Vi
UG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlKQogewogfQogCi1XZWJQb3B1cEl0ZW06
OldlYlBvcHVwSXRlbShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dERpcmVjdGlv
biB0ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgY29uc3QgU3Ry
aW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5h
YmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpCitXZWJQb3B1cEl0ZW06OldlYlBv
cHVwSXRlbShUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgV2ViQ29yZTo6UG9w
dXBNZW51U3R5bGUmIGl0ZW1TdHlsZSwgY29uc3QgU3RyaW5nJiB0b29sVGlwLCBjb25zdCBTdHJp
bmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9vbCBpc0xhYmVsLCBib29s
IGlzU2VsZWN0ZWQpCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fdGV4dCh0ZXh0KQotICAg
ICwgbV90ZXh0RGlyZWN0aW9uKHRleHREaXJlY3Rpb24pCi0gICAgLCBtX2hhc1RleHREaXJlY3Rp
b25PdmVycmlkZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpCisgICAgLCBtX3RleHREaXJlY3Rp
b24oaXRlbVN0eWxlLnRleHREaXJlY3Rpb24oKSkKKyAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92
ZXJyaWRlKGl0ZW1TdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSkKKyAgICAsIG1faXRl
bVN0eWxlKGl0ZW1TdHlsZSkKICAgICAsIG1fdG9vbFRpcCh0b29sVGlwKQogICAgICwgbV9hY2Nl
c3NpYmlsaXR5VGV4dChhY2Nlc3NpYmlsaXR5VGV4dCkKICAgICAsIG1faXNFbmFibGVkKGlzRW5h
YmxlZCkKQEAgLTcyLDYgKzc1LDcgQEAgdm9pZCBXZWJQb3B1cEl0ZW06OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX3RleHQ7
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdGV4dERpcmVjdGlvbik7CiAgICAgZW5jb2RlciA8
PCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKKyAgICBlbmNvZGVyIDw8IG1faXRlbVN0eWxl
OwogICAgIGVuY29kZXIgPDwgbV90b29sVGlwOwogICAgIGVuY29kZXIgPDwgbV9hY2Nlc3NpYmls
aXR5VGV4dDsKICAgICBlbmNvZGVyIDw8IG1faXNFbmFibGVkOwpAQCAtODgsNyArOTIsNyBAQCBi
b29sIFdlYlBvcHVwSXRlbTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgV2ViUG9wdXBJdGVtJiBpdGVtKQogICAgIFN0cmluZyB0ZXh0OwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIFRleHRE
aXJlY3Rpb24gdGV4dERpcmVjdGlvbjsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0ZXh0
RGlyZWN0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTcsNiArMTAxLDEwIEBAIGJv
b2wgV2ViUG9wdXBJdGVtOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBXZWJQb3B1cEl0ZW0mIGl0ZW0pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBQb3B1cE1lbnVT
dHlsZSBpdGVtU3R5bGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpdGVtU3R5bGUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICBTdHJpbmcgdG9vbFRpcDsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHRvb2xUaXApKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTcsNyArMTI1
LDcgQEAgYm9vbCBXZWJQb3B1cEl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFdlYlBvcHVwSXRlbSYgaXRlbSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlz
U2VsZWN0ZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpdGVtID0gV2ViUG9wdXBJ
dGVtKHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwg
dG9vbFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3Rl
ZCk7CisgICAgaXRlbSA9IFdlYlBvcHVwSXRlbSh0eXBlLCB0ZXh0LCBpdGVtU3R5bGUsIHRvb2xU
aXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlzU2VsZWN0ZWQpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUG9wdXBJdGVtLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKaW5k
ZXggODg0ZWU5ZS4uYzNkNTc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBvcHVwSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBXZWJQb3B1cEl0ZW1faAogI2RlZmluZSBXZWJQb3B1
cEl0ZW1faAogCisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVTdHlsZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC00NCw3ICs0NSw3IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewogCiAgICAgV2ViUG9w
dXBJdGVtKCk7CiAgICAgV2ViUG9wdXBJdGVtKFR5cGUpOwotICAgIFdlYlBvcHVwSXRlbShUeXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGJvb2wgaGFzVGV4
dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmluZyYg
YWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFiZWwsIGJvb2wgaXNT
ZWxlY3RlZCk7CisgICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUmIGl0ZW1TdHlsZSwgY29uc3QgU3RyaW5nJiB0b29s
VGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9v
bCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpOwogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFdlYlBvcHVwSXRlbSYpOwpAQCAtNTMsNiArNTQsNyBAQCBzdHJ1
Y3QgV2ViUG9wdXBJdGVtIHsKICAgICBTdHJpbmcgbV90ZXh0OwogICAgIFdlYkNvcmU6OlRleHRE
aXJlY3Rpb24gbV90ZXh0RGlyZWN0aW9uOwogICAgIGJvb2wgbV9oYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGU7CisgICAgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgbV9pdGVtU3R5bGU7CiAgICAgU3Ry
aW5nIG1fdG9vbFRpcDsKICAgICBTdHJpbmcgbV9hY2Nlc3NpYmlsaXR5VGV4dDsKICAgICBib29s
IG1faXNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dl
YlBvcHVwTWVudVByb3h5R3RrLmNwcAppbmRleCBhNDE4MzlhLi43NTdhMWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNw
cApAQCAtNTgsNiArNTgsNyBAQCBHdGtBY3Rpb24qIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVh
dGVHdGtBY3Rpb25Gb3JNZW51SXRlbShjb25zdCBXZWJQb3B1cEl0ZW0mCiAgICAgR3RrQWN0aW9u
KiBhY3Rpb24gPSBndGtfYWN0aW9uX25ldyhhY3Rpb25OYW1lLmdldCgpLCBpdGVtLm1fdGV4dC51
dGY4KCkuZGF0YSgpLCBpdGVtLm1fdG9vbFRpcC51dGY4KCkuZGF0YSgpLCAwKTsKICAgICBnX29i
amVjdF9zZXRfZGF0YShHX09CSkVDVChhY3Rpb24pLCAicG9wdXAtbWVudS1hY3Rpb24taW5kZXgi
LCBHSU5UX1RPX1BPSU5URVIoaXRlbUluZGV4KSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChhY3Rp
b24sICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0sobWVudUl0ZW1BY3RpdmF0ZWQpLCB0aGlzKTsKKyAg
ICBndGtfYWN0aW9uX3NldF92aXNpYmxlKGFjdGlvbiwgIWl0ZW0ubV9pdGVtU3R5bGUuaXNEaXNw
bGF5Tm9uZSgpKTsKICAgICBndGtfYWN0aW9uX3NldF9zZW5zaXRpdmUoYWN0aW9uLCBpdGVtLm1f
aXNFbmFibGVkKTsKIAogICAgIHJldHVybiBhY3Rpb247CkBAIC02NSwxMCArNjYsMTEgQEAgR3Rr
QWN0aW9uKiBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlR3RrQWN0aW9uRm9yTWVudUl0ZW0o
Y29uc3QgV2ViUG9wdXBJdGVtJgogCiB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9w
dXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwg
ZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1z
LCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmIGRhdGEsIGludDMyX3Qgc2VsZWN0ZWRJbmRl
eCkKIHsKLSAgICBpZiAobV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cC0+Y2xlYXIoKTsKLSAgICBl
bHNlCisgICAgaWYgKCFtX3BvcHVwKSB7CiAgICAgICAgIG1fcG9wdXAgPSBHdGtQb3B1cE1lbnU6
OmNyZWF0ZSgpOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcG9wdXAtPnBsYXRmb3JtTWVu
dSgpLCAidW5tYXAiLCBHX0NBTExCQUNLKG1lbnVVbm1hcHBlZCksIHRoaXMpOworICAgIH0gZWxz
ZQorICAgICAgICBtX3BvcHVwLT5jbGVhcigpOwogCiAgICAgY29uc3QgaW50IHNpemUgPSBpdGVt
cy5zaXplKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKQEAgLTgzLDcg
Kzg1LDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25zdCBJ
bnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICBJbnRQb2ludCBtZW51UG9zaXRp
b24gPSBjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KG1fd2ViVmlldywgcmVjdC5sb2Nh
dGlvbigpKTsKICAgICBtZW51UG9zaXRpb24ubW92ZSgwLCByZWN0LmhlaWdodCgpKTsKIAotICAg
IGd1bG9uZyB1bm1hcEhhbmRsZXIgPSBnX3NpZ25hbF9jb25uZWN0KG1fcG9wdXAtPnBsYXRmb3Jt
TWVudSgpLCAidW5tYXAiLCBHX0NBTExCQUNLKG1lbnVVbm1hcHBlZCksIHRoaXMpOwogICAgIG1f
cG9wdXAtPnBvcFVwKHJlY3Quc2l6ZSgpLCBtZW51UG9zaXRpb24sIHNpemUsIHNlbGVjdGVkSW5k
ZXgsIG1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpID8gbV9jbGll
bnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCktPm5hdGl2ZUV2ZW50KCkgOiAw
KTsKIAogICAgIC8vIFBvcHVwTWVudSBjYW4gZmFpbCB0byBvcGVuIHdoZW4gdGhlcmUgaXMgbm8g
bW91c2UgZ3JhYi4KQEAgLTEwMyw4ICsxMDQsNiBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3Rr
OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAog
CiAgICAgbV9ydW5Mb29wLmNsZWFyKCk7CiAKLSAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5l
Y3QobV9wb3B1cC0+cGxhdGZvcm1NZW51KCksIHVubWFwSGFuZGxlcik7Ci0KICAgICBpZiAoIW1f
Y2xpZW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAppbmRleCBkNGFmOTJm
Li5iZjI5MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCkBAIC04NywxMyArODcsOCBAQCBWZWN0b3I8
V2ViUG9wdXBJdGVtPiBXZWJQb3B1cE1lbnU6OnBvcHVsYXRlSXRlbXMoKQogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIGlmIChtX3BvcHVwQ2xpZW50LT5p
dGVtSXNTZXBhcmF0b3IoaSkpCiAgICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVt
KFdlYlBvcHVwSXRlbTo6U2VwYXJhdG9yKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAg
Ly8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBzdHlsaW5nIHRoZSBmb250LgotICAgICAgICAgICAg
Ly8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBzdHlsaW5nIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNr
Z3JvdW5kIGNvbG9ycy4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGN1c3Rv
bWl6ZSB0ZXh0IGNvbG9yIHdoZW4gYW4gaXRlbSBpcyBoaWdobGlnaHRlZC4KLSAgICAgICAgICAg
IFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSA9IG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShpKTsK
LSAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXZWJQb3B1cEl0ZW0oV2ViUG9wdXBJdGVtOjpJdGVt
LCBtX3BvcHVwQ2xpZW50LT5pdGVtVGV4dChpKSwgaXRlbVN0eWxlLnRleHREaXJlY3Rpb24oKSwg
aXRlbVN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpLCBtX3BvcHVwQ2xpZW50LT5pdGVt
VG9vbFRpcChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0KGkpLCBtX3Bv
cHVwQ2xpZW50LT5pdGVtSXNFbmFibGVkKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNMYWJlbChp
KSwgbV9wb3B1cENsaWVudC0+aXRlbUlzU2VsZWN0ZWQoaSkpKTsKLSAgICAgICAgfQorICAgICAg
ICBlbHNlCisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVtKFdlYlBvcHVwSXRl
bTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRlbVRleHQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1T
dHlsZShpKSwgbV9wb3B1cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1fcG9wdXBDbGllbnQtPml0
ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxlZChpKSwg
bV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlbGVj
dGVkKGkpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGl0ZW1zOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194037</attachid>
            <date>2013-03-20 06:28:11 -0700</date>
            <delta_ts>2013-03-20 08:01:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>20015</size>
            <attacher name="Oleg Smirnov">oleg_smirnov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCmluZGV4IDY4OWVkMjkuLmNh
YWI0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaApAQCAtMzcs
NiArMzcsMTUgQEAgY2xhc3MgUG9wdXBNZW51U3R5bGUgewogcHVibGljOgogICAgIGVudW0gUG9w
dXBNZW51VHlwZSB7IFNlbGVjdFBvcHVwLCBBdXRvZmlsbFBvcHVwIH07CiAgICAgZW51bSBCYWNr
Z3JvdW5kQ29sb3JUeXBlIHsgRGVmYXVsdEJhY2tncm91bmRDb2xvciwgQ3VzdG9tQmFja2dyb3Vu
ZENvbG9yIH07CisgICAgUG9wdXBNZW51U3R5bGUoKQorICAgICAgICA6IG1fdmlzaWJsZShmYWxz
ZSkKKyAgICAgICAgLCBtX2lzRGlzcGxheU5vbmUoZmFsc2UpCisgICAgICAgICwgbV90ZXh0RGly
ZWN0aW9uKFJUTCkKKyAgICAgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShmYWxzZSkK
KyAgICAgICAgLCBtX2JhY2tncm91bmRDb2xvclR5cGUoRGVmYXVsdEJhY2tncm91bmRDb2xvcikK
KyAgICAgICAgLCBtX21lbnVUeXBlKFNlbGVjdFBvcHVwKQorICAgIHsKKyAgICB9CiAgICAgUG9w
dXBNZW51U3R5bGUoY29uc3QgQ29sb3ImIGZvcmVncm91bmQsIGNvbnN0IENvbG9yJiBiYWNrZ3Jv
dW5kLCBjb25zdCBGb250JiBmb250LCBib29sIHZpc2libGUsIGJvb2wgaXNEaXNwbGF5Tm9uZSwg
TGVuZ3RoIHRleHRJbmRlbnQsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIEJhY2tncm91bmRDb2xvclR5cGUgYmFja2dyb3VuZENvbG9y
VHlwZSA9IERlZmF1bHRCYWNrZ3JvdW5kQ29sb3IsIFBvcHVwTWVudVR5cGUgbWVudVR5cGUgPSBT
ZWxlY3RQb3B1cCkKICAgICAgICAgOiBtX2ZvcmVncm91bmRDb2xvcihmb3JlZ3JvdW5kKQogICAg
ICAgICAsIG1fYmFja2dyb3VuZENvbG9yKGJhY2tncm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjNzhjYjFiLi5i
MzE5YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1
bWVudENvZGVycy5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzTGF5ZXJBbmltYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lkZW50aXR5VHJhbnNmb3Jt
T3BlcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvTGVuZ3RoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYXRyaXgzRFRyYW5zZm9ybU9wZXJh
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oPgpAQCAtODgs
MTYgKzg3LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQzRCYKICAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRQb2ludDNEKTsK
IH0KIAotdm9pZCBBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IExlbmd0aCYgbGVuZ3RoKQotewotICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGxlbmd0aCk7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxMZW5ndGg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMZW5ndGgmIGxl
bmd0aCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5ndGg+OjpkZWNvZGUo
ZGVjb2RlciwgbGVuZ3RoKTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9u
TWF0cml4Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdHJhbnNmb3JtYXRp
b25NYXRyaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuaAppbmRleCBkNDJhZTc5Li4xMTA0YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaApAQCAtNDIsNyArNDIsNiBAQCBz
dHJ1Y3QgVGlsZUNyZWF0aW9uSW5mbzsKIHN0cnVjdCBUaWxlVXBkYXRlSW5mbzsKIGNsYXNzIFRy
YW5zZm9ybWF0aW9uTWF0cml4OwogY2xhc3MgVHJhbnNmb3JtT3BlcmF0aW9uczsKLXN0cnVjdCBM
ZW5ndGg7CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25z
OwpAQCAtNjQsMTEgKzYzLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGbG9hdFBvaW50M0Q+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMZW5ndGgmKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6TGVuZ3RoJik7Ci19OwotCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDE2ZWRjNTQu
LmIyZmE5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC0zNiwxMSArMzYsMTUgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNz
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVDaG9vc2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Gb250RGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xl
bmd0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUG9wdXBNZW51U3R5bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC0yMjUsNiArMjI5LDU1IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEF1CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxQb3B1cE1l
bnVTdHlsZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBvcHVwTWVu
dVN0eWxlJiBwb3B1cE1lbnVTdHlsZSkKK3sKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxl
LmZvcmVncm91bmRDb2xvcigpOworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuYmFja2dy
b3VuZENvbG9yKCk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5mb250KCk7CisgICAg
ZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5pc1Zpc2libGUoKTsKKyAgICBlbmNvZGVyIDw8IHBv
cHVwTWVudVN0eWxlLmlzRGlzcGxheU5vbmUoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0
eWxlLnRleHRJbmRlbnQoKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUu
dGV4dERpcmVjdGlvbigpKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmhhc1RleHRE
aXJlY3Rpb25PdmVycmlkZSgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5
bGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQb3B1cE1lbnVTdHlsZSYgcG9w
dXBNZW51U3R5bGUpCit7CisgICAgQ29sb3IgZm9yZWdyb3VuZDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGZvcmVncm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDb2xvciBi
YWNrZ3JvdW5kOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYmFja2dyb3VuZCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEZvbnQgZm9udDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGZvbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGlzVmlzaWJsZTsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzVmlzaWJsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGJvb2wgaXNEaXNwbGF5Tm9uZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzRGlz
cGxheU5vbmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMZW5ndGggdGV4dEluZGVu
dDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHRJbmRlbnQpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb247CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0odGV4dERpcmVjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcG9wdXBNZW51U3R5bGUgPSBQb3B1cE1lbnVTdHlsZShmb3JlZ3JvdW5kLCBiYWNrZ3JvdW5k
LCBmb250LCBpc1Zpc2libGUsIGlzRGlzcGxheU5vbmUsIHRleHRJbmRlbnQsIHRleHREaXJlY3Rp
b24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHNwYWNlKQogewpAQCAtODI0LDYgKzg3
Nyw0MSBAQCBib29sIEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5ncz46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIEZpbGVDaAogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIEFyZ3VtZW50Q29kZXI8Rm9udD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZvbnQmIGZvbnQpCit7CisgICAgZW5jb2RlciA8PCBmb250LmZvbnREZXNjcmlwdGlv
bigpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8aW50Pihmb250LmxldHRlclNwYWNpbmco
KSk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxpbnQ+KGZvbnQud29yZFNwYWNpbmcoKSk7
Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxGb250Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgRm9udCYgZm9udCkKK3sKKyAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0
aXB0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZm9udERlc2NyaXB0aXB0aW9uKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGxldHRlclNwYWNpbmc7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShsZXR0ZXJTcGFjaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaW50IHdvcmRTcGFjaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUod29yZFNwYWNpbmcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb250ID0gRm9udChmb250RGVzY3JpcHRp
cHRpb24sIGxldHRlclNwYWNpbmcsIHdvcmRTcGFjaW5nKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBBcmd1bWVudENvZGVyPEZvbnREZXNjcmlwdGlvbj46OmVuY29kZShBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQor
eworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUgZm9udC4KK30KKwor
Ym9vbCBBcmd1bWVudENvZGVyPEZvbnREZXNjcmlwdGlvbj46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQoreworICAgIGZv
bnREZXNjcmlwdGlvbiA9IEZvbnREZXNjcmlwdGlvbigpOworICAgIHJldHVybiB0cnVlOworfQog
CiB2b2lkIEFyZ3VtZW50Q29kZXI8R3JhbW1hckRldGFpbD46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEdyYW1tYXJEZXRhaWwmIGRldGFpbCkKIHsKQEAgLTkzMyw2ICsx
MDIxLDE2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxLVVJMPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgS1VSTCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFy
Z3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgTGVuZ3RoJiBsZW5ndGgpCit7CisgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5ndGg+Ojpl
bmNvZGUoZW5jb2RlciwgbGVuZ3RoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPExlbmd0aD46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExlbmd0aCYgbGVuZ3RoKQoreworICAg
IHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExlbmd0aD46OmRlY29kZShkZWNvZGVyLCBsZW5n
dGgpOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQ+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpVc2VyU3R5bGVT
aGVldCYgdXNlclN0eWxlU2hlZXQpCiB7CiAgICAgZW5jb2RlciA8PCB1c2VyU3R5bGVTaGVldC5z
b3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCBjYWU5ZDlhLi5jODBmYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBDcmVkZW50aWFsOwogICAgIGNsYXNzIEN1cnNvcjsKICAgICBjbGFzcyBE
YXRhYmFzZURldGFpbHM7CisgICAgY2xhc3MgRm9udDsKKyAgICBjbGFzcyBGb250RGVzY3JpcHRp
b247CiAgICAgY2xhc3MgRmxvYXRQb2ludDsKICAgICBjbGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xh
c3MgRmxvYXRTaXplOwpAQCAtNDUsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CiAgICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBOb3Rp
ZmljYXRpb247CisgICAgY2xhc3MgUG9wdXBNZW51U3R5bGU7CiAgICAgY2xhc3MgUHJvdGVjdGlv
blNwYWNlOwogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwpAQCAtNTgsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgc3RydWN0IERy
YWdTZXNzaW9uOwogICAgIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogICAgIHN0cnVjdCBH
cmFtbWFyRGV0YWlsOworICAgIHN0cnVjdCBMZW5ndGg7CiAgICAgc3RydWN0IE1pbWVDbGFzc0lu
Zm87CiAgICAgc3RydWN0IFBsdWdpbkluZm87CiAgICAgc3RydWN0IFRleHRDaGVja2luZ1Jlc3Vs
dDsKQEAgLTc4LDYgKzgyLDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwogfTsKIAordGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGb250PiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZvbnQmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Rm9udCYpOworfTsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGb250RGVzY3JpcHRpb24+IHsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Rm9udERlc2NyaXB0aW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbiYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50PiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludCYp
OwpAQCAtMTMzLDYgKzE0NywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiB9
OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBvcHVwTWVudVN0
eWxlPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlBvcHVwTWVudVN0eWxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZT4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2UmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlJik7CkBAIC0yNDgsNiArMjY3LDExIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6S1VSTD4gewogICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpLVVJMJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4geworICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMZW5ndGgmKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6TGVuZ3RoJik7Cit9Owor
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlVzZXJTdHlsZVNoZWV0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwCmluZGV4IDg5NzExYWIuLjIxOGU4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQb3B1cEl0ZW0uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzksNiArNDAs
NyBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAgICAgLCBtX3RleHREaXJlY3Rpb24o
TFRSKQogICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoZmFsc2UpCiAgICAgLCBtX2lz
RW5hYmxlZCh0cnVlKQorICAgICwgbV9pc0xhYmVsKGZhbHNlKQogICAgICwgbV9pc1NlbGVjdGVk
KGZhbHNlKQogewogfQpAQCAtNTMsMTEgKzU1LDEyIEBAIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJ
dGVtKFR5cGUgdHlwZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgYm9v
bCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3Qg
U3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwg
Ym9vbCBpc1NlbGVjdGVkKQorV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlJiBpdGVtU3R5
bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4
dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVkKQogICAgIDog
bV90eXBlKHR5cGUpCiAgICAgLCBtX3RleHQodGV4dCkKLSAgICAsIG1fdGV4dERpcmVjdGlvbih0
ZXh0RGlyZWN0aW9uKQotICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlKQorICAgICwgbV90ZXh0RGlyZWN0aW9uKGl0ZW1TdHlsZS50ZXh0RGly
ZWN0aW9uKCkpCisgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShpdGVtU3R5bGUuaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpCisgICAgLCBtX2l0ZW1TdHlsZShpdGVtU3R5bGUpCiAg
ICAgLCBtX3Rvb2xUaXAodG9vbFRpcCkKICAgICAsIG1fYWNjZXNzaWJpbGl0eVRleHQoYWNjZXNz
aWJpbGl0eVRleHQpCiAgICAgLCBtX2lzRW5hYmxlZChpc0VuYWJsZWQpCkBAIC03Miw2ICs3NSw3
IEBAIHZvaWQgV2ViUG9wdXBJdGVtOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV90ZXh0OwogICAgIGVuY29kZXIuZW5jb2Rl
RW51bShtX3RleHREaXJlY3Rpb24pOwogICAgIGVuY29kZXIgPDwgbV9oYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGU7CisgICAgZW5jb2RlciA8PCBtX2l0ZW1TdHlsZTsKICAgICBlbmNvZGVyIDw8IG1f
dG9vbFRpcDsKICAgICBlbmNvZGVyIDw8IG1fYWNjZXNzaWJpbGl0eVRleHQ7CiAgICAgZW5jb2Rl
ciA8PCBtX2lzRW5hYmxlZDsKQEAgLTg4LDcgKzkyLDcgQEAgYm9vbCBXZWJQb3B1cEl0ZW06OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlBvcHVwSXRlbSYgaXRl
bSkKICAgICBTdHJpbmcgdGV4dDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rp
b247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odGV4dERpcmVjdGlvbikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTk3LDYgKzEwMSwxMCBAQCBib29sIFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVt
KQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaXRlbVN0eWxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CiAgICAgU3RyaW5nIHRvb2xUaXA7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0b29sVGlwKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE3LDcgKzEyNSw3IEBAIGJvb2wgV2ViUG9wdXBJ
dGVtOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQb3B1cEl0
ZW0mIGl0ZW0pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1NlbGVjdGVkKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaXRlbSA9IFdlYlBvcHVwSXRlbSh0eXBlLCB0ZXh0LCB0ZXh0
RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxp
dHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlzU2VsZWN0ZWQpOworICAgIGl0ZW0gPSBXZWJQ
b3B1cEl0ZW0odHlwZSwgdGV4dCwgaXRlbVN0eWxlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4
dCwgaXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4IDg4NGVlOWUuLmMzZDU3ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgV2ViUG9wdXBJdGVtX2gKICNkZWZpbmUgV2ViUG9wdXBJdGVtX2gKIAorI2luY2x1ZGUg
PFdlYkNvcmUvUG9wdXBNZW51U3R5bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDQsNyArNDUsNyBA
QCBzdHJ1Y3QgV2ViUG9wdXBJdGVtIHsKIAogICAgIFdlYlBvcHVwSXRlbSgpOwogICAgIFdlYlBv
cHVwSXRlbShUeXBlKTsKLSAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwg
Y29uc3QgU3RyaW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBi
b29sIGlzRW5hYmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpOworICAgIFdlYlBv
cHVwSXRlbShUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNvcmU6OlBvcHVwTWVu
dVN0eWxlJiBpdGVtU3R5bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBh
Y2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1Nl
bGVjdGVkKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBX
ZWJQb3B1cEl0ZW0mKTsKQEAgLTUzLDYgKzU0LDcgQEAgc3RydWN0IFdlYlBvcHVwSXRlbSB7CiAg
ICAgU3RyaW5nIG1fdGV4dDsKICAgICBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIG1fdGV4dERpcmVj
dGlvbjsKICAgICBib29sIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOworICAgIFdlYkNvcmU6
OlBvcHVwTWVudVN0eWxlIG1faXRlbVN0eWxlOwogICAgIFN0cmluZyBtX3Rvb2xUaXA7CiAgICAg
U3RyaW5nIG1fYWNjZXNzaWJpbGl0eVRleHQ7CiAgICAgYm9vbCBtX2lzRW5hYmxlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5j
cHAKaW5kZXggYTQxODM5YS4uNzU3YTFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKQEAgLTU4LDYgKzU4LDcgQEAg
R3RrQWN0aW9uKiBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlR3RrQWN0aW9uRm9yTWVudUl0
ZW0oY29uc3QgV2ViUG9wdXBJdGVtJgogICAgIEd0a0FjdGlvbiogYWN0aW9uID0gZ3RrX2FjdGlv
bl9uZXcoYWN0aW9uTmFtZS5nZXQoKSwgaXRlbS5tX3RleHQudXRmOCgpLmRhdGEoKSwgaXRlbS5t
X3Rvb2xUaXAudXRmOCgpLmRhdGEoKSwgMCk7CiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpF
Q1QoYWN0aW9uKSwgInBvcHVwLW1lbnUtYWN0aW9uLWluZGV4IiwgR0lOVF9UT19QT0lOVEVSKGl0
ZW1JbmRleCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYWN0aW9uLCAiYWN0aXZhdGUiLCBHX0NB
TExCQUNLKG1lbnVJdGVtQWN0aXZhdGVkKSwgdGhpcyk7CisgICAgZ3RrX2FjdGlvbl9zZXRfdmlz
aWJsZShhY3Rpb24sICFpdGVtLm1faXRlbVN0eWxlLmlzRGlzcGxheU5vbmUoKSk7CiAgICAgZ3Rr
X2FjdGlvbl9zZXRfc2Vuc2l0aXZlKGFjdGlvbiwgaXRlbS5tX2lzRW5hYmxlZCk7CiAKICAgICBy
ZXR1cm4gYWN0aW9uOwpAQCAtNjUsMTAgKzY2LDExIEBAIEd0a0FjdGlvbiogV2ViUG9wdXBNZW51
UHJveHlHdGs6OmNyZWF0ZUd0a0FjdGlvbkZvck1lbnVJdGVtKGNvbnN0IFdlYlBvcHVwSXRlbSYK
IAogdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0
JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0
b3IsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhJiBkYXRhLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7Ci0gICAgaWYgKG1fcG9w
dXApCi0gICAgICAgIG1fcG9wdXAtPmNsZWFyKCk7Ci0gICAgZWxzZQorICAgIGlmICghbV9wb3B1
cCkgewogICAgICAgICBtX3BvcHVwID0gR3RrUG9wdXBNZW51OjpjcmVhdGUoKTsKKyAgICAgICAg
Z19zaWduYWxfY29ubmVjdChtX3BvcHVwLT5wbGF0Zm9ybU1lbnUoKSwgInVubWFwIiwgR19DQUxM
QkFDSyhtZW51VW5tYXBwZWQpLCB0aGlzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9wb3B1cC0+
Y2xlYXIoKTsKIAogICAgIGNvbnN0IGludCBzaXplID0gaXRlbXMuc2l6ZSgpOwogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CkBAIC04Myw3ICs4NSw2IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERp
cmVjdGlvbiB0ZXh0CiAgICAgSW50UG9pbnQgbWVudVBvc2l0aW9uID0gY29udmVydFdpZGdldFBv
aW50VG9TY3JlZW5Qb2ludChtX3dlYlZpZXcsIHJlY3QubG9jYXRpb24oKSk7CiAgICAgbWVudVBv
c2l0aW9uLm1vdmUoMCwgcmVjdC5oZWlnaHQoKSk7CiAKLSAgICBndWxvbmcgdW5tYXBIYW5kbGVy
ID0gZ19zaWduYWxfY29ubmVjdChtX3BvcHVwLT5wbGF0Zm9ybU1lbnUoKSwgInVubWFwIiwgR19D
QUxMQkFDSyhtZW51VW5tYXBwZWQpLCB0aGlzKTsKICAgICBtX3BvcHVwLT5wb3BVcChyZWN0LnNp
emUoKSwgbWVudVBvc2l0aW9uLCBzaXplLCBzZWxlY3RlZEluZGV4LCBtX2NsaWVudC0+Y3VycmVu
dGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKSA/IG1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNz
ZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpIDogMCk7CiAKICAgICAvLyBQb3B1cE1l
bnUgY2FuIGZhaWwgdG8gb3BlbiB3aGVuIHRoZXJlIGlzIG5vIG1vdXNlIGdyYWIuCkBAIC0xMDMs
OCArMTA0LDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25z
dCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIG1fcnVuTG9vcC5jbGVh
cigpOwogCi0gICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KG1fcG9wdXAtPnBsYXRmb3Jt
TWVudSgpLCB1bm1hcEhhbmRsZXIpOwotCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKaW5kZXggZDRhZjkyZi4uYmYyOTFkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9w
dXBNZW51LmNwcApAQCAtODcsMTMgKzg3LDggQEAgVmVjdG9yPFdlYlBvcHVwSXRlbT4gV2ViUG9w
dXBNZW51Ojpwb3B1bGF0ZUl0ZW1zKCkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7
ICsraSkgewogICAgICAgICBpZiAobV9wb3B1cENsaWVudC0+aXRlbUlzU2VwYXJhdG9yKGkpKQog
ICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRlbShXZWJQb3B1cEl0ZW06OlNlcGFy
YXRvcikpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9y
dCBmb3Igc3R5bGluZyB0aGUgZm9udC4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9y
dCBmb3Igc3R5bGluZyB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMuCi0gICAg
ICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBjdXN0b21pemUgdGV4dCBjb2xvciB3aGVu
IGFuIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQuCi0gICAgICAgICAgICBQb3B1cE1lbnVTdHlsZSBpdGVt
U3R5bGUgPSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaSk7Ci0gICAgICAgICAgICBpdGVtcy5h
cHBlbmQoV2ViUG9wdXBJdGVtKFdlYlBvcHVwSXRlbTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRl
bVRleHQoaSksIGl0ZW1TdHlsZS50ZXh0RGlyZWN0aW9uKCksIGl0ZW1TdHlsZS5oYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGUoKSwgbV9wb3B1cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1fcG9wdXBD
bGllbnQtPml0ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzRW5h
YmxlZChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSksIG1fcG9wdXBDbGllbnQtPml0
ZW1Jc1NlbGVjdGVkKGkpKSk7Ci0gICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
aXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRlbShXZWJQb3B1cEl0ZW06Okl0ZW0sIG1fcG9wdXBDbGll
bnQtPml0ZW1UZXh0KGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaSksIG1fcG9wdXBDbGll
bnQtPml0ZW1Ub29sVGlwKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQo
aSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0VuYWJsZWQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1J
c0xhYmVsKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNTZWxlY3RlZChpKSkpOwogICAgIH0KIAog
ICAgIHJldHVybiBpdGVtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQy
Lm9yZGVyIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKaW5kZXggMGMyYzUzNS4u
YzFkMmE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKKysr
IGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKQEAgLTIyNjYsNiArMjI2Niw4IEBA
IF9fWk4zV1RGMTFWZWN0b3JNb3ZlcklMYjBFTjZXZWJLaXQxMldlYlBvcHVwSXRlbUVFNG1vdmVF
UEtTMl9TNV9QUzJfCiBfX1pONldlYktpdDEyV2ViUG9wdXBJdGVtQzJFUktTMF8KIF9fWk4zV1RG
NlZlY3RvcklONldlYktpdDEyV2ViUG9wdXBJdGVtRUxtMEVFMTRzaHJpbmtDYXBhY2l0eUVtCiBf
X1pOM1dURjZWZWN0b3JJTjZXZWJLaXQxMldlYlBvcHVwSXRlbUVMbTBFRUQyRXYKK19fWk42V2Vi
S2l0MTJXZWJQb3B1cEl0ZW1DMkVOUzBfNFR5cGVFUktOM1dURjZTdHJpbmdFUktON1dlYkNvcmUx
NFBvcHVwTWVudVN0eWxlRVM1X1M1X2JiYgorX19aTjdDb3JlSVBDMTNBcmd1bWVudENvZGVySU43
V2ViQ29yZTE0UG9wdXBNZW51U3R5bGVFRTZkZWNvZGVFUk5TXzE1QXJndW1lbnREZWNvZGVyRVJT
Ml8KIF9fWk42V2ViS2l0MjFQbGF0Zm9ybVBvcHVwTWVudURhdGE2ZGVjb2RlRVBON0NvcmVJUEMx
NUFyZ3VtZW50RGVjb2RlckVSUzBfCiBfX1pONldlYktpdDhGb250SW5mbzZkZWNvZGVFUE43Q29y
ZUlQQzE1QXJndW1lbnREZWNvZGVyRVJTMF8KIF9fWk43Q29yZUlQQzE4Y2FsbE1lbWJlckZ1bmN0
aW9uSU42V2ViS2l0MTJXZWJQYWdlUHJveHlFTVMyX0Z2UktON1dlYkNvcmU3SW50UmVjdEV5UktO
M1dURjZWZWN0b3JJTlMxXzEyV2ViUG9wdXBJdGVtRUxtMEVFRWlSS05TMV8yMVBsYXRmb3JtUG9w
dXBNZW51RGF0YUVFUzRfeVNBX2lTRF9FRXZSS05TXzEwQXJndW1lbnRzNUlUMV9UMl9UM19UNF9U
NV9FRVBUX1QwXwpAQCAtMzM4NiwzICszMzg4LDggQEAgX19aTjZXZWJLaXQ3V2ViUGFnZTM2c3Vz
cGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zRXYKIF9fWk42V2ViS2l0N1dlYlBhZ2Uz
NXJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zRXYKIF9fWk5LN1dlYkNvcmU1RnJh
bWUyNXRyYWNrZWRSZXBhaW50UmVjdHNBc1RleHRFdgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzE3
c2V0VHJhY2tzUmVwYWludHNFYgorX19aTjdXZWJDb3JlNEZvbnRDMUVSS1MwXworX19aTjdXZWJD
b3JlNEZvbnRDMUVSS05TXzE1Rm9udERlc2NyaXB0aW9uRXNzCitfX1pON0NvcmVJUEMxM0FyZ3Vt
ZW50Q29kZXJJTjdXZWJDb3JlNEZvbnRFRTZkZWNvZGVFUk5TXzE1QXJndW1lbnREZWNvZGVyRVJT
Ml8KK19fWk5LN1dlYkNvcmU2TGVuZ3RoMjJpbmNyZW1lbnRDYWxjdWxhdGVkUmVmRXYKK19fWk43
V2ViQ29yZTZMZW5ndGgxNGluaXRGcm9tTGVuZ3RoRVJLUzBfClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194060</attachid>
            <date>2013-03-20 08:04:41 -0700</date>
            <delta_ts>2013-05-20 13:18:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>22194</size>
            <attacher name="Oleg Smirnov">oleg_smirnov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiOWJhNjQ2Li44Y2JhNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDMtMjAgIE9sZWcgU21pcm5vdiAgPG9sZWcuc21pcm5vdkBsZ2UuY29tPgorCisg
ICAgICAgIFtHdGtdIFtXSzJdIGRpc3BsYXk6bm9uZSBoYXMgbm8gZWZmZWN0IG9uIDxvcHRpb24+
IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIHBsYXRmb3JtL1BvcHVwTWVu
dVN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U3R5
bGUpOgorCiAyMDEzLTAzLTIwICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtSZXNvdXJjZXNdIExvY2FsIFN0b3JhZ2U6
ICJBZGQgaXRlbSIgcm93IGhlaWdodCBkb2Vzbid0IG1hdGNoIHVuZGVybHlpbmcgZ3JpZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCmluZGV4IDY4OWVkMjkuLmNhYWI0
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaApAQCAtMzcsNiAr
MzcsMTUgQEAgY2xhc3MgUG9wdXBNZW51U3R5bGUgewogcHVibGljOgogICAgIGVudW0gUG9wdXBN
ZW51VHlwZSB7IFNlbGVjdFBvcHVwLCBBdXRvZmlsbFBvcHVwIH07CiAgICAgZW51bSBCYWNrZ3Jv
dW5kQ29sb3JUeXBlIHsgRGVmYXVsdEJhY2tncm91bmRDb2xvciwgQ3VzdG9tQmFja2dyb3VuZENv
bG9yIH07CisgICAgUG9wdXBNZW51U3R5bGUoKQorICAgICAgICA6IG1fdmlzaWJsZShmYWxzZSkK
KyAgICAgICAgLCBtX2lzRGlzcGxheU5vbmUoZmFsc2UpCisgICAgICAgICwgbV90ZXh0RGlyZWN0
aW9uKFJUTCkKKyAgICAgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShmYWxzZSkKKyAg
ICAgICAgLCBtX2JhY2tncm91bmRDb2xvclR5cGUoRGVmYXVsdEJhY2tncm91bmRDb2xvcikKKyAg
ICAgICAgLCBtX21lbnVUeXBlKFNlbGVjdFBvcHVwKQorICAgIHsKKyAgICB9CiAgICAgUG9wdXBN
ZW51U3R5bGUoY29uc3QgQ29sb3ImIGZvcmVncm91bmQsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5k
LCBjb25zdCBGb250JiBmb250LCBib29sIHZpc2libGUsIGJvb2wgaXNEaXNwbGF5Tm9uZSwgTGVu
Z3RoIHRleHRJbmRlbnQsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUsIEJhY2tncm91bmRDb2xvclR5cGUgYmFja2dyb3VuZENvbG9yVHlw
ZSA9IERlZmF1bHRCYWNrZ3JvdW5kQ29sb3IsIFBvcHVwTWVudVR5cGUgbWVudVR5cGUgPSBTZWxl
Y3RQb3B1cCkKICAgICAgICAgOiBtX2ZvcmVncm91bmRDb2xvcihmb3JlZ3JvdW5kKQogICAgICAg
ICAsIG1fYmFja2dyb3VuZENvbG9yKGJhY2tncm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGNjYmJjYi4u
MjhmZDM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAzLTIwICBPbGVnIFNt
aXJub3YgIDxvbGVnLnNtaXJub3ZAbGdlLmNvbT4KKworICAgICAgICBbR3RrXSBbV0syXSBkaXNw
bGF5Om5vbmUgaGFzIG5vIGVmZmVjdCBvbiA8b3B0aW9uPiBlbGVtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTg4MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFBvcHVwTWVudVN0eWxlIGFz
IHN0eWxpbmcgZm9yIFdlYlBvcHVwTWVudS4KKworICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
ICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAgICAgICAg
KENvcmVJUEMpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06
OldlYlBvcHVwSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQb3B1cEl0ZW0uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVBy
b3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0
ZUd0a0FjdGlvbkZvck1lbnVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJv
eHlHdGs6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUG9wdXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51Ojpwb3B1
bGF0ZUl0ZW1zKToKKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRlcjoKKwogMjAxMy0wMy0xOSAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+IGFuZCBNaWto
YWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAg
IFtFRkxdW1dLMl0gU2VwYXJhdGUgV2ViVmlldyBmdXJ0aGVyIGZyb20gRXdrVmlldwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggYzc4Y2IxYi4uYjMxOWIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JZGVu
dGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWF0cml4M0RU
cmFuc2Zvcm1PcGVyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01hdHJpeFRyYW5zZm9ybU9w
ZXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRp
b24uaD4KQEAgLTg4LDE2ICs4Nyw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50M0QmCiAgICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZGVjb2RlKGRlY29kZXIsIGZs
b2F0UG9pbnQzRCk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMZW5ndGgmIGxlbmd0aCkKLXsKLSAgICBTaW1w
bGVBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCBsZW5ndGgpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgTGVuZ3RoJiBsZW5ndGgpCi17Ci0gICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVu
Z3RoPjo6ZGVjb2RlKGRlY29kZXIsIGxlbmd0aCk7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxU
cmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCkKIHsKICAgICBT
aW1wbGVBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIs
IHRyYW5zZm9ybWF0aW9uTWF0cml4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggZDQyYWU3OS4uMTEwNGE2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQy
LDcgKzQyLDYgQEAgc3RydWN0IFRpbGVDcmVhdGlvbkluZm87CiBzdHJ1Y3QgVGlsZVVwZGF0ZUlu
Zm87CiBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIGNsYXNzIFRyYW5zZm9ybU9wZXJhdGlv
bnM7Ci1zdHJ1Y3QgTGVuZ3RoOwogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogY2xhc3MgRmls
dGVyT3BlcmF0aW9uczsKQEAgLTY0LDExICs2Myw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludDNEPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwogfTsKIAotdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3RoJik7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYp
OwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCAxNmVkYzU0Li5iMmZhOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzYsMTEgKzM2LDE1IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRm9udERlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFw
aGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9MZW5ndGguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVN0eWxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90
ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtMjI1LDYgKzIyOSw1NSBAQCBib29s
IEFyZ3VtZW50Q29kZXI8QXV0aGVudGljYXRpb25DaGFsbGVuZ2U+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBBdQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50
Q29kZXI8UG9wdXBNZW51U3R5bGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBQb3B1cE1lbnVTdHlsZSYgcG9wdXBNZW51U3R5bGUpCit7CisgICAgZW5jb2RlciA8PCBw
b3B1cE1lbnVTdHlsZS5mb3JlZ3JvdW5kQ29sb3IoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVu
dVN0eWxlLmJhY2tncm91bmRDb2xvcigpOworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUu
Zm9udCgpOworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuaXNWaXNpYmxlKCk7CisgICAg
ZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5pc0Rpc3BsYXlOb25lKCk7CisgICAgZW5jb2RlciA8
PCBwb3B1cE1lbnVTdHlsZS50ZXh0SW5kZW50KCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBv
cHVwTWVudVN0eWxlLnRleHREaXJlY3Rpb24oKSk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVT
dHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVy
PFBvcHVwTWVudVN0eWxlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUG9wdXBN
ZW51U3R5bGUmIHBvcHVwTWVudVN0eWxlKQoreworICAgIENvbG9yIGZvcmVncm91bmQ7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShmb3JlZ3JvdW5kKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgQ29sb3IgYmFja2dyb3VuZDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJhY2tncm91
bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBGb250IGZvbnQ7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShmb250KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBp
c1Zpc2libGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1Zpc2libGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGlzRGlzcGxheU5vbmU7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpc0Rpc3BsYXlOb25lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTGVu
Z3RoIHRleHRJbmRlbnQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0ZXh0SW5kZW50KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHRleHREaXJlY3Rpb24pKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHBvcHVwTWVudVN0eWxlID0gUG9wdXBNZW51U3R5bGUoZm9yZWdyb3Vu
ZCwgYmFja2dyb3VuZCwgZm9udCwgaXNWaXNpYmxlLCBpc0Rpc3BsYXlOb25lLCB0ZXh0SW5kZW50
LCB0ZXh0RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIHJldHVybiB0
cnVlOworfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkKIHsK
QEAgLTgyNCw2ICs4NzcsNDEgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZpbGVDaG9vc2VyU2V0dGlu
Z3M+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGaWxlQ2gKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPEZvbnQ+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBGb250JiBmb250KQoreworICAgIGVuY29kZXIgPDwgZm9udC5m
b250RGVzY3JpcHRpb24oKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGludD4oZm9udC5s
ZXR0ZXJTcGFjaW5nKCkpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8aW50Pihmb250Lndv
cmRTcGFjaW5nKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8Rm9udD46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEZvbnQmIGZvbnQpCit7CisgICAgRm9udERlc2NyaXB0aW9u
IGZvbnREZXNjcmlwdGlwdGlvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZvbnREZXNjcmlw
dGlwdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGludCBsZXR0ZXJTcGFjaW5n
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGV0dGVyU3BhY2luZykpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGludCB3b3JkU3BhY2luZzsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHdvcmRTcGFjaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9udCA9IEZvbnQo
Zm9udERlc2NyaXB0aXB0aW9uLCBsZXR0ZXJTcGFjaW5nLCB3b3JkU3BhY2luZyk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxGb250RGVzY3JpcHRpb24+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbikKK3sKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHN0eWxpbmcgdGhl
IGZvbnQuCit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxGb250RGVzY3JpcHRpb24+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
bikKK3sKKyAgICBmb250RGVzY3JpcHRpb24gPSBGb250RGVzY3JpcHRpb24oKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENvZGVyPEdyYW1tYXJEZXRhaWw+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHcmFtbWFyRGV0YWlsJiBkZXRhaWwpCiB7
CkBAIC05MzMsNiArMTAyMSwxNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8S1VSTD46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIEtVUkwmIHJlc3VsdCkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IExlbmd0aCYgbGVuZ3RoKQoreworICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGxlbmd0aCk7Cit9CisKK2Jvb2wgQXJndW1lbnRD
b2RlcjxMZW5ndGg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMZW5ndGgmIGxl
bmd0aCkKK3sKKyAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5ndGg+OjpkZWNvZGUo
ZGVjb2RlciwgbGVuZ3RoKTsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVzZXJT
dHlsZVNoZWV0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29y
ZTo6VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQogewogICAgIGVuY29kZXIgPDwgdXNl
clN0eWxlU2hlZXQuc291cmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKaW5kZXggY2FlOWQ5YS4uYzgwZmEzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzUsNiArMzUsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ3JlZGVudGlhbDsKICAgICBjbGFzcyBDdXJzb3I7
CiAgICAgY2xhc3MgRGF0YWJhc2VEZXRhaWxzOworICAgIGNsYXNzIEZvbnQ7CisgICAgY2xhc3Mg
Rm9udERlc2NyaXB0aW9uOwogICAgIGNsYXNzIEZsb2F0UG9pbnQ7CiAgICAgY2xhc3MgRmxvYXRS
ZWN0OwogICAgIGNsYXNzIEZsb2F0U2l6ZTsKQEAgLTQ1LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwogICAgIGNsYXNzIEtVUkw7CiAg
ICAgY2xhc3MgTm90aWZpY2F0aW9uOworICAgIGNsYXNzIFBvcHVwTWVudVN0eWxlOwogICAgIGNs
YXNzIFByb3RlY3Rpb25TcGFjZTsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKQEAgLTU4LDYgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIHN0cnVjdCBEcmFnU2Vzc2lvbjsKICAgICBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsK
ICAgICBzdHJ1Y3QgR3JhbW1hckRldGFpbDsKKyAgICBzdHJ1Y3QgTGVuZ3RoOwogICAgIHN0cnVj
dCBNaW1lQ2xhc3NJbmZvOwogICAgIHN0cnVjdCBQbHVnaW5JbmZvOwogICAgIHN0cnVjdCBUZXh0
Q2hlY2tpbmdSZXN1bHQ7CkBAIC03OCw2ICs4MiwxNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybT4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKIH07CiAK
K3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9udD4geworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGb250Jik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZvbnQm
KTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rm9udERl
c2NyaXB0aW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGb250RGVzY3JpcHRpb24mKTsKK307CisKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludD4gewogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OkZsb2F0UG9pbnQmKTsKQEAgLTEzMyw2ICsxNDcsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gewogICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSYpOworfTsKKwog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwpAQCAtMjQ4LDYgKzI2NywxMSBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktVUkw+IHsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6S1VSTCYpOwogfTsKIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TGVuZ3Ro
Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6Okxl
bmd0aCYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpV
c2VyU3R5bGVTaGVldD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCYpOwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCA4OTcxMWFiLi4yMThlOGZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTM5LDYgKzQwLDcgQEAgV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oKQogICAgICwgbV90
ZXh0RGlyZWN0aW9uKExUUikKICAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNl
KQogICAgICwgbV9pc0VuYWJsZWQodHJ1ZSkKKyAgICAsIG1faXNMYWJlbChmYWxzZSkKICAgICAs
IG1faXNTZWxlY3RlZChmYWxzZSkKIHsKIH0KQEAgLTUzLDExICs1NSwxMiBAQCBXZWJQb3B1cEl0
ZW06OldlYlBvcHVwSXRlbShUeXBlIHR5cGUpCiB7CiB9CiAKLVdlYlBvcHVwSXRlbTo6V2ViUG9w
dXBJdGVtKFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0RGlyZWN0aW9uIHRleHRE
aXJlY3Rpb24sIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJpbmcmIHRv
b2xUaXAsIGNvbnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBi
b29sIGlzTGFiZWwsIGJvb2wgaXNTZWxlY3RlZCkKK1dlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVt
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBXZWJDb3JlOjpQb3B1cE1lbnVT
dHlsZSYgaXRlbVN0eWxlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmluZyYgYWNj
ZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFiZWwsIGJvb2wgaXNTZWxl
Y3RlZCkKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV90ZXh0KHRleHQpCi0gICAgLCBtX3Rl
eHREaXJlY3Rpb24odGV4dERpcmVjdGlvbikKLSAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJy
aWRlKGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSkKKyAgICAsIG1fdGV4dERpcmVjdGlvbihpdGVt
U3R5bGUudGV4dERpcmVjdGlvbigpKQorICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUo
aXRlbVN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpKQorICAgICwgbV9pdGVtU3R5bGUo
aXRlbVN0eWxlKQogICAgICwgbV90b29sVGlwKHRvb2xUaXApCiAgICAgLCBtX2FjY2Vzc2liaWxp
dHlUZXh0KGFjY2Vzc2liaWxpdHlUZXh0KQogICAgICwgbV9pc0VuYWJsZWQoaXNFbmFibGVkKQpA
QCAtNzIsNiArNzUsNyBAQCB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdGV4dDsKICAgICBl
bmNvZGVyLmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKICAgICBlbmNvZGVyIDw8IG1faGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlOworICAgIGVuY29kZXIgPDwgbV9pdGVtU3R5bGU7CiAgICAg
ZW5jb2RlciA8PCBtX3Rvb2xUaXA7CiAgICAgZW5jb2RlciA8PCBtX2FjY2Vzc2liaWxpdHlUZXh0
OwogICAgIGVuY29kZXIgPDwgbV9pc0VuYWJsZWQ7CkBAIC04OCw3ICs5Miw3IEBAIGJvb2wgV2Vi
UG9wdXBJdGVtOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQ
b3B1cEl0ZW0mIGl0ZW0pCiAgICAgU3RyaW5nIHRleHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgVGV4dERpcmVjdGlv
biB0ZXh0RGlyZWN0aW9uOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHRleHREaXJlY3Rp
b24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC05Nyw2ICsxMDEsMTAgQEAgYm9vbCBXZWJQ
b3B1cEl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlBv
cHVwSXRlbSYgaXRlbSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1RleHREaXJlY3Rpb25P
dmVycmlkZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIFBvcHVwTWVudVN0eWxlIGl0
ZW1TdHlsZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGl0ZW1TdHlsZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIFN0cmluZyB0b29sVGlwOwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodG9vbFRpcCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExNyw3ICsxMjUsNyBAQCBi
b29sIFdlYlBvcHVwSXRlbTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgV2ViUG9wdXBJdGVtJiBpdGVtKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNTZWxlY3Rl
ZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGl0ZW0gPSBXZWJQb3B1cEl0ZW0odHlw
ZSwgdGV4dCwgdGV4dERpcmVjdGlvbiwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlw
LCBhY2Nlc3NpYmlsaXR5VGV4dCwgaXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKKyAg
ICBpdGVtID0gV2ViUG9wdXBJdGVtKHR5cGUsIHRleHQsIGl0ZW1TdHlsZSwgdG9vbFRpcCwgYWNj
ZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1
cEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaAppbmRleCA4ODRl
ZTllLi5jM2Q1Nzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJ
dGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIFdlYlBvcHVwSXRlbV9oCiAjZGVmaW5lIFdlYlBvcHVwSXRlbV9o
CiAKKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVN0eWxlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTQ0LDcgKzQ1LDcgQEAgc3RydWN0IFdlYlBvcHVwSXRlbSB7CiAKICAgICBXZWJQb3B1cEl0ZW0o
KTsKICAgICBXZWJQb3B1cEl0ZW0oVHlwZSk7Ci0gICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3Np
YmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVk
KTsKKyAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBXZWJD
b3JlOjpQb3B1cE1lbnVTdHlsZSYgaXRlbVN0eWxlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNv
bnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFi
ZWwsIGJvb2wgaXNTZWxlY3RlZCk7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiwgV2ViUG9wdXBJdGVtJik7CkBAIC01Myw2ICs1NCw3IEBAIHN0cnVjdCBXZWJQ
b3B1cEl0ZW0gewogICAgIFN0cmluZyBtX3RleHQ7CiAgICAgV2ViQ29yZTo6VGV4dERpcmVjdGlv
biBtX3RleHREaXJlY3Rpb247CiAgICAgYm9vbCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBtX2l0ZW1TdHlsZTsKICAgICBTdHJpbmcgbV90
b29sVGlwOwogICAgIFN0cmluZyBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGJvb2wgbV9pc0Vu
YWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVw
TWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBN
ZW51UHJveHlHdGsuY3BwCmluZGV4IGE0MTgzOWEuLjc1N2ExZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCkBAIC01
OCw2ICs1OCw3IEBAIEd0a0FjdGlvbiogV2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZUd0a0Fj
dGlvbkZvck1lbnVJdGVtKGNvbnN0IFdlYlBvcHVwSXRlbSYKICAgICBHdGtBY3Rpb24qIGFjdGlv
biA9IGd0a19hY3Rpb25fbmV3KGFjdGlvbk5hbWUuZ2V0KCksIGl0ZW0ubV90ZXh0LnV0ZjgoKS5k
YXRhKCksIGl0ZW0ubV90b29sVGlwLnV0ZjgoKS5kYXRhKCksIDApOwogICAgIGdfb2JqZWN0X3Nl
dF9kYXRhKEdfT0JKRUNUKGFjdGlvbiksICJwb3B1cC1tZW51LWFjdGlvbi1pbmRleCIsIEdJTlRf
VE9fUE9JTlRFUihpdGVtSW5kZXgpKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGFjdGlvbiwgImFj
dGl2YXRlIiwgR19DQUxMQkFDSyhtZW51SXRlbUFjdGl2YXRlZCksIHRoaXMpOworICAgIGd0a19h
Y3Rpb25fc2V0X3Zpc2libGUoYWN0aW9uLCAhaXRlbS5tX2l0ZW1TdHlsZS5pc0Rpc3BsYXlOb25l
KCkpOwogICAgIGd0a19hY3Rpb25fc2V0X3NlbnNpdGl2ZShhY3Rpb24sIGl0ZW0ubV9pc0VuYWJs
ZWQpOwogCiAgICAgcmV0dXJuIGFjdGlvbjsKQEAgLTY1LDEwICs2NiwxMSBAQCBHdGtBY3Rpb24q
IFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVHdGtBY3Rpb25Gb3JNZW51SXRlbShjb25zdCBX
ZWJQb3B1cEl0ZW0mCiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1lbnUo
Y29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUg
cGFnZVNjYWxlRmFjdG9yLCBjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0
IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYgZGF0YSwgaW50MzJfdCBzZWxlY3RlZEluZGV4KQogewot
ICAgIGlmIChtX3BvcHVwKQotICAgICAgICBtX3BvcHVwLT5jbGVhcigpOwotICAgIGVsc2UKKyAg
ICBpZiAoIW1fcG9wdXApIHsKICAgICAgICAgbV9wb3B1cCA9IEd0a1BvcHVwTWVudTo6Y3JlYXRl
KCk7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wb3B1cC0+cGxhdGZvcm1NZW51KCksICJ1
bm1hcCIsIEdfQ0FMTEJBQ0sobWVudVVubWFwcGVkKSwgdGhpcyk7CisgICAgfSBlbHNlCisgICAg
ICAgIG1fcG9wdXAtPmNsZWFyKCk7CiAKICAgICBjb25zdCBpbnQgc2l6ZSA9IGl0ZW1zLnNpemUo
KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewpAQCAtODMsNyArODUsNiBA
QCB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3Qm
IHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIEludFBvaW50IG1lbnVQb3NpdGlvbiA9IGNv
bnZlcnRXaWRnZXRQb2ludFRvU2NyZWVuUG9pbnQobV93ZWJWaWV3LCByZWN0LmxvY2F0aW9uKCkp
OwogICAgIG1lbnVQb3NpdGlvbi5tb3ZlKDAsIHJlY3QuaGVpZ2h0KCkpOwogCi0gICAgZ3Vsb25n
IHVubWFwSGFuZGxlciA9IGdfc2lnbmFsX2Nvbm5lY3QobV9wb3B1cC0+cGxhdGZvcm1NZW51KCks
ICJ1bm1hcCIsIEdfQ0FMTEJBQ0sobWVudVVubWFwcGVkKSwgdGhpcyk7CiAgICAgbV9wb3B1cC0+
cG9wVXAocmVjdC5zaXplKCksIG1lbnVQb3NpdGlvbiwgc2l6ZSwgc2VsZWN0ZWRJbmRleCwgbV9j
bGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkgPyBtX2NsaWVudC0+Y3Vy
cmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKSA6IDApOwogCiAg
ICAgLy8gUG9wdXBNZW51IGNhbiBmYWlsIHRvIG9wZW4gd2hlbiB0aGVyZSBpcyBubyBtb3VzZSBn
cmFiLgpAQCAtMTAzLDggKzEwNCw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3dQ
b3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAKICAgICBt
X3J1bkxvb3AuY2xlYXIoKTsKIAotICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdChtX3Bv
cHVwLT5wbGF0Zm9ybU1lbnUoKSwgdW5tYXBIYW5kbGVyKTsKLQogICAgIGlmICghbV9jbGllbnQp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IGQ0YWY5MmYuLmJmMjkx
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKQEAgLTg3LDEzICs4Nyw4IEBAIFZlY3RvcjxXZWJQb3B1
cEl0ZW0+IFdlYlBvcHVwTWVudTo6cG9wdWxhdGVJdGVtcygpCiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1Jc1Nl
cGFyYXRvcihpKSkKICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXZWJQb3B1cEl0ZW0oV2ViUG9w
dXBJdGVtOjpTZXBhcmF0b3IpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBGSVhN
RTogQWRkIHN1cHBvcnQgZm9yIHN0eWxpbmcgdGhlIGZvbnQuCi0gICAgICAgICAgICAvLyBGSVhN
RTogQWRkIHN1cHBvcnQgZm9yIHN0eWxpbmcgdGhlIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQg
Y29sb3JzLgotICAgICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY3VzdG9taXplIHRl
eHQgY29sb3Igd2hlbiBhbiBpdGVtIGlzIGhpZ2hsaWdodGVkLgotICAgICAgICAgICAgUG9wdXBN
ZW51U3R5bGUgaXRlbVN0eWxlID0gbV9wb3B1cENsaWVudC0+aXRlbVN0eWxlKGkpOwotICAgICAg
ICAgICAgaXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRlbShXZWJQb3B1cEl0ZW06Okl0ZW0sIG1fcG9w
dXBDbGllbnQtPml0ZW1UZXh0KGkpLCBpdGVtU3R5bGUudGV4dERpcmVjdGlvbigpLCBpdGVtU3R5
bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCksIG1fcG9wdXBDbGllbnQtPml0ZW1Ub29sVGlw
KGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQoaSksIG1fcG9wdXBDbGll
bnQtPml0ZW1Jc0VuYWJsZWQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0xhYmVsKGkpLCBtX3Bv
cHVwQ2xpZW50LT5pdGVtSXNTZWxlY3RlZChpKSkpOwotICAgICAgICB9CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXZWJQb3B1cEl0ZW0oV2ViUG9wdXBJdGVtOjpJdGVt
LCBtX3BvcHVwQ2xpZW50LT5pdGVtVGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbVN0eWxlKGkp
LCBtX3BvcHVwQ2xpZW50LT5pdGVtVG9vbFRpcChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUFjY2Vz
c2liaWxpdHlUZXh0KGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNFbmFibGVkKGkpLCBtX3BvcHVw
Q2xpZW50LT5pdGVtSXNMYWJlbChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzU2VsZWN0ZWQoaSkp
KTsKICAgICB9CiAKICAgICByZXR1cm4gaXRlbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9tYWMvV2ViS2l0Mi5vcmRlciBiL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCmlu
ZGV4IDBjMmM1MzUuLmMxZDJhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJL
aXQyLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCkBAIC0yMjY2
LDYgKzIyNjYsOCBAQCBfX1pOM1dURjExVmVjdG9yTW92ZXJJTGIwRU42V2ViS2l0MTJXZWJQb3B1
cEl0ZW1FRTRtb3ZlRVBLUzJfUzVfUFMyXwogX19aTjZXZWJLaXQxMldlYlBvcHVwSXRlbUMyRVJL
UzBfCiBfX1pOM1dURjZWZWN0b3JJTjZXZWJLaXQxMldlYlBvcHVwSXRlbUVMbTBFRTE0c2hyaW5r
Q2FwYWNpdHlFbQogX19aTjNXVEY2VmVjdG9ySU42V2ViS2l0MTJXZWJQb3B1cEl0ZW1FTG0wRUVE
MkV2CitfX1pONldlYktpdDEyV2ViUG9wdXBJdGVtQzJFTlMwXzRUeXBlRVJLTjNXVEY2U3RyaW5n
RVJLTjdXZWJDb3JlMTRQb3B1cE1lbnVTdHlsZUVTNV9TNV9iYmIKK19fWk43Q29yZUlQQzEzQXJn
dW1lbnRDb2RlcklON1dlYkNvcmUxNFBvcHVwTWVudVN0eWxlRUU2ZGVjb2RlRVJOU18xNUFyZ3Vt
ZW50RGVjb2RlckVSUzJfCiBfX1pONldlYktpdDIxUGxhdGZvcm1Qb3B1cE1lbnVEYXRhNmRlY29k
ZUVQTjdDb3JlSVBDMTVBcmd1bWVudERlY29kZXJFUlMwXwogX19aTjZXZWJLaXQ4Rm9udEluZm82
ZGVjb2RlRVBON0NvcmVJUEMxNUFyZ3VtZW50RGVjb2RlckVSUzBfCiBfX1pON0NvcmVJUEMxOGNh
bGxNZW1iZXJGdW5jdGlvbklONldlYktpdDEyV2ViUGFnZVByb3h5RU1TMl9GdlJLTjdXZWJDb3Jl
N0ludFJlY3RFeVJLTjNXVEY2VmVjdG9ySU5TMV8xMldlYlBvcHVwSXRlbUVMbTBFRUVpUktOUzFf
MjFQbGF0Zm9ybVBvcHVwTWVudURhdGFFRVM0X3lTQV9pU0RfRUV2UktOU18xMEFyZ3VtZW50czVJ
VDFfVDJfVDNfVDRfVDVfRUVQVF9UMF8KQEAgLTMzODYsMyArMzM4OCw4IEBAIF9fWk42V2ViS2l0
N1dlYlBhZ2UzNnN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc0V2CiBfX1pONldl
YktpdDdXZWJQYWdlMzVyZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc0V2CiBfX1pO
SzdXZWJDb3JlNUZyYW1lMjV0cmFja2VkUmVwYWludFJlY3RzQXNUZXh0RXYKIF9fWk43V2ViQ29y
ZTlGcmFtZVZpZXcxN3NldFRyYWNrc1JlcGFpbnRzRWIKK19fWk43V2ViQ29yZTRGb250QzFFUktT
MF8KK19fWk43V2ViQ29yZTRGb250QzFFUktOU18xNUZvbnREZXNjcmlwdGlvbkVzcworX19aTjdD
b3JlSVBDMTNBcmd1bWVudENvZGVySU43V2ViQ29yZTRGb250RUU2ZGVjb2RlRVJOU18xNUFyZ3Vt
ZW50RGVjb2RlckVSUzJfCitfX1pOSzdXZWJDb3JlNkxlbmd0aDIyaW5jcmVtZW50Q2FsY3VsYXRl
ZFJlZkV2CitfX1pON1dlYkNvcmU2TGVuZ3RoMTRpbml0RnJvbUxlbmd0aEVSS1MwXwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202313</attachid>
            <date>2013-05-20 13:21:48 -0700</date>
            <delta_ts>2019-09-24 15:38:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>20721</size>
            <attacher name="Oleg Smirnov">oleg_smirnov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzU0ZTk1Li4zMDg2ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDUtMjAgIE9sZWcgU21pcm5vdiAgPG9sZWdfc21pcm5vdkBob3RtYWlsLmNvbT4K
KworICAgICAgICBHdGs6IGRpc3BsYXk6bm9uZSBoYXMgbm8gZWZmZWN0IG9uIDxvcHRpb24+IGVs
ZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgx
ODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U3R5bGUp
OgorCiAyMDEzLTA1LTIwICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtDU1MgUmVnaW9uc11bQ1NTIEV4Y2x1c2lvbnNdIHNoYXBlLWluc2lkZSBvbiByZWdp
b25zIHNob3VsZCByZXNwZWN0IHBvc2l0aW9uZWQgc2hhcGVzIGFuZCBvdmVyZmxvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmgKaW5kZXggNjg5ZWQyOS4uY2FhYjQ4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCkBAIC0zNyw2ICszNywx
NSBAQCBjbGFzcyBQb3B1cE1lbnVTdHlsZSB7CiBwdWJsaWM6CiAgICAgZW51bSBQb3B1cE1lbnVU
eXBlIHsgU2VsZWN0UG9wdXAsIEF1dG9maWxsUG9wdXAgfTsKICAgICBlbnVtIEJhY2tncm91bmRD
b2xvclR5cGUgeyBEZWZhdWx0QmFja2dyb3VuZENvbG9yLCBDdXN0b21CYWNrZ3JvdW5kQ29sb3Ig
fTsKKyAgICBQb3B1cE1lbnVTdHlsZSgpCisgICAgICAgIDogbV92aXNpYmxlKGZhbHNlKQorICAg
ICAgICAsIG1faXNEaXNwbGF5Tm9uZShmYWxzZSkKKyAgICAgICAgLCBtX3RleHREaXJlY3Rpb24o
UlRMKQorICAgICAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNlKQorICAgICAg
ICAsIG1fYmFja2dyb3VuZENvbG9yVHlwZShEZWZhdWx0QmFja2dyb3VuZENvbG9yKQorICAgICAg
ICAsIG1fbWVudVR5cGUoU2VsZWN0UG9wdXApCisgICAgeworICAgIH0KICAgICBQb3B1cE1lbnVT
dHlsZShjb25zdCBDb2xvciYgZm9yZWdyb3VuZCwgY29uc3QgQ29sb3ImIGJhY2tncm91bmQsIGNv
bnN0IEZvbnQmIGZvbnQsIGJvb2wgdmlzaWJsZSwgYm9vbCBpc0Rpc3BsYXlOb25lLCBMZW5ndGgg
dGV4dEluZGVudCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJl
Y3Rpb25PdmVycmlkZSwgQmFja2dyb3VuZENvbG9yVHlwZSBiYWNrZ3JvdW5kQ29sb3JUeXBlID0g
RGVmYXVsdEJhY2tncm91bmRDb2xvciwgUG9wdXBNZW51VHlwZSBtZW51VHlwZSA9IFNlbGVjdFBv
cHVwKQogICAgICAgICA6IG1fZm9yZWdyb3VuZENvbG9yKGZvcmVncm91bmQpCiAgICAgICAgICwg
bV9iYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjNmY3YzY1Li44NzJh
Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTMtMDUtMjAgIE9sZWcgU21pcm5v
diAgPG9sZWdfc21pcm5vdkBob3RtYWlsLmNvbT4KKworICAgICAgICBHdGs6IGRpc3BsYXk6bm9u
ZSBoYXMgbm8gZWZmZWN0IG9uIDxvcHRpb24+IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgUG9wdXBNZW51U3R5bGUgYXMgc3R5bGlu
ZyBmb3IgV2ViUG9wdXBNZW51LgorICAgICAgICBJdCdzIG5lZWRlZCBmb3Igc3VwcG9ydCBkaXNw
bGF5Om5vbmUgcHJvcGVydHkgb24gR1RLIFdLMiBwb3B1IG1lbnUgc3R5bGUuCisKKyAgICAgICAg
KiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6
OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKENvcmVJUEM6Ojo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
b3B1cEl0ZW06OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudVByb3h5R3RrOjpjcmVhdGVHdGtBY3Rpb25Gb3JNZW51SXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBvcHVwTWVudTo6cG9wdWxhdGVJdGVtcyk6CisKIDIwMTMtMDUtMTkgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdW1wIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dCB2ZXJzaW9uIG51bWJlciBzbyBhcyBub3QgdG8gYnJlYWsgc29tZSBjbGllbnRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCAzY2FmNTc2Li5lYzYwYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lkZW50
aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYXRyaXgzRFRy
YW5zZm9ybU9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWF0cml4VHJhbnNmb3JtT3Bl
cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oPgpAQCAtODgsMTYgKzg3LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQzRCYKICAgICByZXR1
cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoZGVjb2RlciwgZmxv
YXRQb2ludDNEKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExlbmd0aCYgbGVuZ3RoKQotewotICAgIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGxlbmd0aCk7Ci19Ci0KLWJv
b2wgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBMZW5ndGgmIGxlbmd0aCkKLXsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5n
dGg+OjpkZWNvZGUoZGVjb2RlciwgbGVuZ3RoKTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFRy
YW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNp
bXBsZUFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2Rlciwg
dHJhbnNmb3JtYXRpb25NYXRyaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuaAppbmRleCBkNDJhZTc5Li4xMTA0YTYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaApAQCAtNDIs
NyArNDIsNiBAQCBzdHJ1Y3QgVGlsZUNyZWF0aW9uSW5mbzsKIHN0cnVjdCBUaWxlVXBkYXRlSW5m
bzsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogY2xhc3MgVHJhbnNmb3JtT3BlcmF0aW9u
czsKLXN0cnVjdCBMZW5ndGg7CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiBjbGFzcyBGaWx0
ZXJPcGVyYXRpb25zOwpAQCAtNjQsMTEgKzYzLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CiB9OwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMZW5ndGgmKTsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6TGVuZ3RoJik7
Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmlu
ZGV4IDdlZmYzZDUuLmVkMzg4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zNiwxMSArMzYsMTUgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Gb250RGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0xlbmd0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51U3R5bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3Rl
Y3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC0yMjgsNiArMjMyLDU1IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIEF1CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRD
b2RlcjxQb3B1cE1lbnVTdHlsZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFBvcHVwTWVudVN0eWxlJiBwb3B1cE1lbnVTdHlsZSkKK3sKKyAgICBlbmNvZGVyIDw8IHBv
cHVwTWVudVN0eWxlLmZvcmVncm91bmRDb2xvcigpOworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51
U3R5bGUuYmFja2dyb3VuZENvbG9yKCk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5m
b250KCk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5pc1Zpc2libGUoKTsKKyAgICBl
bmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmlzRGlzcGxheU5vbmUoKTsKKyAgICBlbmNvZGVyIDw8
IHBvcHVwTWVudVN0eWxlLnRleHRJbmRlbnQoKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocG9w
dXBNZW51U3R5bGUudGV4dERpcmVjdGlvbigpKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0
eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8
UG9wdXBNZW51U3R5bGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQb3B1cE1l
bnVTdHlsZSYgcG9wdXBNZW51U3R5bGUpCit7CisgICAgQ29sb3IgZm9yZWdyb3VuZDsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGZvcmVncm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDb2xvciBiYWNrZ3JvdW5kOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYmFja2dyb3Vu
ZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEZvbnQgZm9udDsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGZvbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGlz
VmlzaWJsZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzVmlzaWJsZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGJvb2wgaXNEaXNwbGF5Tm9uZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGlzRGlzcGxheU5vbmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMZW5n
dGggdGV4dEluZGVudDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHRJbmRlbnQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb247Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odGV4dERpcmVjdGlvbikpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcG9wdXBNZW51U3R5bGUgPSBQb3B1cE1lbnVTdHlsZShmb3JlZ3JvdW5k
LCBiYWNrZ3JvdW5kLCBmb250LCBpc1Zpc2libGUsIGlzRGlzcGxheU5vbmUsIHRleHRJbmRlbnQs
IHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHNwYWNlKQogewpA
QCAtODM4LDYgKzg5MSw0MSBAQCBib29sIEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5n
cz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZpbGVDaAogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8Rm9udD46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEZvbnQmIGZvbnQpCit7CisgICAgZW5jb2RlciA8PCBmb250LmZv
bnREZXNjcmlwdGlvbigpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8aW50Pihmb250Lmxl
dHRlclNwYWNpbmcoKSk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxpbnQ+KGZvbnQud29y
ZFNwYWNpbmcoKSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxGb250Pjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgRm9udCYgZm9udCkKK3sKKyAgICBGb250RGVzY3JpcHRpb24g
Zm9udERlc2NyaXB0aXB0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZm9udERlc2NyaXB0
aXB0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGxldHRlclNwYWNpbmc7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsZXR0ZXJTcGFjaW5nKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaW50IHdvcmRTcGFjaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
d29yZFNwYWNpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb250ID0gRm9udChm
b250RGVzY3JpcHRpcHRpb24sIGxldHRlclNwYWNpbmcsIHdvcmRTcGFjaW5nKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPEZvbnREZXNjcmlwdGlvbj46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uKQoreworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUg
Zm9udC4KK30KKworYm9vbCBBcmd1bWVudENvZGVyPEZvbnREZXNjcmlwdGlvbj46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
KQoreworICAgIGZvbnREZXNjcmlwdGlvbiA9IEZvbnREZXNjcmlwdGlvbigpOworICAgIHJldHVy
biB0cnVlOworfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8R3JhbW1hckRldGFpbD46OmVuY29kZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEdyYW1tYXJEZXRhaWwmIGRldGFpbCkKIHsK
QEAgLTk0Nyw2ICsxMDM1LDE2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxLVVJMPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgS1VSTCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgTGVuZ3RoJiBsZW5ndGgpCit7CisgICAgU2ltcGxlQXJndW1lbnRDb2Rl
cjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgbGVuZ3RoKTsKK30KKworYm9vbCBBcmd1bWVudENv
ZGVyPExlbmd0aD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExlbmd0aCYgbGVu
Z3RoKQoreworICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPExlbmd0aD46OmRlY29kZShk
ZWNvZGVyLCBsZW5ndGgpOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclN0
eWxlU2hlZXQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3Jl
OjpVc2VyU3R5bGVTaGVldCYgdXNlclN0eWxlU2hlZXQpCiB7CiAgICAgZW5jb2RlciA8PCB1c2Vy
U3R5bGVTaGVldC5zb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCBjYWU5ZDlhLi5jODBmYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBDcmVkZW50aWFsOwogICAgIGNsYXNzIEN1cnNvcjsK
ICAgICBjbGFzcyBEYXRhYmFzZURldGFpbHM7CisgICAgY2xhc3MgRm9udDsKKyAgICBjbGFzcyBG
b250RGVzY3JpcHRpb247CiAgICAgY2xhc3MgRmxvYXRQb2ludDsKICAgICBjbGFzcyBGbG9hdFJl
Y3Q7CiAgICAgY2xhc3MgRmxvYXRTaXplOwpAQCAtNDUsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CiAgICAgY2xhc3MgS1VSTDsKICAg
ICBjbGFzcyBOb3RpZmljYXRpb247CisgICAgY2xhc3MgUG9wdXBNZW51U3R5bGU7CiAgICAgY2xh
c3MgUHJvdGVjdGlvblNwYWNlOwogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwpAQCAtNTgsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgc3RydWN0IERyYWdTZXNzaW9uOwogICAgIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwog
ICAgIHN0cnVjdCBHcmFtbWFyRGV0YWlsOworICAgIHN0cnVjdCBMZW5ndGg7CiAgICAgc3RydWN0
IE1pbWVDbGFzc0luZm87CiAgICAgc3RydWN0IFBsdWdpbkluZm87CiAgICAgc3RydWN0IFRleHRD
aGVja2luZ1Jlc3VsdDsKQEAgLTc4LDYgKzgyLDE2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtPiB7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwogfTsKIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGb250PiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZvbnQmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Rm9udCYp
OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGb250RGVz
Y3JpcHRpb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbiYpOworfTsKKwogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50PiB7CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
RmxvYXRQb2ludCYpOwpAQCAtMTMzLDYgKzE0NywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPiB7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBvcHVwTWVudVN0eWxlPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlJik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlJik7Cit9OworCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZT4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2UmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CkBAIC0yNDgsNiArMjY3LDExIEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6S1VSTD4gewogICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpLVVJMJik7CiB9OwogCit0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4geworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMZW5ndGgm
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6TGVu
Z3RoJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVz
ZXJTdHlsZVNoZWV0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCmluZGV4IDg5NzExYWIuLjIxOGU4ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtMzksNiArNDAsNyBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAgICAgLCBtX3Rl
eHREaXJlY3Rpb24oTFRSKQogICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoZmFsc2Up
CiAgICAgLCBtX2lzRW5hYmxlZCh0cnVlKQorICAgICwgbV9pc0xhYmVsKGZhbHNlKQogICAgICwg
bV9pc1NlbGVjdGVkKGZhbHNlKQogewogfQpAQCAtNTMsMTEgKzU1LDEyIEBAIFdlYlBvcHVwSXRl
bTo6V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVtOjpXZWJQb3B1
cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHREaXJlY3Rpb24gdGV4dERp
cmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9v
bFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJv
b2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVkKQorV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0o
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNvcmU6OlBvcHVwTWVudVN0
eWxlJiBpdGVtU3R5bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nl
c3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVj
dGVkKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX3RleHQodGV4dCkKLSAgICAsIG1fdGV4
dERpcmVjdGlvbih0ZXh0RGlyZWN0aW9uKQotICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKQorICAgICwgbV90ZXh0RGlyZWN0aW9uKGl0ZW1T
dHlsZS50ZXh0RGlyZWN0aW9uKCkpCisgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShp
dGVtU3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpCisgICAgLCBtX2l0ZW1TdHlsZShp
dGVtU3R5bGUpCiAgICAgLCBtX3Rvb2xUaXAodG9vbFRpcCkKICAgICAsIG1fYWNjZXNzaWJpbGl0
eVRleHQoYWNjZXNzaWJpbGl0eVRleHQpCiAgICAgLCBtX2lzRW5hYmxlZChpc0VuYWJsZWQpCkBA
IC03Miw2ICs3NSw3IEBAIHZvaWQgV2ViUG9wdXBJdGVtOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV90ZXh0OwogICAgIGVu
Y29kZXIuZW5jb2RlRW51bShtX3RleHREaXJlY3Rpb24pOwogICAgIGVuY29kZXIgPDwgbV9oYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CisgICAgZW5jb2RlciA8PCBtX2l0ZW1TdHlsZTsKICAgICBl
bmNvZGVyIDw8IG1fdG9vbFRpcDsKICAgICBlbmNvZGVyIDw8IG1fYWNjZXNzaWJpbGl0eVRleHQ7
CiAgICAgZW5jb2RlciA8PCBtX2lzRW5hYmxlZDsKQEAgLTg4LDcgKzkyLDcgQEAgYm9vbCBXZWJQ
b3B1cEl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlBv
cHVwSXRlbSYgaXRlbSkKICAgICBTdHJpbmcgdGV4dDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBUZXh0RGlyZWN0aW9u
IHRleHREaXJlY3Rpb247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odGV4dERpcmVjdGlv
bikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTk3LDYgKzEwMSwxMCBAQCBib29sIFdlYlBv
cHVwSXRlbTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUG9w
dXBJdGVtJiBpdGVtKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVGV4dERpcmVjdGlvbk92
ZXJyaWRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgUG9wdXBNZW51U3R5bGUgaXRl
bVN0eWxlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXRlbVN0eWxlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgU3RyaW5nIHRvb2xUaXA7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0b29sVGlwKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE3LDcgKzEyNSw3IEBAIGJv
b2wgV2ViUG9wdXBJdGVtOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBXZWJQb3B1cEl0ZW0mIGl0ZW0pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1NlbGVjdGVk
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaXRlbSA9IFdlYlBvcHVwSXRlbSh0eXBl
LCB0ZXh0LCB0ZXh0RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAs
IGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlzU2VsZWN0ZWQpOworICAg
IGl0ZW0gPSBXZWJQb3B1cEl0ZW0odHlwZSwgdGV4dCwgaXRlbVN0eWxlLCB0b29sVGlwLCBhY2Nl
c3NpYmlsaXR5VGV4dCwgaXNFbmFibGVkLCBpc0xhYmVsLCBpc1NlbGVjdGVkKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVw
SXRlbS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4IDg4NGVl
OWUuLmMzZDU3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0
ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgV2ViUG9wdXBJdGVtX2gKICNkZWZpbmUgV2ViUG9wdXBJdGVtX2gK
IAorI2luY2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51U3R5bGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAt
NDQsNyArNDUsNyBAQCBzdHJ1Y3QgV2ViUG9wdXBJdGVtIHsKIAogICAgIFdlYlBvcHVwSXRlbSgp
OwogICAgIFdlYlBvcHVwSXRlbShUeXBlKTsKLSAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rp
b25PdmVycmlkZSwgY29uc3QgU3RyaW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2li
aWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQp
OworICAgIFdlYlBvcHVwSXRlbShUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNv
cmU6OlBvcHVwTWVudVN0eWxlJiBpdGVtU3R5bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29u
c3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJl
bCwgYm9vbCBpc1NlbGVjdGVkKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImLCBXZWJQb3B1cEl0ZW0mKTsKQEAgLTUzLDYgKzU0LDcgQEAgc3RydWN0IFdlYlBv
cHVwSXRlbSB7CiAgICAgU3RyaW5nIG1fdGV4dDsKICAgICBXZWJDb3JlOjpUZXh0RGlyZWN0aW9u
IG1fdGV4dERpcmVjdGlvbjsKICAgICBib29sIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwor
ICAgIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIG1faXRlbVN0eWxlOwogICAgIFN0cmluZyBtX3Rv
b2xUaXA7CiAgICAgU3RyaW5nIG1fYWNjZXNzaWJpbGl0eVRleHQ7CiAgICAgYm9vbCBtX2lzRW5h
YmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBN
ZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1l
bnVQcm94eUd0ay5jcHAKaW5kZXggYTQxODM5YS4uNzU3YTFlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKQEAgLTU4
LDYgKzU4LDcgQEAgR3RrQWN0aW9uKiBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlR3RrQWN0
aW9uRm9yTWVudUl0ZW0oY29uc3QgV2ViUG9wdXBJdGVtJgogICAgIEd0a0FjdGlvbiogYWN0aW9u
ID0gZ3RrX2FjdGlvbl9uZXcoYWN0aW9uTmFtZS5nZXQoKSwgaXRlbS5tX3RleHQudXRmOCgpLmRh
dGEoKSwgaXRlbS5tX3Rvb2xUaXAudXRmOCgpLmRhdGEoKSwgMCk7CiAgICAgZ19vYmplY3Rfc2V0
X2RhdGEoR19PQkpFQ1QoYWN0aW9uKSwgInBvcHVwLW1lbnUtYWN0aW9uLWluZGV4IiwgR0lOVF9U
T19QT0lOVEVSKGl0ZW1JbmRleCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYWN0aW9uLCAiYWN0
aXZhdGUiLCBHX0NBTExCQUNLKG1lbnVJdGVtQWN0aXZhdGVkKSwgdGhpcyk7CisgICAgZ3RrX2Fj
dGlvbl9zZXRfdmlzaWJsZShhY3Rpb24sICFpdGVtLm1faXRlbVN0eWxlLmlzRGlzcGxheU5vbmUo
KSk7CiAgICAgZ3RrX2FjdGlvbl9zZXRfc2Vuc2l0aXZlKGFjdGlvbiwgaXRlbS5tX2lzRW5hYmxl
ZCk7CiAKICAgICByZXR1cm4gYWN0aW9uOwpAQCAtNjUsMTAgKzY2LDExIEBAIEd0a0FjdGlvbiog
V2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZUd0a0FjdGlvbkZvck1lbnVJdGVtKGNvbnN0IFdl
YlBvcHVwSXRlbSYKIAogdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShj
b25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3Qg
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiBkYXRhLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7Ci0g
ICAgaWYgKG1fcG9wdXApCi0gICAgICAgIG1fcG9wdXAtPmNsZWFyKCk7Ci0gICAgZWxzZQorICAg
IGlmICghbV9wb3B1cCkgewogICAgICAgICBtX3BvcHVwID0gR3RrUG9wdXBNZW51OjpjcmVhdGUo
KTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3BvcHVwLT5wbGF0Zm9ybU1lbnUoKSwgInVu
bWFwIiwgR19DQUxMQkFDSyhtZW51VW5tYXBwZWQpLCB0aGlzKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgbV9wb3B1cC0+Y2xlYXIoKTsKIAogICAgIGNvbnN0IGludCBzaXplID0gaXRlbXMuc2l6ZSgp
OwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CkBAIC04Myw3ICs4NSw2IEBA
IHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYg
cmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgSW50UG9pbnQgbWVudVBvc2l0aW9uID0gY29u
dmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2ludChtX3dlYlZpZXcsIHJlY3QubG9jYXRpb24oKSk7
CiAgICAgbWVudVBvc2l0aW9uLm1vdmUoMCwgcmVjdC5oZWlnaHQoKSk7CiAKLSAgICBndWxvbmcg
dW5tYXBIYW5kbGVyID0gZ19zaWduYWxfY29ubmVjdChtX3BvcHVwLT5wbGF0Zm9ybU1lbnUoKSwg
InVubWFwIiwgR19DQUxMQkFDSyhtZW51VW5tYXBwZWQpLCB0aGlzKTsKICAgICBtX3BvcHVwLT5w
b3BVcChyZWN0LnNpemUoKSwgbWVudVBvc2l0aW9uLCBzaXplLCBzZWxlY3RlZEluZGV4LCBtX2Ns
aWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKSA/IG1fY2xpZW50LT5jdXJy
ZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpIDogMCk7CiAKICAg
ICAvLyBQb3B1cE1lbnUgY2FuIGZhaWwgdG8gb3BlbiB3aGVuIHRoZXJlIGlzIG5vIG1vdXNlIGdy
YWIuCkBAIC0xMDMsOCArMTA0LDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1Bv
cHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIG1f
cnVuTG9vcC5jbGVhcigpOwogCi0gICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KG1fcG9w
dXAtPnBsYXRmb3JtTWVudSgpLCB1bm1hcEhhbmRsZXIpOwotCiAgICAgaWYgKCFtX2NsaWVudCkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKaW5kZXggZDRhZjkyZi4uYmYyOTFk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUG9wdXBNZW51LmNwcApAQCAtODcsMTMgKzg3LDggQEAgVmVjdG9yPFdlYlBvcHVw
SXRlbT4gV2ViUG9wdXBNZW51Ojpwb3B1bGF0ZUl0ZW1zKCkKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBpZiAobV9wb3B1cENsaWVudC0+aXRlbUlzU2Vw
YXJhdG9yKGkpKQogICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRlbShXZWJQb3B1
cEl0ZW06OlNlcGFyYXRvcikpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIEZJWE1F
OiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUgZm9udC4KLSAgICAgICAgICAgIC8vIEZJWE1F
OiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBj
b2xvcnMuCi0gICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBjdXN0b21pemUgdGV4
dCBjb2xvciB3aGVuIGFuIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQuCi0gICAgICAgICAgICBQb3B1cE1l
bnVTdHlsZSBpdGVtU3R5bGUgPSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaSk7Ci0gICAgICAg
ICAgICBpdGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVtKFdlYlBvcHVwSXRlbTo6SXRlbSwgbV9wb3B1
cENsaWVudC0+aXRlbVRleHQoaSksIGl0ZW1TdHlsZS50ZXh0RGlyZWN0aW9uKCksIGl0ZW1TdHls
ZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSwgbV9wb3B1cENsaWVudC0+aXRlbVRvb2xUaXAo
aSksIG1fcG9wdXBDbGllbnQtPml0ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKSwgbV9wb3B1cENsaWVu
dC0+aXRlbUlzRW5hYmxlZChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSksIG1fcG9w
dXBDbGllbnQtPml0ZW1Jc1NlbGVjdGVkKGkpKSk7Ci0gICAgICAgIH0KKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRlbShXZWJQb3B1cEl0ZW06Okl0ZW0s
IG1fcG9wdXBDbGllbnQtPml0ZW1UZXh0KGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaSks
IG1fcG9wdXBDbGllbnQtPml0ZW1Ub29sVGlwKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtQWNjZXNz
aWJpbGl0eVRleHQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0VuYWJsZWQoaSksIG1fcG9wdXBD
bGllbnQtPml0ZW1Jc0xhYmVsKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNTZWxlY3RlZChpKSkp
OwogICAgIH0KIAogICAgIHJldHVybiBpdGVtczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379506</attachid>
            <date>2019-09-24 15:39:16 -0700</date>
            <delta_ts>2019-09-25 09:04:10 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-81882-20190925013914.patch</filename>
            <type>text/plain</type>
            <size>24198</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUyZWI3MTVlMDViZmY1
YjM0MjE5NjY4NGYxZDg2ZTQ1YjRjNWQ0Ny4uZmZlMGFkMDFjNjZlODg0ZWU5MDVkN2Y4NzUxYjA4
Zjk1NjM1OTRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA5LTI0ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
ZGlzcGxheTpub25lIGhhcyBubyBlZmZlY3Qgb24gPG9wdGlvbj4gZWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHRoZSBzdHlsZSBpbmZv
cm1hdGlvbiAoUG9wdXBNZW51U3R5bGUpIG9mIGEgV2ViUG9wdXBJdGVtIG92ZXIgSVBDIHRvIG1h
a2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBVSVByb2Nlc3MsIHdoaWNoIHRoZW4gY2Fu
IHVzZSBpdCB0byBkZXRlcm1pbmUgaG93IHRvIGRpc3BsYXkgcG9wdXAgaXRlbXMuIFRoZW4sIG1h
a2UKKyAgICAgICAgdGhlIEdUSyBpbXBsZW1lbnRhdGlvbiBvZiBwb3B1cCBtZW51cyB0YWtlIGlu
dG8gYWNjb3VudCBQb3B1cE1lbnVTdHlsZTo6aXNEaXNwbGF5Tm9uZSgpIHRvCisgICAgICAgIGRl
Y2lkZSB3aGV0aGVyIGl0ZW1zIG1heSBiZSBoaWRkZW4gYW5kIHNraXAgZGlzcGxheWluZyB0aGVt
LiBGb3Igbm93IG9ubHkgdmlzaWJpbGl0eSBpcworICAgICAgICBoYW5kbGVkIGluIHRoZSBHVEsg
cG9ydCwgYnV0IHRoaXMgbGF5cyBhIGZvdW5kYXRpb24gd2hpY2ggYWxsb3dzIGZvciBob25vcmlu
ZyBvdGhlciBwb3B1cAorICAgICAgICBpdGVtIGRpc3BsYXkgYXR0cmlidXRlcyBpbiB0aGUgZnV0
dXJlIGFzIHdlbGwuCisKKyAgICAgICAgQmFzZWQgb24gYW4gb2xkIHBhdGNoIGJ5IE9sZWcgU21p
cm5vdiAodGhhbmtzISkKKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U3R5bGUpOiBQcm92aWRlIGEgZGVmYXVsdCBjb25zdHJ1Y3RvciB3
aGljaCBjYW4gYmUKKyAgICAgICAgdXNlZCB0byBpbml0aWFsaXplIGEgUG9wdXBNZW51U3R5bGUg
aW5zdGFuY2UgdXNpbmcgZGVmYXVsdCB2YWx1ZXMgcHJpb3IgdG8gZGVjb2RpbmcgaXQuCisKIDIw
MTktMDktMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJRkNdIE1vdmUgbGluZSBjb25zdHJhaW50cyBjb21wdXRhdGlvbiB0byBhIGRlZGljYXRlZCBm
dW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA2M2IzNmRlZmVkZjBmNGQ1N2QzMzk1OTA5NmE5MzJlYmQwZmY4
YzA2Li5jNWI5NjI0ZDY2ZmIzNWE5MTVlODY2YTJmNDVjZDRlYzRiYWE5MjEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUxIEBACisyMDE5LTA5LTI0ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBl
cmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gZGlzcGxheTpub25lIGhhcyBubyBlZmZl
Y3Qgb24gPG9wdGlvbj4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODE4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXNzIHRoZSBzdHlsZSBpbmZvcm1hdGlvbiAoUG9wdXBNZW51U3R5bGUp
IG9mIGEgV2ViUG9wdXBJdGVtIG92ZXIgSVBDIHRvIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgICAg
IGluIHRoZSBVSVByb2Nlc3MsIHdoaWNoIHRoZW4gY2FuIHVzZSBpdCB0byBkZXRlcm1pbmUgaG93
IHRvIGRpc3BsYXkgcG9wdXAgaXRlbXMuIFRoZW4sIG1ha2UKKyAgICAgICAgdGhlIEdUSyBpbXBs
ZW1lbnRhdGlvbiBvZiBwb3B1cCBtZW51cyB0YWtlIGludG8gYWNjb3VudCBQb3B1cE1lbnVTdHls
ZTo6aXNEaXNwbGF5Tm9uZSgpIHRvCisgICAgICAgIGRlY2lkZSB3aGV0aGVyIGl0ZW1zIG1heSBi
ZSBoaWRkZW4gYW5kIHNraXAgZGlzcGxheWluZyB0aGVtLiBGb3Igbm93IG9ubHkgdmlzaWJpbGl0
eSBpcworICAgICAgICBoYW5kbGVkIGluIHRoZSBHVEsgcG9ydCwgYnV0IHRoaXMgbGF5cyBhIGZv
dW5kYXRpb24gd2hpY2ggYWxsb3dzIGZvciBob25vcmluZyBvdGhlciBwb3B1cAorICAgICAgICBp
dGVtIGRpc3BsYXkgYXR0cmlidXRlcyBpbiB0aGUgZnV0dXJlIGFzIHdlbGwuCisKKyAgICAgICAg
QmFzZWQgb24gYW4gb2xkIHBhdGNoIGJ5IE9sZWcgU21pcm5vdiAodGhhbmtzISkKKworICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFBvcHVwTWVudVN0eWxlPjo6ZW5jb2RlKTogQWRkZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5bGU+OjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciBQ
b3B1cE1lbnVTdHlsZSBjb2RlcnMuCisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKTogWmFwIGluaXRp
YWxpemF0aW9uIG9mIHJlbW92ZWQgbWVtYmVycworICAgICAgICBtX3RleHREaXJlY3Rpb24gYW5k
IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOyBhbmQgbWFrZSB0aGUgY29tcGxldGUgY29uc3Ry
dWN0b3IKKyAgICAgICAgcmVjZWl2ZSBhIFBvcHVwTWVudVN0eWxlIHBhcmFtZXRlciBpbnN0ZWFk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmVuY29kZSBjb25zdCk6IEFkYXB0IHRv
IGhhbmRsZSB0aGUgYWRkZWQgUG9wdXBNZW51U3R5bGUgbWVtYmVyCisgICAgICAgIGFuZCByZW1v
dmUgaGFuZGxpbmcgb2YgdGhlIHJlbW92ZWQgbV90ZXh0RGlyZWN0aW9uIGFuZCBtX2hhc1RleHRE
aXJlY3Rpb25PdmVycmlkZSBtZW1iZXJzLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06
OmRlY29kZSk6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9XZWJQb3B1cEl0ZW0uaDogQWRkIGEg
UG9wdXBNZW51U3R5bGUgbWVtYmVyLCBhbmQgcmVtb3ZlIG1fdGV4dERpcmVjdGlvbiBhbmQKKyAg
ICAgICAgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUgbWVtYmVycyB0byBhdm9pZCBkdXBsaWNh
dGlvbiBiZWNhdXNlIHRoZWlyIHZhbHVlcyBhcmUgYWxyZWFkeQorICAgICAgICBwcm92aWRlZCBi
eSBQb3B1cE1lbnVTdHlsZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVBy
b3h5R3RrLmNwcDogQWRkIGEgY29sdW1uIHRvIHRoZSB0cmVlIG1vZGVsIHdoaWNoIGluZGljYXRl
cworICAgICAgICB3aGV0aGVyIGEgcm93IGlzIHZpc2libGUsIGFuZCB0YWtlIGl0IGludG8gYWNj
b3VudCBmb3IgY2FsY3VsYXRpbmcgdGhlIGFtb3VuZyBvZiBpdGVtcworICAgICAgICBkaXNwbGF5
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjphY3RpdmF0ZUl0ZW1B
dFBhdGgpOiBEbyBub3QgYWxsb3cgYWN0aXZhdGlvbiBvZiBpbnZpc2libGUgaXRlbXMuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUpOiBQb3B1
bGF0ZSB2aXNpYmlsaXR5IGNvbHVtbiwgYW5kIHByb3ZpZGUgYQorICAgICAgICBjb3VudCBvZiB2
aXNpYmxlIGl0ZW1zIGFzIHJldHVybiB2YWx1ZS4gQWxzbywgdGhlIGNhbGxiYWNrIGluc3RhbGxl
ZCB3aXRoCisgICAgICAgIGd0a190cmVlX3NlbGVjdGlvbl9zZXRfc2VsZWN0X2Z1bmN0aW9uKCkg
aXMgbW9kaWZpZWQgdG8gZGlzYWxsb3cgc2VsZWN0aW9uIGlmIGFuIGl0ZW0gaXMKKyAgICAgICAg
aW52aXNpYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvd1Bv
cHVwTWVudSk6IFRha2UgaW50byBhY2NvdW50IHRoZSBudW1iZXIgb2YgdmlzaWJlIGl0ZW1zCisg
ICAgICAgIGZvciB3aWRnZXQgc2l6ZSBjYWxjdWxhdGlvbnMuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBvcHVwTWVudVByb3h5R3RrOjp0eXBlQWhlYWRGaW5kSW5kZXgpOiBEbyBub3QgYWxsb3cgcGlj
a2luZyBpbnZpc2libGUgaXRlbXMKKyAgICAgICAgd2hlbiB0eXBlIGFoZWFkIHNlbGVjdGlvbiBp
cyBiZWluZyB1c2VkLgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlH
dGsuaDogQ2hhbmdlIHByb3RvdHlwZSBvZiBjcmVhdGVQb3B1cE1lbnUoKSB0byBtYWtlIGl0Cisg
ICAgICAgIHJldHVybiB0aGUgbnVtYmVyIG9mIHZpc2libGUgaXRlbXMgaW4gdGhlIG1lbnUuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OnBvcHVsYXRlSXRlbXMpOiBBZGFwdCB0byB0aGUg
Y2hhZ2UgaW4gdGhlIFdlYlBvcHVwSXRlbSBjb25zdHJ1Y3RvciwKKyAgICAgICAgaW4gb3JkZXIg
dG8gcGFzcyBhIFBvcHVwTWVudVN0eWxlIHRvIGl0LgorCiAyMDE5LTA5LTI0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVxdWlyZSBhIFdl
YnNpdGVEYXRhU3RvcmUgd2hlbiBjcmVhdGluZyBvciByZXN1bWluZyBkb3dubG9hZHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCmluZGV4IDM3Y2VlNjMyYWJhYzE2Yjdj
MWY4ODdlOWRmMTE1YzZjNTRhNmU2N2YuLjc4NzIwNzNiZDQxYmNkM2EyZDk2NThhMDUyNzUxOTQy
MTQzNjM1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaApAQCAt
NDIsNiArNDIsMTYgQEAgcHVibGljOgogICAgICAgICBQb3B1cE1lbnVTaXplTWluaQogICAgIH07
CiAKKyAgICBQb3B1cE1lbnVTdHlsZSgpCisgICAgICAgIDogbV92aXNpYmxlKGZhbHNlKQorICAg
ICAgICAsIG1faXNEaXNwbGF5Tm9uZShmYWxzZSkKKyAgICAgICAgLCBtX3RleHREaXJlY3Rpb24o
VGV4dERpcmVjdGlvbjo6TFRSKQorICAgICAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
KGZhbHNlKQorICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9yVHlwZShEZWZhdWx0QmFja2dyb3Vu
ZENvbG9yKQorICAgICAgICAsIG1fbWVudVR5cGUoU2VsZWN0UG9wdXApCisgICAgeworICAgIH0K
KwogICAgIFBvcHVwTWVudVN0eWxlKGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kLCBjb25zdCBDb2xv
ciYgYmFja2dyb3VuZCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGJvb2wgdmlzaWJsZSwgYm9v
bCBpc0Rpc3BsYXlOb25lLCBib29sIGhhc0RlZmF1bHRBcHBlYXJhbmNlLCBMZW5ndGggdGV4dElu
ZGVudCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25P
dmVycmlkZSwgQmFja2dyb3VuZENvbG9yVHlwZSBiYWNrZ3JvdW5kQ29sb3JUeXBlID0gRGVmYXVs
dEJhY2tncm91bmRDb2xvciwgUG9wdXBNZW51VHlwZSBtZW51VHlwZSA9IFNlbGVjdFBvcHVwLCBQ
b3B1cE1lbnVTaXplIG1lbnVTaXplID0gUG9wdXBNZW51U2l6ZU5vcm1hbCkKICAgICAgICAgOiBt
X2ZvcmVncm91bmRDb2xvcihmb3JlZ3JvdW5kKQogICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9y
KGJhY2tncm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCAyMjJjZGFmOTIwYjBkNTBmYzM0N2Q1YTUwNjZkOWEwZWQ1YjhlNDQ3Li40
MDNmZTYyYTE0MDE1MTBhNjg1MDg0MmI4ZWY3Y2JhZTcxODg5MzcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTU4LDYgKzU4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhdGgu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bv
cHVwTWVudVN0eWxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZv
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlY3RFZGdlcy5oPgpAQCAtMTAwNSw2ICsxMDA2LDczIEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdXRo
ZW50aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxQb3B1cE1l
bnVTdHlsZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQb3B1cE1lbnVTdHlsZSYg
cG9wdXBNZW51U3R5bGUpCit7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5mb3JlZ3Jv
dW5kQ29sb3IoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmJhY2tncm91bmRDb2xv
cigpOworICAgIC8vIFRPRE86IEVuY29kZSBGb250Q2FzY2FkZSBtZW1iZXIuCisgICAgZW5jb2Rl
ciA8PCBwb3B1cE1lbnVTdHlsZS5pc1Zpc2libGUoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVu
dVN0eWxlLmlzRGlzcGxheU5vbmUoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmhh
c0RlZmF1bHRBcHBlYXJhbmNlKCk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS50ZXh0
SW5kZW50KCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBvcHVwTWVudVN0eWxlLnRleHREaXJl
Y3Rpb24oKSk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5oYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGUoKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUuYmFja2dy
b3VuZENvbG9yVHlwZSgpKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUu
bWVudVR5cGUoKSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBvcHVwTWVudVN0eWxlLm1lbnVT
aXplKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5bGU+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgUG9wdXBNZW51U3R5bGUmIHBvcHVwTWVudVN0eWxlKQoreworICAg
IENvbG9yIGZvcmVncm91bmRDb2xvcjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZvcmVncm91
bmRDb2xvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbG9yIGJhY2tncm91bmRD
b2xvcjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJhY2tncm91bmRDb2xvcikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIC8vIFRPRE86IERlY29kZSBGb250Q2FzY2FkZSBtZW1iZXIu
CisKKyAgICBib29sIHZpc2libGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2aXNpYmxlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBpc0Rpc3BsYXlOb25lOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaXNEaXNwbGF5Tm9uZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGJvb2wgaGFzRGVmYXVsdEFwcGVhcmFuY2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShoYXNEZWZhdWx0QXBwZWFyYW5jZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExl
bmd0aCB0ZXh0SW5kZW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dEluZGVudCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbjsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0ZXh0RGlyZWN0aW9uKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBQb3B1cE1lbnVTdHlsZTo6QmFja2dyb3VuZENvbG9yVHlwZSBiYWNr
Z3JvdW5kQ29sb3JUeXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGJhY2tncm91bmRD
b2xvclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBQb3B1cE1lbnVTdHlsZTo6
UG9wdXBNZW51VHlwZSBtZW51VHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShtZW51
VHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFBvcHVwTWVudVN0eWxlOjpQb3B1
cE1lbnVTaXplIG1lbnVTaXplOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKG1lbnVTaXpl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9wdXBNZW51U3R5bGUgPSBQb3B1cE1l
bnVTdHlsZShmb3JlZ3JvdW5kQ29sb3IsIGJhY2tncm91bmRDb2xvciwgRm9udENhc2NhZGUoKSwg
dmlzaWJsZSwgaXNEaXNwbGF5Tm9uZSwgaGFzRGVmYXVsdEFwcGVhcmFuY2UsIHRleHRJbmRlbnQs
IHRleHREaXJlY3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgYmFja2dyb3VuZENvbG9y
VHlwZSwgbWVudVR5cGUsIG1lbnVTaXplKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBB
cmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBQcm90ZWN0aW9uU3BhY2UmIHNwYWNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA5ZDZjZDM0MTIyZGNjYmY2MzA2MzBlY2NkZGEx
NmYwNzg1NGMzZGU0Li4zYWNmMDJhMTYwMmVlYjczYTYyNGZjMzAwMzNmNzEyNmYzNGQxNzQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtOTAs
NiArOTAsNyBAQCBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9u
OwogY2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGF0aDsKK2NsYXNzIFBvcHVwTWVudVN0eWxl
OwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVzb3VyY2VF
cnJvcjsKQEAgLTM1OSw2ICszNjAsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIH07CiAK
K3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UG9wdXBNZW51U3R5bGU+
IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQ
b3B1cE1lbnVTdHlsZSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCA4NjBmNWIwY2Y2MTQ5NDdhZjNlNDRmN2NjOWI0MzE4
MmFjMDE5MjI3Li41NjA0ZjAxMjFjMmI3NDhkM2M0N2UwNjcxYzc0N2YzZDIwMGViMTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKQEAgLTMzLDggKzMzLDYgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKCkKICAgICA6IG1fdHlw
ZShJdGVtKQotICAgICwgbV90ZXh0RGlyZWN0aW9uKFdlYkNvcmU6OlRleHREaXJlY3Rpb246OkxU
UikKLSAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9pc0Vu
YWJsZWQodHJ1ZSkKICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKQEAgLTQyLDE5ICs0MCwx
NiBAQCBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9w
dXBJdGVtKFR5cGUgdHlwZSkKICAgICA6IG1fdHlwZSh0eXBlKQotICAgICwgbV90ZXh0RGlyZWN0
aW9uKFdlYkNvcmU6OlRleHREaXJlY3Rpb246OkxUUikKLSAgICAsIG1faGFzVGV4dERpcmVjdGlv
bk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9pc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNMYWJl
bChmYWxzZSkKICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVt
OjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRl
eHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUs
IGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwg
Ym9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVkKQorV2ViUG9wdXBJ
dGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdl
YkNvcmU6OlBvcHVwTWVudVN0eWxlJiBpdGVtU3R5bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwg
Y29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNM
YWJlbCwgYm9vbCBpc1NlbGVjdGVkKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX3RleHQo
dGV4dCkKLSAgICAsIG1fdGV4dERpcmVjdGlvbih0ZXh0RGlyZWN0aW9uKQotICAgICwgbV9oYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKQorICAgICwgbV9p
dGVtU3R5bGUoaXRlbVN0eWxlKQogICAgICwgbV90b29sVGlwKHRvb2xUaXApCiAgICAgLCBtX2Fj
Y2Vzc2liaWxpdHlUZXh0KGFjY2Vzc2liaWxpdHlUZXh0KQogICAgICwgbV9pc0VuYWJsZWQoaXNF
bmFibGVkKQpAQCAtNjcsOCArNjIsNyBAQCB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBl
KTsKICAgICBlbmNvZGVyIDw8IG1fdGV4dDsKLSAgICBlbmNvZGVyLmVuY29kZUVudW0obV90ZXh0
RGlyZWN0aW9uKTsKLSAgICBlbmNvZGVyIDw8IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwor
ICAgIGVuY29kZXIgPDwgbV9pdGVtU3R5bGU7CiAgICAgZW5jb2RlciA8PCBtX3Rvb2xUaXA7CiAg
ICAgZW5jb2RlciA8PCBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGVuY29kZXIgPDwgbV9pc0Vu
YWJsZWQ7CkBAIC04NiwxMiArODAsOCBAQCBPcHRpb25hbDxXZWJQb3B1cEl0ZW0+IFdlYlBvcHVw
SXRlbTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHRleHQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
RW51bSh0ZXh0RGlyZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
IGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSkKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBp
dGVtU3R5bGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpdGVtU3R5bGUpKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgU3RyaW5nIHRvb2xUaXA7CkBAIC0xMTQsNyArMTA0
LDcgQEAgT3B0aW9uYWw8V2ViUG9wdXBJdGVtPiBXZWJQb3B1cEl0ZW06OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1NlbGVjdGVkKSkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyB0eXBlLCB0ZXh0LCB0
ZXh0RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2li
aWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlzU2VsZWN0ZWQgfX07CisgICAgcmV0dXJu
IHt7IHR5cGUsIHRleHQsIGl0ZW1TdHlsZSwgdG9vbFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlz
RW5hYmxlZCwgaXNMYWJlbCwgaXNTZWxlY3RlZCB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4IGZlZDJmZTQ4ODA5ZWUzNTk5
ZTQ5MjdiNmJmODZkNTY1Nzk0YTYyNzIuLjNiODEzYzQzMTkxZmEyZjBmZmM2MDY2MDg3ODRlMzM0
ZjdhYmIyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBAIC0yNSw2ICsyNSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVTdHlsZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV3JpdGluZ01vZGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNDMsMTUgKzQ0LDE0IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewog
CiAgICAgV2ViUG9wdXBJdGVtKCk7CiAgICAgV2ViUG9wdXBJdGVtKFR5cGUpOwotICAgIFdlYlBv
cHVwSXRlbShUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24s
IGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNv
bnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFi
ZWwsIGJvb2wgaXNTZWxlY3RlZCk7CisgICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUmLCBjb25zdCBTdHJpbmcmIHRv
b2xUaXAsIGNvbnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBi
b29sIGlzTGFiZWwsIGJvb2wgaXNTZWxlY3RlZCk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVu
Y29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUG9wdXBJdGVtPiBkZWNvZGUo
SVBDOjpEZWNvZGVyJik7CiAKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV90ZXh0Owot
ICAgIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gbV90ZXh0RGlyZWN0aW9uOwotICAgIGJvb2wgbV9o
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgbV9p
dGVtU3R5bGU7CiAgICAgU3RyaW5nIG1fdG9vbFRpcDsKICAgICBTdHJpbmcgbV9hY2Nlc3NpYmls
aXR5VGV4dDsKICAgICBib29sIG1faXNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKaW5kZXggYjYxMzhiZDE3NTVi
NzA3Y2JkNGQxYTllYTUxMDIyMDBkNGIyN2FiMy4uOTk4YWY5M2JkNDFmZWNjNTI5YWMyZTAyNDNk
MDkwZmI2NWU4ODMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YlBvcHVwTWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
V2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCkBAIC00Myw2ICs0Myw3IEBAIGVudW0gQ29sdW1ucyB7
CiAgICAgSXNHcm91cCwKICAgICBJc1NlbGVjdGVkLAogICAgIElzRW5hYmxlZCwKKyAgICBJc1Zp
c2libGUsCiAgICAgSW5kZXgsCiAKICAgICBDb3VudApAQCAtNzcsMTAgKzc4LDEwIEBAIGJvb2wg
V2ViUG9wdXBNZW51UHJveHlHdGs6OmFjdGl2YXRlSXRlbUF0UGF0aChHdGtUcmVlUGF0aCogcGF0
aCkKICAgICBhdXRvKiBtb2RlbCA9IGd0a190cmVlX3ZpZXdfZ2V0X21vZGVsKEdUS19UUkVFX1ZJ
RVcobV90cmVlVmlldykpOwogICAgIEd0a1RyZWVJdGVyIGl0ZXI7CiAgICAgZ3RrX3RyZWVfbW9k
ZWxfZ2V0X2l0ZXIobW9kZWwsICZpdGVyLCBwYXRoKTsKLSAgICBnYm9vbGVhbiBpc0dyb3VwLCBp
c0VuYWJsZWQ7CisgICAgZ2Jvb2xlYW4gaXNHcm91cCwgaXNFbmFibGVkLCBpc1Zpc2libGU7CiAg
ICAgZ3VpbnQgaW5kZXg7Ci0gICAgZ3RrX3RyZWVfbW9kZWxfZ2V0KG1vZGVsLCAmaXRlciwgQ29s
dW1uczo6SXNHcm91cCwgJmlzR3JvdXAsIENvbHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwg
Q29sdW1uczo6SW5kZXgsICZpbmRleCwgLTEpOwotICAgIGlmIChpc0dyb3VwIHx8ICFpc0VuYWJs
ZWQpCisgICAgZ3RrX3RyZWVfbW9kZWxfZ2V0KG1vZGVsLCAmaXRlciwgQ29sdW1uczo6SXNHcm91
cCwgJmlzR3JvdXAsIENvbHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgQ29sdW1uczo6SXNW
aXNpYmxlLCAmaXNWaXNpYmxlLCBDb2x1bW5zOjpJbmRleCwgJmluZGV4LCAtMSk7CisgICAgaWYg
KGlzR3JvdXAgfHwgIWlzRW5hYmxlZCB8fCAhaXNWaXNpYmxlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBhY3RpdmF0ZUl0ZW0oaW5kZXgpOwpAQCAtMTM4LDIwICsxMzksMjUgQEAgZ2Jv
b2xlYW4gV2ViUG9wdXBNZW51UHJveHlHdGs6OmtleVByZXNzRXZlbnRDYWxsYmFjayhHdGtXaWRn
ZXQqIHdpZGdldCwgR2RrRXZlbnQKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBXZWJQb3B1
cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+
JiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQorc2l6ZV90IFdlYlBvcHVwTWVudVByb3h5
R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBp
bnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7CiAgICAgQVNTRVJUKCFtX3BvcHVwKTsKIAotICAgIEdS
ZWZQdHI8R3RrVHJlZVN0b3JlPiBtb2RlbCA9IGFkb3B0R1JlZihndGtfdHJlZV9zdG9yZV9uZXco
Q29sdW1uczo6Q291bnQsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9CT09M
RUFOLCBHX1RZUEVfQk9PTEVBTiwgR19UWVBFX0JPT0xFQU4sIEdfVFlQRV9VSU5UKSk7CisgICAg
R1JlZlB0cjxHdGtUcmVlU3RvcmU+IG1vZGVsID0gYWRvcHRHUmVmKGd0a190cmVlX3N0b3JlX25l
dyhDb2x1bW5zOjpDb3VudCwgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORywgR19UWVBFX0JP
T0xFQU4sIEdfVFlQRV9CT09MRUFOLCBHX1RZUEVfQk9PTEVBTiwgR19UWVBFX0JPT0xFQU4sIEdf
VFlQRV9VSU5UKSk7CiAgICAgR3RrVHJlZUl0ZXIgcGFyZW50SXRlcjsKICAgICB1bnNpZ25lZCBp
bmRleCA9IDA7CisgICAgc2l6ZV90IHZpc2libGVJdGVtQ291bnQgPSAwOwogICAgIG1fcGF0aHMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShpdGVtcy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0
byYgaXRlbSA6IGl0ZW1zKSB7CisgICAgICAgIGNvbnN0IGdib29sZWFuIGlzVmlzaWJsZSA9ICFp
dGVtLm1faXRlbVN0eWxlLmlzRGlzcGxheU5vbmUoKTsKKyAgICAgICAgaWYgKGlzVmlzaWJsZSkK
KyAgICAgICAgICAgIHZpc2libGVJdGVtQ291bnQrKzsKICAgICAgICAgaWYgKGl0ZW0ubV9pc0xh
YmVsKSB7CiAgICAgICAgICAgICBndGtfdHJlZV9zdG9yZV9pbnNlcnRfd2l0aF92YWx1ZXMobW9k
ZWwuZ2V0KCksICZwYXJlbnRJdGVyLCBudWxscHRyLCAtMSwKICAgICAgICAgICAgICAgICBDb2x1
bW5zOjpMYWJlbCwgaXRlbS5tX3RleHQuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpLmRhdGEoKSwK
ICAgICAgICAgICAgICAgICBDb2x1bW5zOjpJc0dyb3VwLCBUUlVFLAogICAgICAgICAgICAgICAg
IENvbHVtbnM6OklzRW5hYmxlZCwgVFJVRSwKKyAgICAgICAgICAgICAgICBDb2x1bW5zOjpJc1Zp
c2libGUsIGlzVmlzaWJsZSwKICAgICAgICAgICAgICAgICAtMSk7CiAgICAgICAgICAgICAvLyBX
ZSBuZXZlciBuZWVkIHRoZSBwYXRoIGZvciBncm91cCBsYWJlbHMuCiAgICAgICAgICAgICBtX3Bh
dGhzLnVuY2hlY2tlZEFwcGVuZChudWxscHRyKTsKQEAgLTE2NCw2ICsxNzAsNyBAQCB2b2lkIFdl
YlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVw
SXRlbT4mIGl0ZW1zLCBpbgogICAgICAgICAgICAgICAgIENvbHVtbnM6OklzR3JvdXAsIEZBTFNF
LAogICAgICAgICAgICAgICAgIENvbHVtbnM6OklzU2VsZWN0ZWQsIGlzU2VsZWN0ZWQsCiAgICAg
ICAgICAgICAgICAgQ29sdW1uczo6SXNFbmFibGVkLCBpdGVtLm1faXNFbmFibGVkLAorICAgICAg
ICAgICAgICAgIENvbHVtbnM6OklzVmlzaWJsZSwgaXNWaXNpYmxlLAogICAgICAgICAgICAgICAg
IENvbHVtbnM6OkluZGV4LCBpbmRleCwKICAgICAgICAgICAgICAgICAtMSk7CiAgICAgICAgICAg
ICBpZiAoaXNTZWxlY3RlZCkgewpAQCAtMTc0LDYgKzE4MSw3IEBAIHZvaWQgV2ViUG9wdXBNZW51
UHJveHlHdGs6OmNyZWF0ZVBvcHVwTWVudShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRl
bXMsIGluCiAgICAgICAgIH0KICAgICAgICAgaW5kZXgrKzsKICAgICB9CisgICAgQVNTRVJUKHZp
c2libGVJdGVtQ291bnQgPD0gaXRlbXMuc2l6ZSgpKTsKIAogICAgIG1fdHJlZVZpZXcgPSBndGtf
dHJlZV92aWV3X25ld193aXRoX21vZGVsKEdUS19UUkVFX01PREVMKG1vZGVsLmdldCgpKSk7CiAg
ICAgYXV0byogdHJlZVZpZXcgPSBHVEtfVFJFRV9WSUVXKG1fdHJlZVZpZXcpOwpAQCAtMTg4LDEz
ICsxOTYsMTMgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNv
bnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW4KICAgICBndGtfdHJlZV92aWV3X3Nl
dF9oZWFkZXJzX3Zpc2libGUodHJlZVZpZXcsIEZBTFNFKTsKICAgICBndGtfdHJlZV92aWV3X2lu
c2VydF9jb2x1bW5fd2l0aF9kYXRhX2Z1bmModHJlZVZpZXcsIDAsIG51bGxwdHIsIGd0a19jZWxs
X3JlbmRlcmVyX3RleHRfbmV3KCksIFtdKEd0a1RyZWVWaWV3Q29sdW1uKiwgR3RrQ2VsbFJlbmRl
cmVyKiByZW5kZXJlciwgR3RrVHJlZU1vZGVsKiBtb2RlbCwgR3RrVHJlZUl0ZXIqIGl0ZXIsIGdw
b2ludGVyKSB7CiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gbGFiZWw7Ci0gICAgICAgIGdi
b29sZWFuIGlzR3JvdXAsIGlzRW5hYmxlZDsKLSAgICAgICAgZ3RrX3RyZWVfbW9kZWxfZ2V0KG1v
ZGVsLCBpdGVyLCBDb2x1bW5zOjpMYWJlbCwgJmxhYmVsLm91dFB0cigpLCBDb2x1bW5zOjpJc0dy
b3VwLCAmaXNHcm91cCwgQ29sdW1uczo6SXNFbmFibGVkLCAmaXNFbmFibGVkLCAtMSk7CisgICAg
ICAgIGdib29sZWFuIGlzR3JvdXAsIGlzRW5hYmxlZCwgaXNWaXNpYmxlOworICAgICAgICBndGtf
dHJlZV9tb2RlbF9nZXQobW9kZWwsIGl0ZXIsIENvbHVtbnM6OkxhYmVsLCAmbGFiZWwub3V0UHRy
KCksIENvbHVtbnM6OklzR3JvdXAsICZpc0dyb3VwLCBDb2x1bW5zOjpJc0VuYWJsZWQsICZpc0Vu
YWJsZWQsIENvbHVtbnM6OklzVmlzaWJsZSwgJmlzVmlzaWJsZSwgLTEpOwogICAgICAgICBpZiAo
aXNHcm91cCkgewogICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBtYXJrdXAoZ19zdHJkdXBf
cHJpbnRmKCI8Yj4lczwvYj4iLCBsYWJlbC5nZXQoKSkpOwogICAgICAgICAgICAgZ19vYmplY3Rf
c2V0KHJlbmRlcmVyLCAibWFya3VwIiwgbWFya3VwLmdldCgpLCBudWxscHRyKTsKICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBnX29iamVjdF9zZXQocmVuZGVyZXIsICJ0ZXh0IiwgbGFiZWwu
Z2V0KCksICJzZW5zaXRpdmUiLCBpc0VuYWJsZWQsIG51bGxwdHIpOworICAgICAgICAgICAgZ19v
YmplY3Rfc2V0KHJlbmRlcmVyLCAidGV4dCIsIGxhYmVsLmdldCgpLCAic2Vuc2l0aXZlIiwgaXNF
bmFibGVkLCAidmlzaWJsZSIsIGlzVmlzaWJsZSwgbnVsbHB0cik7CiAgICAgfSwgbnVsbHB0ciwg
bnVsbHB0cik7CiAgICAgZ3RrX3RyZWVfdmlld19leHBhbmRfYWxsKHRyZWVWaWV3KTsKIApAQCAt
MjA0LDkgKzIxMiw5IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZVBvcHVwTWVu
dShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGluCiAgICAgZ3RrX3RyZWVfc2Vs
ZWN0aW9uX3NldF9zZWxlY3RfZnVuY3Rpb24oc2VsZWN0aW9uLCBbXShHdGtUcmVlU2VsZWN0aW9u
KiwgR3RrVHJlZU1vZGVsKiBtb2RlbCwgR3RrVHJlZVBhdGgqIHBhdGgsIGdib29sZWFuIHNlbGVj
dGVkLCBncG9pbnRlcikgLT4gZ2Jvb2xlYW4gewogICAgICAgICBHdGtUcmVlSXRlciBpdGVyOwog
ICAgICAgICBndGtfdHJlZV9tb2RlbF9nZXRfaXRlcihtb2RlbCwgJml0ZXIsIHBhdGgpOwotICAg
ICAgICBnYm9vbGVhbiBpc0dyb3VwLCBpc0VuYWJsZWQ7Ci0gICAgICAgIGd0a190cmVlX21vZGVs
X2dldChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OklzR3JvdXAsICZpc0dyb3VwLCBDb2x1bW5zOjpJ
c0VuYWJsZWQsICZpc0VuYWJsZWQsIC0xKTsKLSAgICAgICAgcmV0dXJuICFpc0dyb3VwICYmIGlz
RW5hYmxlZDsKKyAgICAgICAgZ2Jvb2xlYW4gaXNHcm91cCwgaXNFbmFibGVkLCBpc1Zpc2libGU7
CisgICAgICAgIGd0a190cmVlX21vZGVsX2dldChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OklzR3Jv
dXAsICZpc0dyb3VwLCBDb2x1bW5zOjpJc0VuYWJsZWQsICZpc0VuYWJsZWQsIENvbHVtbnM6Oklz
VmlzaWJsZSwgJmlzVmlzaWJsZSwgLTEpOworICAgICAgICByZXR1cm4gIWlzR3JvdXAgJiYgaXNF
bmFibGVkICYmIGlzVmlzaWJsZTsKICAgICB9LCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIGF1
dG8qIHN3aW5kb3cgPSBndGtfc2Nyb2xsZWRfd2luZG93X25ldyhudWxscHRyLCBudWxscHRyKTsK
QEAgLTIyMiw2ICsyMzAsOCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1
cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbgogICAgIGd0a193aW5k
b3dfc2V0X3Jlc2l6YWJsZShHVEtfV0lORE9XKG1fcG9wdXApLCBGQUxTRSk7CiAgICAgZ3RrX2Nv
bnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3BvcHVwKSwgc3dpbmRvdyk7CiAgICAgZ3RrX3dp
ZGdldF9zaG93KHN3aW5kb3cpOworCisgICAgcmV0dXJuIHZpc2libGVJdGVtQ291bnQ7CiB9CiAK
IHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3coKQpAQCAtMjM4LDcgKzI0OCw3IEBAIHZv
aWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3coKQogCiB2b2lkIFdlYlBvcHVwTWVudVByb3h5
R3RrOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24sIGRv
dWJsZSAvKiBwYWdlU2NhbGVGYWN0b3IgKi8sIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBp
dGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4
KQogewotICAgIGNyZWF0ZVBvcHVwTWVudShpdGVtcywgc2VsZWN0ZWRJbmRleCk7CisgICAgY29u
c3QgYXV0byB2aXNpYmxlSXRlbUNvdW50ID0gY3JlYXRlUG9wdXBNZW51KGl0ZW1zLCBzZWxlY3Rl
ZEluZGV4KTsKICAgICBBU1NFUlQobV9wb3B1cCk7CiAKICAgICBHdGtSZXF1aXNpdGlvbiB0cmVl
Vmlld1JlcXVpc2l0aW9uOwpAQCAtMjU3LDcgKzI2Nyw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiwg
ZG91CiAgICAgR2RrUmVjdGFuZ2xlIGFyZWE7CiAgICAgZ2RrX21vbml0b3JfZ2V0X3dvcmthcmVh
KG1vbml0b3IsICZhcmVhKTsKICAgICBpbnQgd2lkdGggPSBzdGQ6Om1pbihyZWN0LndpZHRoKCks
IGFyZWEud2lkdGgpOwotICAgIHNpemVfdCBpdGVtQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KGl0
ZW1zLnNpemUoKSwgKGFyZWEuaGVpZ2h0IC8gMykgLyBpdGVtSGVpZ2h0KTsKKyAgICBzaXplX3Qg
aXRlbUNvdW50ID0gc3RkOjptaW48c2l6ZV90Pih2aXNpYmxlSXRlbUNvdW50LCAoYXJlYS5oZWln
aHQgLyAzKSAvIGl0ZW1IZWlnaHQpOwogCiAgICAgYXV0byogc3dpbmRvdyA9IEdUS19TQ1JPTExF
RF9XSU5ET1coZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihtX3BvcHVwKSkpOwogICAgIC8vIERp
c2FibGUgc2Nyb2xsYmFycyB3aGVuIHRoZXJlJ3Mgb25seSBvbmUgaXRlbSB0byBlbnN1cmUgdGhl
IHNjcm9sbGVkIHdpbmRvdyBkb2Vzbid0IHRha2UgdGhlbSBpbnRvIGFjY291bnQgd2hlbiBjYWxj
dWxhdGluZyBpdHMgbWluaW11bSBzaXplLgpAQCAtMjY2LDcgKzI3Niw3IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERp
cmVjdGlvbiwgZG91CiAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5zX2F1dG9zaXplKEdUS19UUkVF
X1ZJRVcobV90cmVlVmlldykpOwogICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X21pbl9jb250
ZW50X3dpZHRoKHN3aW5kb3csIHdpZHRoKTsKICAgICBndGtfd2lkZ2V0X3NldF9zaXplX3JlcXVl
c3QobV9wb3B1cCwgd2lkdGgsIC0xKTsKLSAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9taW5f
Y29udGVudF9oZWlnaHQoc3dpbmRvdywgaXRlbUNvdW50ICogaXRlbUhlaWdodCk7CisgICAgZ3Rr
X3Njcm9sbGVkX3dpbmRvd19zZXRfbWluX2NvbnRlbnRfaGVpZ2h0KHN3aW5kb3csIHZpc2libGVJ
dGVtQ291bnQgKiBpdGVtSGVpZ2h0KTsKIAogICAgIEd0a1JlcXVpc2l0aW9uIG1lbnVSZXF1aXNp
dGlvbjsKICAgICBndGtfd2lkZ2V0X2dldF9wcmVmZXJyZWRfc2l6ZShtX3BvcHVwLCAmbWVudVJl
cXVpc2l0aW9uLCBudWxscHRyKTsKQEAgLTQwMyw5ICs0MTMsOSBAQCBPcHRpb25hbDx1bnNpZ25l
ZD4gV2ViUG9wdXBNZW51UHJveHlHdGs6OnR5cGVBaGVhZEZpbmRJbmRleChHZGtFdmVudEtleSog
ZXZlbnQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGNo
YXI+IGxhYmVsOwotICAgICAgICBnYm9vbGVhbiBpc0VuYWJsZWQ7Ci0gICAgICAgIGd0a190cmVl
X21vZGVsX2dldChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OkxhYmVsLCAmbGFiZWwub3V0UHRyKCks
IENvbHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgLTEpOwotICAgICAgICBpZiAoIWlzRW5h
YmxlZCkKKyAgICAgICAgZ2Jvb2xlYW4gaXNFbmFibGVkLCBpc1Zpc2libGU7CisgICAgICAgIGd0
a190cmVlX21vZGVsX2dldChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OkxhYmVsLCAmbGFiZWwub3V0
UHRyKCksIENvbHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgQ29sdW1uczo6SXNWaXNpYmxl
LCAmaXNWaXNpYmxlLCAtMSk7CisgICAgICAgIGlmICghaXNFbmFibGVkIHx8ICFpc1Zpc2libGUp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IG5vcm1h
bGl6ZWRUZXh0KGdfdXRmOF9ub3JtYWxpemUobGFiZWwuZ2V0KCksIC0xLCBHX05PUk1BTElaRV9B
TEwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1l
bnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVBy
b3h5R3RrLmgKaW5kZXggODdkMGI2ZjZkYzAxYmNjODQ2OGZmM2M3MGUzNjdjMWQ3YjlhNjk0MC4u
NmViNDczOTEyM2VlNjQ2Nzk3NDBkN2FiZjQwOTM0Y2RlODI5YTcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKQEAgLTYyLDcg
KzYyLDcgQEAgcHJvdGVjdGVkOgogICAgIEd0a1dpZGdldCogbV93ZWJWaWV3IHsgbnVsbHB0ciB9
OwogCiBwcml2YXRlOgotICAgIHZvaWQgY3JlYXRlUG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQ
b3B1cEl0ZW0+JiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKKyAgICBzaXplX3QgY3JlYXRlUG9w
dXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiwgaW50MzJfdCBzZWxlY3RlZEluZGV4
KTsKICAgICB2b2lkIHNob3coKTsKICAgICBib29sIGFjdGl2YXRlSXRlbUF0UGF0aChHdGtUcmVl
UGF0aCopOwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiB0eXBlQWhlYWRGaW5kSW5kZXgoR2RrRXZl
bnRLZXkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKaW5kZXggYjk5OWY1ODQzY2E4ZjNlMDc2YTkxM2Y2YzZh
ZmE4YzQ3NmJhZmNjYS4uNmQ0ZmJiOGIxNTI1NTZhODE1MmNmOGZmYjdiYzI4MWIyNWYyNTgxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBv
cHVwTWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgVmVjdG9yPFdlYlBvcHVwSXRlbT4g
V2ViUG9wdXBNZW51Ojpwb3B1bGF0ZUl0ZW1zKCkKICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQg
c3VwcG9ydCBmb3Igc3R5bGluZyB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMu
CiAgICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBjdXN0b21pemUgdGV4dCBjb2xv
ciB3aGVuIGFuIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQuCiAgICAgICAgICAgICBQb3B1cE1lbnVTdHls
ZSBpdGVtU3R5bGUgPSBtX3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaSk7Ci0gICAgICAgICAgICBp
dGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVtKFdlYlBvcHVwSXRlbTo6SXRlbSwgbV9wb3B1cENsaWVu
dC0+aXRlbVRleHQoaSksIGl0ZW1TdHlsZS50ZXh0RGlyZWN0aW9uKCksIGl0ZW1TdHlsZS5oYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSwgbV9wb3B1cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1f
cG9wdXBDbGllbnQtPml0ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRl
bUlzRW5hYmxlZChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSksIG1fcG9wdXBDbGll
bnQtPml0ZW1Jc1NlbGVjdGVkKGkpKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2ViUG9w
dXBJdGVtKFdlYlBvcHVwSXRlbTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRlbVRleHQoaSksIGl0
ZW1TdHlsZSwgbV9wb3B1cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1fcG9wdXBDbGllbnQtPml0
ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxlZChpKSwg
bV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlbGVj
dGVkKGkpKSk7CiAgICAgICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379552</attachid>
            <date>2019-09-25 09:04:15 -0700</date>
            <delta_ts>2019-10-31 07:23:54 -0700</delta_ts>
            <desc>WIP Patch v2</desc>
            <filename>bug-81882-20190925190413.patch</filename>
            <type>text/plain</type>
            <size>26235</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmZmIwYTk2MDExMDM5
MTNkMzM2YmY4ZjkzZDg4OTQxNjRlYTY5Yy4uODQ4NzA1MjllMjE2NTRjZjYxMWFkYWFiYTMwNmU1
NTAyNjA5MTM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA5LTI1ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
ZGlzcGxheTpub25lIGhhcyBubyBlZmZlY3Qgb24gPG9wdGlvbj4gZWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHRoZSBzdHlsZSBpbmZv
cm1hdGlvbiAoUG9wdXBNZW51U3R5bGUpIG9mIGEgV2ViUG9wdXBJdGVtIG92ZXIgSVBDIHRvIG1h
a2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBVSVByb2Nlc3MsIHdoaWNoIHRoZW4gY2Fu
IHVzZSBpdCB0byBkZXRlcm1pbmUgaG93IHRvIGRpc3BsYXkgcG9wdXAgaXRlbXMuIFRoZW4sIG1h
a2UKKyAgICAgICAgdGhlIEdUSyBpbXBsZW1lbnRhdGlvbiBvZiBwb3B1cCBtZW51cyB0YWtlIGlu
dG8gYWNjb3VudCBQb3B1cE1lbnVTdHlsZTo6aXNEaXNwbGF5Tm9uZSgpIHRvCisgICAgICAgIGRl
Y2lkZSB3aGV0aGVyIGl0ZW1zIG1heSBiZSBoaWRkZW4gYW5kIHNraXAgZGlzcGxheWluZyB0aGVt
LiBGb3Igbm93IG9ubHkgdmlzaWJpbGl0eSBpcworICAgICAgICBoYW5kbGVkIGluIHRoZSBHVEsg
cG9ydCwgYnV0IHRoaXMgbGF5cyBhIGZvdW5kYXRpb24gd2hpY2ggYWxsb3dzIGZvciBob25vcmlu
ZyBvdGhlciBwb3B1cAorICAgICAgICBpdGVtIGRpc3BsYXkgYXR0cmlidXRlcyBpbiB0aGUgZnV0
dXJlIGFzIHdlbGwuCisKKyAgICAgICAgQmFzZWQgb24gYW4gb2xkIHBhdGNoIGJ5IE9sZWcgU21p
cm5vdiAodGhhbmtzISkKKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U3R5bGUpOiBQcm92aWRlIGEgZGVmYXVsdCBjb25zdHJ1Y3RvciB3
aGljaCBjYW4gYmUKKyAgICAgICAgdXNlZCB0byBpbml0aWFsaXplIGEgUG9wdXBNZW51U3R5bGUg
aW5zdGFuY2UgdXNpbmcgZGVmYXVsdCB2YWx1ZXMgcHJpb3IgdG8gZGVjb2RpbmcgaXQuCisKIDIw
MTktMDktMjUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTAzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ4YWY5N2RhOGJm
ZmFkZmEzOGRlMzFiZmYwY2FhNTBhNWMwMTgwYTkuLmE5MmMxOGFiMWEwYzkzMDdkNDc0MWY2MmI3
OWQ1NDA4OTBiYmMyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTktMDktMjUgIEFk
cmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RL
XSBkaXNwbGF5Om5vbmUgaGFzIG5vIGVmZmVjdCBvbiA8b3B0aW9uPiBlbGVtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTg4MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhlIHN0eWxlIGlu
Zm9ybWF0aW9uIChQb3B1cE1lbnVTdHlsZSkgb2YgYSBXZWJQb3B1cEl0ZW0gb3ZlciBJUEMgdG8g
bWFrZSBpdCBhdmFpbGFibGUKKyAgICAgICAgaW4gdGhlIFVJUHJvY2Vzcywgd2hpY2ggdGhlbiBj
YW4gdXNlIGl0IHRvIGRldGVybWluZSBob3cgdG8gZGlzcGxheSBwb3B1cCBpdGVtcy4gVGhlbiwg
bWFrZQorICAgICAgICB0aGUgR1RLIGltcGxlbWVudGF0aW9uIG9mIHBvcHVwIG1lbnVzIHRha2Ug
aW50byBhY2NvdW50IFBvcHVwTWVudVN0eWxlOjppc0Rpc3BsYXlOb25lKCkgdG8KKyAgICAgICAg
ZGVjaWRlIHdoZXRoZXIgaXRlbXMgbWF5IGJlIGhpZGRlbiBhbmQgc2tpcCBkaXNwbGF5aW5nIHRo
ZW0uIEZvciBub3cgb25seSB2aXNpYmlsaXR5IGlzCisgICAgICAgIGhhbmRsZWQgaW4gdGhlIEdU
SyBwb3J0LCBidXQgdGhpcyBsYXlzIGEgZm91bmRhdGlvbiB3aGljaCBhbGxvd3MgZm9yIGhvbm9y
aW5nIG90aGVyIHBvcHVwCisgICAgICAgIGl0ZW0gZGlzcGxheSBhdHRyaWJ1dGVzIGluIHRoZSBm
dXR1cmUgYXMgd2VsbC4KKworICAgICAgICBCYXNlZCBvbiBhbiBvbGQgcGF0Y2ggYnkgT2xlZyBT
bWlybm92ICh0aGFua3MhKQorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5bGU+OjplbmNv
ZGUpOiBBZGRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQb3B1cE1lbnVTdHlsZT46
OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDogQWRkZWQgZGVjbGFyYXRpb24gZm9yIFBvcHVwTWVudVN0eWxlIGNvZGVycy4KKyAgICAgICAg
KiBTaGFyZWQvV2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVt
OjpXZWJQb3B1cEl0ZW0pOiBaYXAgaW5pdGlhbGl6YXRpb24gb2YgcmVtb3ZlZCBtZW1iZXJzCisg
ICAgICAgIG1fdGV4dERpcmVjdGlvbiBhbmQgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7IGFu
ZCBtYWtlIHRoZSBjb21wbGV0ZSBjb25zdHJ1Y3RvcgorICAgICAgICByZWNlaXZlIGEgUG9wdXBN
ZW51U3R5bGUgcGFyYW1ldGVyIGluc3RlYWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRl
bTo6ZW5jb2RlIGNvbnN0KTogQWRhcHQgdG8gaGFuZGxlIHRoZSBhZGRlZCBQb3B1cE1lbnVTdHls
ZSBtZW1iZXIKKyAgICAgICAgYW5kIHJlbW92ZSBoYW5kbGluZyBvZiB0aGUgcmVtb3ZlZCBtX3Rl
eHREaXJlY3Rpb24gYW5kIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlIG1lbWJlcnMuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZGVjb2RlKTogRGl0dG8uCisgICAgICAgICogU2hh
cmVkL1dlYlBvcHVwSXRlbS5oOiBBZGQgYSBQb3B1cE1lbnVTdHlsZSBtZW1iZXIsIGFuZCByZW1v
dmUgbV90ZXh0RGlyZWN0aW9uIGFuZAorICAgICAgICBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlk
ZSBtZW1iZXJzIHRvIGF2b2lkIGR1cGxpY2F0aW9uIGJlY2F1c2UgdGhlaXIgdmFsdWVzIGFyZSBh
bHJlYWR5CisgICAgICAgIHByb3ZpZGVkIGJ5IFBvcHVwTWVudVN0eWxlLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwOiBBZGQgYSBjb2x1bW4gdG8gdGhl
IHRyZWUgbW9kZWwgd2hpY2ggaW5kaWNhdGVzCisgICAgICAgIHdoZXRoZXIgYSByb3cgaXMgdmlz
aWJsZSwgYW5kIHRha2UgaXQgaW50byBhY2NvdW50IGZvciBjYWxjdWxhdGluZyB0aGUgYW1vdW5n
IG9mIGl0ZW1zCisgICAgICAgIGRpc3BsYXllZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51UHJveHlHdGs6OmFjdGl2YXRlSXRlbUF0UGF0aCk6IERvIG5vdCBhbGxvdyBhY3RpdmF0aW9u
IG9mIGludmlzaWJsZSBpdGVtcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlH
dGs6OmNyZWF0ZVBvcHVwTWVudSk6IFBvcHVsYXRlIHZpc2liaWxpdHkgY29sdW1uLCBhbmQgcHJv
dmlkZSBhCisgICAgICAgIGNvdW50IG9mIHZpc2libGUgaXRlbXMgYXMgcmV0dXJuIHZhbHVlLiBB
bHNvLCB0aGUgY2FsbGJhY2sgaW5zdGFsbGVkIHdpdGgKKyAgICAgICAgZ3RrX3RyZWVfc2VsZWN0
aW9uX3NldF9zZWxlY3RfZnVuY3Rpb24oKSBpcyBtb2RpZmllZCB0byBkaXNhbGxvdyBzZWxlY3Rp
b24gaWYgYW4gaXRlbSBpcworICAgICAgICBpbnZpc2libGUuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBvcHVwTWVudVByb3h5R3RrOjpzaG93UG9wdXBNZW51KTogVGFrZSBpbnRvIGFjY291bnQgdGhl
IG51bWJlciBvZiB2aXNpYmUgaXRlbXMKKyAgICAgICAgZm9yIHdpZGdldCBzaXplIGNhbGN1bGF0
aW9ucy4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OnR5cGVBaGVhZEZp
bmRJbmRleCk6IERvIG5vdCBhbGxvdyBwaWNraW5nIGludmlzaWJsZSBpdGVtcworICAgICAgICB3
aGVuIHR5cGUgYWhlYWQgc2VsZWN0aW9uIGlzIGJlaW5nIHVzZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oOiBDaGFuZ2UgcHJvdG90eXBlIG9mIGNyZWF0
ZVBvcHVwTWVudSgpIHRvIG1ha2UgaXQKKyAgICAgICAgcmV0dXJuIHRoZSBudW1iZXIgb2Ygdmlz
aWJsZSBpdGVtcyBpbiB0aGUgbWVudS4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6
cG9wdWxhdGUpOiBBZGFwdCB0byBXZWJQb3B1cEl0ZW0gbm90IGNvbnRhaW5pbmcgYQorICAgICAg
ICBQb3B1cE1lbnVTdHlsZSBtZW1iZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQb3B1cE1lbnUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OnBv
cHVsYXRlSXRlbXMpOiBBZGFwdCB0byB0aGUgY2hhbmdlIGluIHRoZSBXZWJQb3B1cEl0ZW0gY29u
c3RydWN0b3IsCisgICAgICAgIGluIG9yZGVyIHRvIHBhc3MgYSBQb3B1cE1lbnVTdHlsZSB0byBp
dC4KKwogMjAxOS0wOS0yNSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1MDMyNC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCmluZGV4IDM3Y2VlNjMyYWJhYzE2YjdjMWY4ODdlOWRm
MTE1YzZjNTRhNmU2N2YuLjc4NzIwNzNiZDQxYmNkM2EyZDk2NThhMDUyNzUxOTQyMTQzNjM1YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaApAQCAtNDIsNiArNDIs
MTYgQEAgcHVibGljOgogICAgICAgICBQb3B1cE1lbnVTaXplTWluaQogICAgIH07CiAKKyAgICBQ
b3B1cE1lbnVTdHlsZSgpCisgICAgICAgIDogbV92aXNpYmxlKGZhbHNlKQorICAgICAgICAsIG1f
aXNEaXNwbGF5Tm9uZShmYWxzZSkKKyAgICAgICAgLCBtX3RleHREaXJlY3Rpb24oVGV4dERpcmVj
dGlvbjo6TFRSKQorICAgICAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNlKQor
ICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9yVHlwZShEZWZhdWx0QmFja2dyb3VuZENvbG9yKQor
ICAgICAgICAsIG1fbWVudVR5cGUoU2VsZWN0UG9wdXApCisgICAgeworICAgIH0KKwogICAgIFBv
cHVwTWVudVN0eWxlKGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dy
b3VuZCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGJvb2wgdmlzaWJsZSwgYm9vbCBpc0Rpc3Bs
YXlOb25lLCBib29sIGhhc0RlZmF1bHRBcHBlYXJhbmNlLCBMZW5ndGggdGV4dEluZGVudCwgVGV4
dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwg
QmFja2dyb3VuZENvbG9yVHlwZSBiYWNrZ3JvdW5kQ29sb3JUeXBlID0gRGVmYXVsdEJhY2tncm91
bmRDb2xvciwgUG9wdXBNZW51VHlwZSBtZW51VHlwZSA9IFNlbGVjdFBvcHVwLCBQb3B1cE1lbnVT
aXplIG1lbnVTaXplID0gUG9wdXBNZW51U2l6ZU5vcm1hbCkKICAgICAgICAgOiBtX2ZvcmVncm91
bmRDb2xvcihmb3JlZ3JvdW5kKQogICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9yKGJhY2tncm91
bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCAyMjJjZGFmOTIwYjBkNTBmYzM0N2Q1YTUwNjZkOWEwZWQ1YjhlNDQ3Li40MDNmZTYyYTE0
MDE1MTBhNjg1MDg0MmI4ZWY3Y2JhZTcxODg5MzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhdGguaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVN0
eWxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlY3RF
ZGdlcy5oPgpAQCAtMTAwNSw2ICsxMDA2LDczIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdXRoZW50aWNhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxQb3B1cE1lbnVTdHlsZT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQb3B1cE1lbnVTdHlsZSYgcG9wdXBNZW51
U3R5bGUpCit7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5mb3JlZ3JvdW5kQ29sb3Io
KTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmJhY2tncm91bmRDb2xvcigpOworICAg
IC8vIFRPRE86IEVuY29kZSBGb250Q2FzY2FkZSBtZW1iZXIuCisgICAgZW5jb2RlciA8PCBwb3B1
cE1lbnVTdHlsZS5pc1Zpc2libGUoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmlz
RGlzcGxheU5vbmUoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmhhc0RlZmF1bHRB
cHBlYXJhbmNlKCk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS50ZXh0SW5kZW50KCk7
CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBvcHVwTWVudVN0eWxlLnRleHREaXJlY3Rpb24oKSk7
CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUo
KTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUuYmFja2dyb3VuZENvbG9y
VHlwZSgpKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUubWVudVR5cGUo
KSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBvcHVwTWVudVN0eWxlLm1lbnVTaXplKCkpOwor
fQorCitib29sIEFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5bGU+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUG9wdXBNZW51U3R5bGUmIHBvcHVwTWVudVN0eWxlKQoreworICAgIENvbG9yIGZv
cmVncm91bmRDb2xvcjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZvcmVncm91bmRDb2xvcikp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbG9yIGJhY2tncm91bmRDb2xvcjsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGJhY2tncm91bmRDb2xvcikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIC8vIFRPRE86IERlY29kZSBGb250Q2FzY2FkZSBtZW1iZXIuCisKKyAgICBi
b29sIHZpc2libGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2aXNpYmxlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBpc0Rpc3BsYXlOb25lOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaXNEaXNwbGF5Tm9uZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJv
b2wgaGFzRGVmYXVsdEFwcGVhcmFuY2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNEZWZh
dWx0QXBwZWFyYW5jZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExlbmd0aCB0ZXh0
SW5kZW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dEluZGVudCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbjsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bSh0ZXh0RGlyZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBQb3B1cE1lbnVTdHlsZTo6QmFja2dyb3VuZENvbG9yVHlwZSBiYWNrZ3JvdW5kQ29s
b3JUeXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGJhY2tncm91bmRDb2xvclR5cGUp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
VHlwZSBtZW51VHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShtZW51VHlwZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXpl
IG1lbnVTaXplOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKG1lbnVTaXplKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9wdXBNZW51U3R5bGUgPSBQb3B1cE1lbnVTdHlsZShm
b3JlZ3JvdW5kQ29sb3IsIGJhY2tncm91bmRDb2xvciwgRm9udENhc2NhZGUoKSwgdmlzaWJsZSwg
aXNEaXNwbGF5Tm9uZSwgaGFzRGVmYXVsdEFwcGVhcmFuY2UsIHRleHRJbmRlbnQsIHRleHREaXJl
Y3Rpb24sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgYmFja2dyb3VuZENvbG9yVHlwZSwgbWVu
dVR5cGUsIG1lbnVTaXplKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENv
ZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQcm90
ZWN0aW9uU3BhY2UmIHNwYWNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCA5ZDZjZDM0MTIyZGNjYmY2MzA2MzBlY2NkZGExNmYwNzg1NGMz
ZGU0Li4zYWNmMDJhMTYwMmVlYjczYTYyNGZjMzAwMzNmNzEyNmYzNGQxNzQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtOTAsNiArOTAsNyBA
QCBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xhc3Mg
Tm90aWZpY2F0aW9uOwogY2xhc3MgUGF0aDsKK2NsYXNzIFBvcHVwTWVudVN0eWxlOwogY2xhc3Mg
UHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKQEAg
LTM1OSw2ICszNjAsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIH07CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UG9wdXBNZW51U3R5bGU+IHsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBvcHVwTWVudVN0eWxl
Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQb3B1cE1lbnVT
dHlsZSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2U+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUG9w
dXBJdGVtLmNwcAppbmRleCA4NjBmNWIwY2Y2MTQ5NDdhZjNlNDRmN2NjOWI0MzE4MmFjMDE5MjI3
Li41NjA0ZjAxMjFjMmI3NDhkM2M0N2UwNjcxYzc0N2YzZDIwMGViMTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKQEAgLTMzLDggKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKCkKICAgICA6IG1fdHlwZShJdGVtKQot
ICAgICwgbV90ZXh0RGlyZWN0aW9uKFdlYkNvcmU6OlRleHREaXJlY3Rpb246OkxUUikKLSAgICAs
IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9pc0VuYWJsZWQodHJ1
ZSkKICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKQEAgLTQyLDE5ICs0MCwxNiBAQCBXZWJQ
b3B1cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5
cGUgdHlwZSkKICAgICA6IG1fdHlwZSh0eXBlKQotICAgICwgbV90ZXh0RGlyZWN0aW9uKFdlYkNv
cmU6OlRleHREaXJlY3Rpb246OkxUUikKLSAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
KGZhbHNlKQogICAgICwgbV9pc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNMYWJlbChmYWxzZSkK
ICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVtOjpXZWJQb3B1
cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rp
b24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0
cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0Vu
YWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVkKQorV2ViUG9wdXBJdGVtOjpXZWJQ
b3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNvcmU6OlBv
cHVwTWVudVN0eWxlJiBpdGVtU3R5bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3Ry
aW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9v
bCBpc1NlbGVjdGVkKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX3RleHQodGV4dCkKLSAg
ICAsIG1fdGV4dERpcmVjdGlvbih0ZXh0RGlyZWN0aW9uKQotICAgICwgbV9oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKQorICAgICwgbV9pdGVtU3R5bGUo
aXRlbVN0eWxlKQogICAgICwgbV90b29sVGlwKHRvb2xUaXApCiAgICAgLCBtX2FjY2Vzc2liaWxp
dHlUZXh0KGFjY2Vzc2liaWxpdHlUZXh0KQogICAgICwgbV9pc0VuYWJsZWQoaXNFbmFibGVkKQpA
QCAtNjcsOCArNjIsNyBAQCB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKICAgICBl
bmNvZGVyIDw8IG1fdGV4dDsKLSAgICBlbmNvZGVyLmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9u
KTsKLSAgICBlbmNvZGVyIDw8IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOworICAgIGVuY29k
ZXIgPDwgbV9pdGVtU3R5bGU7CiAgICAgZW5jb2RlciA8PCBtX3Rvb2xUaXA7CiAgICAgZW5jb2Rl
ciA8PCBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGVuY29kZXIgPDwgbV9pc0VuYWJsZWQ7CkBA
IC04NiwxMiArODAsOCBAQCBPcHRpb25hbDxXZWJQb3B1cEl0ZW0+IFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHQp
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIFdlYkNvcmU6OlRleHRE
aXJlY3Rpb24gdGV4dERpcmVjdGlvbjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0ZXh0
RGlyZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlKSkKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGU7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpdGVtU3R5bGUpKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCiAgICAgU3RyaW5nIHRvb2xUaXA7CkBAIC0xMTQsNyArMTA0LDcgQEAgT3B0
aW9uYWw8V2ViUG9wdXBJdGVtPiBXZWJQb3B1cEl0ZW06OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1NlbGVjdGVkKSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyB0eXBlLCB0ZXh0LCB0ZXh0RGlyZWN0
aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0
LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlzU2VsZWN0ZWQgfX07CisgICAgcmV0dXJuIHt7IHR5cGUs
IHRleHQsIGl0ZW1TdHlsZSwgdG9vbFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwg
aXNMYWJlbCwgaXNTZWxlY3RlZCB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4IGZlZDJmZTQ4ODA5ZWUzNTk5ZTQ5MjdiNmJm
ODZkNTY1Nzk0YTYyNzIuLjNiODEzYzQzMTkxZmEyZjBmZmM2MDY2MDg3ODRlMzM0ZjdhYmIyZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVTdHlsZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV3JpdGluZ01vZGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtNDMsMTUgKzQ0LDE0IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewogCiAgICAgV2Vi
UG9wdXBJdGVtKCk7CiAgICAgV2ViUG9wdXBJdGVtKFR5cGUpOwotICAgIFdlYlBvcHVwSXRlbShU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmlu
ZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFiZWwsIGJvb2wg
aXNTZWxlY3RlZCk7CisgICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUmLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNv
bnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFi
ZWwsIGJvb2wgaXNTZWxlY3RlZCk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUG9wdXBJdGVtPiBkZWNvZGUoSVBDOjpEZWNv
ZGVyJik7CiAKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV90ZXh0OwotICAgIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24gbV90ZXh0RGlyZWN0aW9uOwotICAgIGJvb2wgbV9oYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgbV9pdGVtU3R5bGU7
CiAgICAgU3RyaW5nIG1fdG9vbFRpcDsKICAgICBTdHJpbmcgbV9hY2Nlc3NpYmlsaXR5VGV4dDsK
ICAgICBib29sIG1faXNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKaW5kZXggYjYxMzhiZDE3NTViNzA3Y2JkNGQx
YTllYTUxMDIyMDBkNGIyN2FiMy4uOTk4YWY5M2JkNDFmZWNjNTI5YWMyZTAyNDNkMDkwZmI2NWU4
ODMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVu
dVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBN
ZW51UHJveHlHdGsuY3BwCkBAIC00Myw2ICs0Myw3IEBAIGVudW0gQ29sdW1ucyB7CiAgICAgSXNH
cm91cCwKICAgICBJc1NlbGVjdGVkLAogICAgIElzRW5hYmxlZCwKKyAgICBJc1Zpc2libGUsCiAg
ICAgSW5kZXgsCiAKICAgICBDb3VudApAQCAtNzcsMTAgKzc4LDEwIEBAIGJvb2wgV2ViUG9wdXBN
ZW51UHJveHlHdGs6OmFjdGl2YXRlSXRlbUF0UGF0aChHdGtUcmVlUGF0aCogcGF0aCkKICAgICBh
dXRvKiBtb2RlbCA9IGd0a190cmVlX3ZpZXdfZ2V0X21vZGVsKEdUS19UUkVFX1ZJRVcobV90cmVl
VmlldykpOwogICAgIEd0a1RyZWVJdGVyIGl0ZXI7CiAgICAgZ3RrX3RyZWVfbW9kZWxfZ2V0X2l0
ZXIobW9kZWwsICZpdGVyLCBwYXRoKTsKLSAgICBnYm9vbGVhbiBpc0dyb3VwLCBpc0VuYWJsZWQ7
CisgICAgZ2Jvb2xlYW4gaXNHcm91cCwgaXNFbmFibGVkLCBpc1Zpc2libGU7CiAgICAgZ3VpbnQg
aW5kZXg7Ci0gICAgZ3RrX3RyZWVfbW9kZWxfZ2V0KG1vZGVsLCAmaXRlciwgQ29sdW1uczo6SXNH
cm91cCwgJmlzR3JvdXAsIENvbHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgQ29sdW1uczo6
SW5kZXgsICZpbmRleCwgLTEpOwotICAgIGlmIChpc0dyb3VwIHx8ICFpc0VuYWJsZWQpCisgICAg
Z3RrX3RyZWVfbW9kZWxfZ2V0KG1vZGVsLCAmaXRlciwgQ29sdW1uczo6SXNHcm91cCwgJmlzR3Jv
dXAsIENvbHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgQ29sdW1uczo6SXNWaXNpYmxlLCAm
aXNWaXNpYmxlLCBDb2x1bW5zOjpJbmRleCwgJmluZGV4LCAtMSk7CisgICAgaWYgKGlzR3JvdXAg
fHwgIWlzRW5hYmxlZCB8fCAhaXNWaXNpYmxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBhY3RpdmF0ZUl0ZW0oaW5kZXgpOwpAQCAtMTM4LDIwICsxMzksMjUgQEAgZ2Jvb2xlYW4gV2Vi
UG9wdXBNZW51UHJveHlHdGs6OmtleVByZXNzRXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqIHdpZGdl
dCwgR2RrRXZlbnQKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVQcm94
eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywg
aW50MzJfdCBzZWxlY3RlZEluZGV4KQorc2l6ZV90IFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVh
dGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNl
bGVjdGVkSW5kZXgpCiB7CiAgICAgQVNTRVJUKCFtX3BvcHVwKTsKIAotICAgIEdSZWZQdHI8R3Rr
VHJlZVN0b3JlPiBtb2RlbCA9IGFkb3B0R1JlZihndGtfdHJlZV9zdG9yZV9uZXcoQ29sdW1uczo6
Q291bnQsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9CT09MRUFOLCBHX1RZ
UEVfQk9PTEVBTiwgR19UWVBFX0JPT0xFQU4sIEdfVFlQRV9VSU5UKSk7CisgICAgR1JlZlB0cjxH
dGtUcmVlU3RvcmU+IG1vZGVsID0gYWRvcHRHUmVmKGd0a190cmVlX3N0b3JlX25ldyhDb2x1bW5z
OjpDb3VudCwgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORywgR19UWVBFX0JPT0xFQU4sIEdf
VFlQRV9CT09MRUFOLCBHX1RZUEVfQk9PTEVBTiwgR19UWVBFX0JPT0xFQU4sIEdfVFlQRV9VSU5U
KSk7CiAgICAgR3RrVHJlZUl0ZXIgcGFyZW50SXRlcjsKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7
CisgICAgc2l6ZV90IHZpc2libGVJdGVtQ291bnQgPSAwOwogICAgIG1fcGF0aHMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShpdGVtcy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6
IGl0ZW1zKSB7CisgICAgICAgIGNvbnN0IGdib29sZWFuIGlzVmlzaWJsZSA9ICFpdGVtLm1faXRl
bVN0eWxlLmlzRGlzcGxheU5vbmUoKTsKKyAgICAgICAgaWYgKGlzVmlzaWJsZSkKKyAgICAgICAg
ICAgIHZpc2libGVJdGVtQ291bnQrKzsKICAgICAgICAgaWYgKGl0ZW0ubV9pc0xhYmVsKSB7CiAg
ICAgICAgICAgICBndGtfdHJlZV9zdG9yZV9pbnNlcnRfd2l0aF92YWx1ZXMobW9kZWwuZ2V0KCks
ICZwYXJlbnRJdGVyLCBudWxscHRyLCAtMSwKICAgICAgICAgICAgICAgICBDb2x1bW5zOjpMYWJl
bCwgaXRlbS5tX3RleHQuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpLmRhdGEoKSwKICAgICAgICAg
ICAgICAgICBDb2x1bW5zOjpJc0dyb3VwLCBUUlVFLAogICAgICAgICAgICAgICAgIENvbHVtbnM6
OklzRW5hYmxlZCwgVFJVRSwKKyAgICAgICAgICAgICAgICBDb2x1bW5zOjpJc1Zpc2libGUsIGlz
VmlzaWJsZSwKICAgICAgICAgICAgICAgICAtMSk7CiAgICAgICAgICAgICAvLyBXZSBuZXZlciBu
ZWVkIHRoZSBwYXRoIGZvciBncm91cCBsYWJlbHMuCiAgICAgICAgICAgICBtX3BhdGhzLnVuY2hl
Y2tlZEFwcGVuZChudWxscHRyKTsKQEAgLTE2NCw2ICsxNzAsNyBAQCB2b2lkIFdlYlBvcHVwTWVu
dVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0
ZW1zLCBpbgogICAgICAgICAgICAgICAgIENvbHVtbnM6OklzR3JvdXAsIEZBTFNFLAogICAgICAg
ICAgICAgICAgIENvbHVtbnM6OklzU2VsZWN0ZWQsIGlzU2VsZWN0ZWQsCiAgICAgICAgICAgICAg
ICAgQ29sdW1uczo6SXNFbmFibGVkLCBpdGVtLm1faXNFbmFibGVkLAorICAgICAgICAgICAgICAg
IENvbHVtbnM6OklzVmlzaWJsZSwgaXNWaXNpYmxlLAogICAgICAgICAgICAgICAgIENvbHVtbnM6
OkluZGV4LCBpbmRleCwKICAgICAgICAgICAgICAgICAtMSk7CiAgICAgICAgICAgICBpZiAoaXNT
ZWxlY3RlZCkgewpAQCAtMTc0LDYgKzE4MSw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6
OmNyZWF0ZVBvcHVwTWVudShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGluCiAg
ICAgICAgIH0KICAgICAgICAgaW5kZXgrKzsKICAgICB9CisgICAgQVNTRVJUKHZpc2libGVJdGVt
Q291bnQgPD0gaXRlbXMuc2l6ZSgpKTsKIAogICAgIG1fdHJlZVZpZXcgPSBndGtfdHJlZV92aWV3
X25ld193aXRoX21vZGVsKEdUS19UUkVFX01PREVMKG1vZGVsLmdldCgpKSk7CiAgICAgYXV0byog
dHJlZVZpZXcgPSBHVEtfVFJFRV9WSUVXKG1fdHJlZVZpZXcpOwpAQCAtMTg4LDEzICsxOTYsMTMg
QEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFZlY3Rv
cjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW4KICAgICBndGtfdHJlZV92aWV3X3NldF9oZWFkZXJz
X3Zpc2libGUodHJlZVZpZXcsIEZBTFNFKTsKICAgICBndGtfdHJlZV92aWV3X2luc2VydF9jb2x1
bW5fd2l0aF9kYXRhX2Z1bmModHJlZVZpZXcsIDAsIG51bGxwdHIsIGd0a19jZWxsX3JlbmRlcmVy
X3RleHRfbmV3KCksIFtdKEd0a1RyZWVWaWV3Q29sdW1uKiwgR3RrQ2VsbFJlbmRlcmVyKiByZW5k
ZXJlciwgR3RrVHJlZU1vZGVsKiBtb2RlbCwgR3RrVHJlZUl0ZXIqIGl0ZXIsIGdwb2ludGVyKSB7
CiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gbGFiZWw7Ci0gICAgICAgIGdib29sZWFuIGlz
R3JvdXAsIGlzRW5hYmxlZDsKLSAgICAgICAgZ3RrX3RyZWVfbW9kZWxfZ2V0KG1vZGVsLCBpdGVy
LCBDb2x1bW5zOjpMYWJlbCwgJmxhYmVsLm91dFB0cigpLCBDb2x1bW5zOjpJc0dyb3VwLCAmaXNH
cm91cCwgQ29sdW1uczo6SXNFbmFibGVkLCAmaXNFbmFibGVkLCAtMSk7CisgICAgICAgIGdib29s
ZWFuIGlzR3JvdXAsIGlzRW5hYmxlZCwgaXNWaXNpYmxlOworICAgICAgICBndGtfdHJlZV9tb2Rl
bF9nZXQobW9kZWwsIGl0ZXIsIENvbHVtbnM6OkxhYmVsLCAmbGFiZWwub3V0UHRyKCksIENvbHVt
bnM6OklzR3JvdXAsICZpc0dyb3VwLCBDb2x1bW5zOjpJc0VuYWJsZWQsICZpc0VuYWJsZWQsIENv
bHVtbnM6OklzVmlzaWJsZSwgJmlzVmlzaWJsZSwgLTEpOwogICAgICAgICBpZiAoaXNHcm91cCkg
ewogICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBtYXJrdXAoZ19zdHJkdXBfcHJpbnRmKCI8
Yj4lczwvYj4iLCBsYWJlbC5nZXQoKSkpOwogICAgICAgICAgICAgZ19vYmplY3Rfc2V0KHJlbmRl
cmVyLCAibWFya3VwIiwgbWFya3VwLmdldCgpLCBudWxscHRyKTsKICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBnX29iamVjdF9zZXQocmVuZGVyZXIsICJ0ZXh0IiwgbGFiZWwuZ2V0KCksICJz
ZW5zaXRpdmUiLCBpc0VuYWJsZWQsIG51bGxwdHIpOworICAgICAgICAgICAgZ19vYmplY3Rfc2V0
KHJlbmRlcmVyLCAidGV4dCIsIGxhYmVsLmdldCgpLCAic2Vuc2l0aXZlIiwgaXNFbmFibGVkLCAi
dmlzaWJsZSIsIGlzVmlzaWJsZSwgbnVsbHB0cik7CiAgICAgfSwgbnVsbHB0ciwgbnVsbHB0cik7
CiAgICAgZ3RrX3RyZWVfdmlld19leHBhbmRfYWxsKHRyZWVWaWV3KTsKIApAQCAtMjA0LDkgKzIx
Miw5IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZVBvcHVwTWVudShjb25zdCBW
ZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGluCiAgICAgZ3RrX3RyZWVfc2VsZWN0aW9uX3Nl
dF9zZWxlY3RfZnVuY3Rpb24oc2VsZWN0aW9uLCBbXShHdGtUcmVlU2VsZWN0aW9uKiwgR3RrVHJl
ZU1vZGVsKiBtb2RlbCwgR3RrVHJlZVBhdGgqIHBhdGgsIGdib29sZWFuIHNlbGVjdGVkLCBncG9p
bnRlcikgLT4gZ2Jvb2xlYW4gewogICAgICAgICBHdGtUcmVlSXRlciBpdGVyOwogICAgICAgICBn
dGtfdHJlZV9tb2RlbF9nZXRfaXRlcihtb2RlbCwgJml0ZXIsIHBhdGgpOwotICAgICAgICBnYm9v
bGVhbiBpc0dyb3VwLCBpc0VuYWJsZWQ7Ci0gICAgICAgIGd0a190cmVlX21vZGVsX2dldChtb2Rl
bCwgJml0ZXIsIENvbHVtbnM6OklzR3JvdXAsICZpc0dyb3VwLCBDb2x1bW5zOjpJc0VuYWJsZWQs
ICZpc0VuYWJsZWQsIC0xKTsKLSAgICAgICAgcmV0dXJuICFpc0dyb3VwICYmIGlzRW5hYmxlZDsK
KyAgICAgICAgZ2Jvb2xlYW4gaXNHcm91cCwgaXNFbmFibGVkLCBpc1Zpc2libGU7CisgICAgICAg
IGd0a190cmVlX21vZGVsX2dldChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OklzR3JvdXAsICZpc0dy
b3VwLCBDb2x1bW5zOjpJc0VuYWJsZWQsICZpc0VuYWJsZWQsIENvbHVtbnM6OklzVmlzaWJsZSwg
JmlzVmlzaWJsZSwgLTEpOworICAgICAgICByZXR1cm4gIWlzR3JvdXAgJiYgaXNFbmFibGVkICYm
IGlzVmlzaWJsZTsKICAgICB9LCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIGF1dG8qIHN3aW5k
b3cgPSBndGtfc2Nyb2xsZWRfd2luZG93X25ldyhudWxscHRyLCBudWxscHRyKTsKQEAgLTIyMiw2
ICsyMzAsOCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29u
c3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbgogICAgIGd0a193aW5kb3dfc2V0X3Jl
c2l6YWJsZShHVEtfV0lORE9XKG1fcG9wdXApLCBGQUxTRSk7CiAgICAgZ3RrX2NvbnRhaW5lcl9h
ZGQoR1RLX0NPTlRBSU5FUihtX3BvcHVwKSwgc3dpbmRvdyk7CiAgICAgZ3RrX3dpZGdldF9zaG93
KHN3aW5kb3cpOworCisgICAgcmV0dXJuIHZpc2libGVJdGVtQ291bnQ7CiB9CiAKIHZvaWQgV2Vi
UG9wdXBNZW51UHJveHlHdGs6OnNob3coKQpAQCAtMjM4LDcgKzI0OCw3IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlHdGs6OnNob3coKQogCiB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpzaG93
UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24sIGRvdWJsZSAvKiBw
YWdlU2NhbGVGYWN0b3IgKi8sIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29u
c3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KQogewotICAg
IGNyZWF0ZVBvcHVwTWVudShpdGVtcywgc2VsZWN0ZWRJbmRleCk7CisgICAgY29uc3QgYXV0byB2
aXNpYmxlSXRlbUNvdW50ID0gY3JlYXRlUG9wdXBNZW51KGl0ZW1zLCBzZWxlY3RlZEluZGV4KTsK
ICAgICBBU1NFUlQobV9wb3B1cCk7CiAKICAgICBHdGtSZXF1aXNpdGlvbiB0cmVlVmlld1JlcXVp
c2l0aW9uOwpAQCAtMjU3LDcgKzI2Nyw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNo
b3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiwgZG91CiAgICAg
R2RrUmVjdGFuZ2xlIGFyZWE7CiAgICAgZ2RrX21vbml0b3JfZ2V0X3dvcmthcmVhKG1vbml0b3Is
ICZhcmVhKTsKICAgICBpbnQgd2lkdGggPSBzdGQ6Om1pbihyZWN0LndpZHRoKCksIGFyZWEud2lk
dGgpOwotICAgIHNpemVfdCBpdGVtQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KGl0ZW1zLnNpemUo
KSwgKGFyZWEuaGVpZ2h0IC8gMykgLyBpdGVtSGVpZ2h0KTsKKyAgICBzaXplX3QgaXRlbUNvdW50
ID0gc3RkOjptaW48c2l6ZV90Pih2aXNpYmxlSXRlbUNvdW50LCAoYXJlYS5oZWlnaHQgLyAzKSAv
IGl0ZW1IZWlnaHQpOwogCiAgICAgYXV0byogc3dpbmRvdyA9IEdUS19TQ1JPTExFRF9XSU5ET1co
Z3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihtX3BvcHVwKSkpOwogICAgIC8vIERpc2FibGUgc2Ny
b2xsYmFycyB3aGVuIHRoZXJlJ3Mgb25seSBvbmUgaXRlbSB0byBlbnN1cmUgdGhlIHNjcm9sbGVk
IHdpbmRvdyBkb2Vzbid0IHRha2UgdGhlbSBpbnRvIGFjY291bnQgd2hlbiBjYWxjdWxhdGluZyBp
dHMgbWluaW11bSBzaXplLgpAQCAtMjY2LDcgKzI3Niw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiwg
ZG91CiAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5zX2F1dG9zaXplKEdUS19UUkVFX1ZJRVcobV90
cmVlVmlldykpOwogICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X21pbl9jb250ZW50X3dpZHRo
KHN3aW5kb3csIHdpZHRoKTsKICAgICBndGtfd2lkZ2V0X3NldF9zaXplX3JlcXVlc3QobV9wb3B1
cCwgd2lkdGgsIC0xKTsKLSAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9taW5fY29udGVudF9o
ZWlnaHQoc3dpbmRvdywgaXRlbUNvdW50ICogaXRlbUhlaWdodCk7CisgICAgZ3RrX3Njcm9sbGVk
X3dpbmRvd19zZXRfbWluX2NvbnRlbnRfaGVpZ2h0KHN3aW5kb3csIHZpc2libGVJdGVtQ291bnQg
KiBpdGVtSGVpZ2h0KTsKIAogICAgIEd0a1JlcXVpc2l0aW9uIG1lbnVSZXF1aXNpdGlvbjsKICAg
ICBndGtfd2lkZ2V0X2dldF9wcmVmZXJyZWRfc2l6ZShtX3BvcHVwLCAmbWVudVJlcXVpc2l0aW9u
LCBudWxscHRyKTsKQEAgLTQwMyw5ICs0MTMsOSBAQCBPcHRpb25hbDx1bnNpZ25lZD4gV2ViUG9w
dXBNZW51UHJveHlHdGs6OnR5cGVBaGVhZEZpbmRJbmRleChHZGtFdmVudEtleSogZXZlbnQpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IGxhYmVs
OwotICAgICAgICBnYm9vbGVhbiBpc0VuYWJsZWQ7Ci0gICAgICAgIGd0a190cmVlX21vZGVsX2dl
dChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OkxhYmVsLCAmbGFiZWwub3V0UHRyKCksIENvbHVtbnM6
OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgLTEpOwotICAgICAgICBpZiAoIWlzRW5hYmxlZCkKKyAg
ICAgICAgZ2Jvb2xlYW4gaXNFbmFibGVkLCBpc1Zpc2libGU7CisgICAgICAgIGd0a190cmVlX21v
ZGVsX2dldChtb2RlbCwgJml0ZXIsIENvbHVtbnM6OkxhYmVsLCAmbGFiZWwub3V0UHRyKCksIENv
bHVtbnM6OklzRW5hYmxlZCwgJmlzRW5hYmxlZCwgQ29sdW1uczo6SXNWaXNpYmxlLCAmaXNWaXNp
YmxlLCAtMSk7CisgICAgICAgIGlmICghaXNFbmFibGVkIHx8ICFpc1Zpc2libGUpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IG5vcm1hbGl6ZWRUZXh0
KGdfdXRmOF9ub3JtYWxpemUobGFiZWwuZ2V0KCksIC0xLCBHX05PUk1BTElaRV9BTEwpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0
ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgK
aW5kZXggODdkMGI2ZjZkYzAxYmNjODQ2OGZmM2M3MGUzNjdjMWQ3YjlhNjk0MC4uNmViNDczOTEy
M2VlNjQ2Nzk3NDBkN2FiZjQwOTM0Y2RlODI5YTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHJvdGVjdGVkOgogICAgIEd0a1dpZGdldCogbV93ZWJWaWV3IHsgbnVsbHB0ciB9OwogCiBwcml2
YXRlOgotICAgIHZvaWQgY3JlYXRlUG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+
JiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKKyAgICBzaXplX3QgY3JlYXRlUG9wdXBNZW51KGNv
bnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKICAgICB2
b2lkIHNob3coKTsKICAgICBib29sIGFjdGl2YXRlSXRlbUF0UGF0aChHdGtUcmVlUGF0aCopOwog
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiB0eXBlQWhlYWRGaW5kSW5kZXgoR2RrRXZlbnRLZXkqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbQppbmRleCBlMDkxMWI4YThhNTRmZWFmYjUyOGM0NDI5M2UyZDJjNGUyOTM5ODNiLi41YzA3
NWIzMjMyN2RiMTZiYzFkMTMzNWRjNWI4ZWY0MDFjN2FkZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC03MiwxNCAr
NzIsMTQgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3QgVmVjdG9y
PFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBOU0ZvbnQgKmYKICAgICAgICAgICAgIE5TTWVudUl0ZW0g
Km1lbnVJdGVtID0gW21fcG9wdXAgbGFzdEl0ZW1dOwogCiAgICAgICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFy
YWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFncmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwotICAgICAg
ICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24gPSBpdGVtc1tpXS5tX3Rl
eHREaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6TFRSID8gTlNXcml0aW5nRGlyZWN0aW9uTGVm
dFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKKyAgICAgICAgICAgIE5T
V3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV9pdGVtU3R5bGUu
dGV4dERpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OkxUUiA/IE5TV3JpdGluZ0RpcmVjdGlv
bkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAg
ICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlv
bl07CiAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGly
ZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUiA/IE5TVGV4dEFsaWdubWVudExlZnQgOiBOU1Rl
eHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlv
bmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLmdl
dCgpLCBOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgICAgICBmb250
LCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAgbmlsXSk7Ci0gICAgICAgICAgICBp
ZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKKyAgICAgICAgICAgIGlm
IChpdGVtc1tpXS5tX2l0ZW1TdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSkgewogICAg
ICAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0g
YWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlv
biArIE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAgICAgICAgICAgUmV0YWlu
UHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFs
bG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsK
ICAgICAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFy
cmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1l
bnUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVw
TWVudS5jcHAKaW5kZXggYjk5OWY1ODQzY2E4ZjNlMDc2YTkxM2Y2YzZhZmE4YzQ3NmJhZmNjYS4u
NmQ0ZmJiOGIxNTI1NTZhODE1MmNmOGZmYjdiYzI4MWIyNWYyNTgxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5j
cHAKQEAgLTg2LDcgKzg2LDcgQEAgVmVjdG9yPFdlYlBvcHVwSXRlbT4gV2ViUG9wdXBNZW51Ojpw
b3B1bGF0ZUl0ZW1zKCkKICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5
bGluZyB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMuCiAgICAgICAgICAgICAv
LyBGSVhNRTogRmluZCBhIHdheSB0byBjdXN0b21pemUgdGV4dCBjb2xvciB3aGVuIGFuIGl0ZW0g
aXMgaGlnaGxpZ2h0ZWQuCiAgICAgICAgICAgICBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUgPSBt
X3BvcHVwQ2xpZW50LT5pdGVtU3R5bGUoaSk7Ci0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2Vi
UG9wdXBJdGVtKFdlYlBvcHVwSXRlbTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRlbVRleHQoaSks
IGl0ZW1TdHlsZS50ZXh0RGlyZWN0aW9uKCksIGl0ZW1TdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUoKSwgbV9wb3B1cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1fcG9wdXBDbGllbnQtPml0
ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxlZChpKSwg
bV9wb3B1cENsaWVudC0+aXRlbUlzTGFiZWwoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlbGVj
dGVkKGkpKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVtKFdlYlBvcHVw
SXRlbTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRlbVRleHQoaSksIGl0ZW1TdHlsZSwgbV9wb3B1
cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1BY2Nlc3NpYmlsaXR5
VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxlZChpKSwgbV9wb3B1cENsaWVudC0+
aXRlbUlzTGFiZWwoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlbGVjdGVkKGkpKSk7CiAgICAg
ICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382456</attachid>
            <date>2019-10-31 07:24:00 -0700</date>
            <delta_ts>2020-01-13 00:57:36 -0800</delta_ts>
            <desc>WIP Patch v3</desc>
            <filename>bug-81882-20191031162358.patch</filename>
            <type>text/plain</type>
            <size>28753</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQzMmFlYmRjMzVjMjI4
ODVhYWVhNzAzZTRhMzVlYzQ4ZjViNDAxNS4uMjQxOWNmMDIwNjBjYWI2YjUwYzVlMDhmZmMxNjkx
N2MzMWJiM2UxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTEwLTMxICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
ZGlzcGxheTpub25lIGhhcyBubyBlZmZlY3Qgb24gPG9wdGlvbj4gZWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHRoZSBzdHlsZSBpbmZv
cm1hdGlvbiAoUG9wdXBNZW51U3R5bGUpIG9mIGEgV2ViUG9wdXBJdGVtIG92ZXIgSVBDIHRvIG1h
a2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBVSVByb2Nlc3MsIHdoaWNoIHRoZW4gY2Fu
IHVzZSBpdCB0byBkZXRlcm1pbmUgaG93IHRvIGRpc3BsYXkgcG9wdXAgaXRlbXMuIFRoZW4sIG1h
a2UKKyAgICAgICAgdGhlIEdUSyBpbXBsZW1lbnRhdGlvbiBvZiBwb3B1cCBtZW51cyB0YWtlIGlu
dG8gYWNjb3VudCBQb3B1cE1lbnVTdHlsZTo6aXNEaXNwbGF5Tm9uZSgpIHRvCisgICAgICAgIGRl
Y2lkZSB3aGV0aGVyIGl0ZW1zIG1heSBiZSBoaWRkZW4gYW5kIHNraXAgZGlzcGxheWluZyB0aGVt
LiBGb3Igbm93IG9ubHkgdmlzaWJpbGl0eSBpcworICAgICAgICBoYW5kbGVkIGluIHRoZSBHVEsg
cG9ydCwgYnV0IHRoaXMgbGF5cyBhIGZvdW5kYXRpb24gd2hpY2ggYWxsb3dzIGZvciBob25vcmlu
ZyBvdGhlciBwb3B1cAorICAgICAgICBpdGVtIGRpc3BsYXkgYXR0cmlidXRlcyBpbiB0aGUgZnV0
dXJlIGFzIHdlbGwuCisKKyAgICAgICAgQmFzZWQgb24gYW4gb2xkIHBhdGNoIGJ5IE9sZWcgU21p
cm5vdiAodGhhbmtzISkKKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U3R5bGUpOiBQcm92aWRlIGEgZGVmYXVsdCBjb25zdHJ1Y3RvciB3
aGljaCBjYW4gYmUKKyAgICAgICAgdXNlZCB0byBpbml0aWFsaXplIGEgUG9wdXBNZW51U3R5bGUg
aW5zdGFuY2UgdXNpbmcgZGVmYXVsdCB2YWx1ZXMgcHJpb3IgdG8gZGVjb2RpbmcgaXQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZSk6IE1hcmsgRm9udENhc2NhZGUgY29weSBjb25zdHJ1
Y3RvciB3aXRoIFdFQkNPUkVfRVhQT1JULgorCiAyMDE5LTEwLTMxICBNaWd1ZWwgR29tZXogIDxt
YWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0Nvb3JkR3JhcGhpY3NdIEF2b2lkIHBhaW50
aW5nIGJhY2tpbmcgc3RvcmVzIGZvciB6ZXJvLW9wYWNpdHkgbGF5ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMx
ZDcwY2Q1ZDIyMWM2N2VlYmExOGUxOGY0MDJkYzMyYjVlZTk2NWQuLmUyOWZhOWZjMGQyMGI5ODAz
MTYxZmM0MjY5OWJkMzlhZWZmZWYyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTkt
MTAtMzEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbR1RLXSBkaXNwbGF5Om5vbmUgaGFzIG5vIGVmZmVjdCBvbiA8b3B0aW9uPiBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTg4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhl
IHN0eWxlIGluZm9ybWF0aW9uIChQb3B1cE1lbnVTdHlsZSkgb2YgYSBXZWJQb3B1cEl0ZW0gb3Zl
ciBJUEMgdG8gbWFrZSBpdCBhdmFpbGFibGUKKyAgICAgICAgaW4gdGhlIFVJUHJvY2Vzcywgd2hp
Y2ggdGhlbiBjYW4gdXNlIGl0IHRvIGRldGVybWluZSBob3cgdG8gZGlzcGxheSBwb3B1cCBpdGVt
cy4gVGhlbiwgbWFrZQorICAgICAgICB0aGUgR1RLIGltcGxlbWVudGF0aW9uIG9mIHBvcHVwIG1l
bnVzIHRha2UgaW50byBhY2NvdW50IFBvcHVwTWVudVN0eWxlOjppc0Rpc3BsYXlOb25lKCkgdG8K
KyAgICAgICAgZGVjaWRlIHdoZXRoZXIgaXRlbXMgbWF5IGJlIGhpZGRlbiBhbmQgc2tpcCBkaXNw
bGF5aW5nIHRoZW0uIEZvciBub3cgb25seSB2aXNpYmlsaXR5IGlzCisgICAgICAgIGhhbmRsZWQg
aW4gdGhlIEdUSyBwb3J0LCBidXQgdGhpcyBsYXlzIGEgZm91bmRhdGlvbiB3aGljaCBhbGxvd3Mg
Zm9yIGhvbm9yaW5nIG90aGVyIHBvcHVwCisgICAgICAgIGl0ZW0gZGlzcGxheSBhdHRyaWJ1dGVz
IGluIHRoZSBmdXR1cmUgYXMgd2VsbC4KKworICAgICAgICBCYXNlZCBvbiBhbiBvbGQgcGF0Y2gg
YnkgT2xlZyBTbWlybm92ICh0aGFua3MhKQorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5
bGU+OjplbmNvZGUpOiBBZGRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQb3B1cE1l
bnVTdHlsZT46OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaDogQWRkZWQgZGVjbGFyYXRpb24gZm9yIFBvcHVwTWVudVN0eWxlIGNvZGVycy4K
KyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0pOiBaYXAgaW5pdGlhbGl6YXRpb24gb2YgcmVtb3ZlZCBt
ZW1iZXJzCisgICAgICAgIG1fdGV4dERpcmVjdGlvbiBhbmQgbV9oYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGU7IGFuZCBtYWtlIHRoZSBjb21wbGV0ZSBjb25zdHJ1Y3RvcgorICAgICAgICByZWNlaXZl
IGEgUG9wdXBNZW51U3R5bGUgcGFyYW1ldGVyIGluc3RlYWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBvcHVwSXRlbTo6ZW5jb2RlIGNvbnN0KTogQWRhcHQgdG8gaGFuZGxlIHRoZSBhZGRlZCBQb3B1
cE1lbnVTdHlsZSBtZW1iZXIKKyAgICAgICAgYW5kIHJlbW92ZSBoYW5kbGluZyBvZiB0aGUgcmVt
b3ZlZCBtX3RleHREaXJlY3Rpb24gYW5kIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlIG1lbWJl
cnMuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwSXRlbTo6ZGVjb2RlKTogRGl0dG8uCisgICAg
ICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5oOiBBZGQgYSBQb3B1cE1lbnVTdHlsZSBtZW1iZXIs
IGFuZCByZW1vdmUgbV90ZXh0RGlyZWN0aW9uIGFuZAorICAgICAgICBtX2hhc1RleHREaXJlY3Rp
b25PdmVycmlkZSBtZW1iZXJzIHRvIGF2b2lkIGR1cGxpY2F0aW9uIGJlY2F1c2UgdGhlaXIgdmFs
dWVzIGFyZSBhbHJlYWR5CisgICAgICAgIHByb3ZpZGVkIGJ5IFBvcHVwTWVudVN0eWxlLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KTogRG8gbm90IGFk
ZCBub24tdmlzaWJsZSBtZW51IGl0ZW1zCisgICAgICAgIHRvIHRoZSBwb3B1cCB0cmVlIG1vZGVs
LCBhcnJhbmdlIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mICh2aXNpYmxlKSBpdGVtcyBhZGRlZCB0
bworICAgICAgICB0aGUgdHJlZSBtb2RlbC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51
UHJveHlHdGs6OnNob3dQb3B1cE1lbnUpOiBUYWtlIGludG8gYWNjb3VudCB0aGUgbnVtYmVyIG9m
IHZpc2liZSBpdGVtcworICAgICAgICBmb3Igd2lkZ2V0IHNpemUgY2FsY3VsYXRpb25zLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaDogQ2hhbmdlIHByb3Rv
dHlwZSBvZiBjcmVhdGVQb3B1cE1lbnUoKSB0byBtYWtlIGl0CisgICAgICAgIHJldHVybiB0aGUg
bnVtYmVyIG9mIHZpc2libGUgaXRlbXMgaW4gdGhlIG1lbnUuCisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51UHJveHlNYWM6OnBvcHVsYXRlKTogQWRhcHQgdG8gV2ViUG9wdXBJdGVtIG5vdCBjb250YWlu
aW5nIGEKKyAgICAgICAgUG9wdXBNZW51U3R5bGUgbWVtYmVyLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51Ojpwb3B1bGF0ZUl0ZW1zKTogQWRhcHQgdG8gdGhlIGNoYW5nZSBpbiB0aGUgV2Vi
UG9wdXBJdGVtIGNvbnN0cnVjdG9yLAorICAgICAgICBpbiBvcmRlciB0byBwYXNzIGEgUG9wdXBN
ZW51U3R5bGUgdG8gaXQuCisKIDIwMTktMTAtMzEgIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbQ29vcmRHcmFwaGljc10gQXZvaWQgcGFpbnRpbmcgYmFja2lu
ZyBzdG9yZXMgZm9yIHplcm8tb3BhY2l0eSBsYXllcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggM2RjOGJm
MTYzNDE0MDEyYTJiMjA2MzVkZDE2MjA4NTFkNzJmY2JiZi4uMDJhYWZhMDNiY2ViNTM5ZmI1MTVl
MGJhOWM0NDBkYzJiMGRhMzk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDQsNiArMTc0NCw3IEBA
IHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcAogcGxhdGZvcm0v
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXIuY3BwCiBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCitwbGF0Zm9y
bS9Qb3B1cE1lbnVTdHlsZS5jcHAKIHBsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0
Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5jcHAKIHBsYXRmb3JtL1JlZmVycmVyUG9saWN5LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDcyOTMwMzgxNWFlMDU3MGYxMDEzMTQ5ZDAyNjhhOWZiMjY0YzIwYzIuLjQ0NjI2MmQxMTU0
MWJhMmI4NGFjZTQ5MTAxZDYzZjEyZGJmY2M2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyOTg4LDYgKzEyOTg4LDcgQEAK
IAkJQkMzNDhCRDIwREI3RjgwNDAwNEFCQUJBIC8qIFdlYkNvcmVKU0J1aWx0aW5zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKU0J1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzQ4QkQyMERCN0Y4MDQwMDRBQkFCQiAvKiBXZWJDb3Jl
SlNCdWlsdGluSW50ZXJuYWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMzQkMyOUIwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSG9zdFdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1OEEgLyogUG9wdXBNZW51U3R5bGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9wdXBNZW51U3R5bGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9w
dXBNZW51U3R5bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51
U3R5bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQkU5OTAwRTlDMUM3QzAw
ODM1NTg4IC8qIFJlbmRlclNjcm9sbGJhci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW5kZXJTY3JvbGxiYXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzNCRTk5MTBFOUMxQzdDMDA4MzU1ODggLyogUmVuZGVyU2Nyb2xsYmFyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNjcm9sbGJhci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9w
dXBNZW51U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE2YjlmNzJhY2IxYWQ4M2FkNDI5ZDNhMDc5YTczMjBlNjVhMmQ0OGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHls
ZS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudVN0eWxlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisKK1BvcHVwTWVudVN0
eWxlOjpQb3B1cE1lbnVTdHlsZShjb25zdCBDb2xvciYgZm9yZWdyb3VuZCwgY29uc3QgQ29sb3Im
IGJhY2tncm91bmQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBib29sIHZpc2libGUsIGJvb2wg
aXNEaXNwbGF5Tm9uZSwgYm9vbCBoYXNEZWZhdWx0QXBwZWFyYW5jZSwgTGVuZ3RoIHRleHRJbmRl
bnQsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUsIEJhY2tncm91bmRDb2xvclR5cGUgYmFja2dyb3VuZENvbG9yVHlwZSwgUG9wdXBNZW51
VHlwZSBtZW51VHlwZSwgUG9wdXBNZW51U2l6ZSBtZW51U2l6ZSkKKyAgICA6IG1fZm9yZWdyb3Vu
ZENvbG9yKGZvcmVncm91bmQpCisgICAgLCBtX2JhY2tncm91bmRDb2xvcihiYWNrZ3JvdW5kKQor
ICAgICwgbV9mb250KGZvbnQpCisgICAgLCBtX3Zpc2libGUodmlzaWJsZSkKKyAgICAsIG1faXNE
aXNwbGF5Tm9uZShpc0Rpc3BsYXlOb25lKQorICAgICwgbV9oYXNEZWZhdWx0QXBwZWFyYW5jZSho
YXNEZWZhdWx0QXBwZWFyYW5jZSkKKyAgICAsIG1fdGV4dEluZGVudCh0ZXh0SW5kZW50KQorICAg
ICwgbV90ZXh0RGlyZWN0aW9uKHRleHREaXJlY3Rpb24pCisgICAgLCBtX2hhc1RleHREaXJlY3Rp
b25PdmVycmlkZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpCisgICAgLCBtX2JhY2tncm91bmRD
b2xvclR5cGUoYmFja2dyb3VuZENvbG9yVHlwZSkKKyAgICAsIG1fbWVudVR5cGUobWVudVR5cGUp
CisgICAgLCBtX21lbnVTaXplKG1lbnVTaXplKQoreworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BvcHVwTWVudVN0eWxlLmgKaW5kZXggMzdjZWU2MzJhYmFjMTZiN2MxZjg4N2U5ZGYxMTVjNmM1
NGE2ZTY3Zi4uMTE0NjkwODVhMmVhNzUwOTQ1MjEyZDZlYjc0YzgwZWIxNjFiYzAxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCkBAIC0yMywxMiArMjMsMTIgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgUG9wdXBNZW51U3R5bGVfaAotI2RlZmlu
ZSBQb3B1cE1lbnVTdHlsZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbG9yLmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJMZW5ndGguaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDIy
ICs0MiwxOCBAQCBwdWJsaWM6CiAgICAgICAgIFBvcHVwTWVudVNpemVNaW5pCiAgICAgfTsKIAot
ICAgIFBvcHVwTWVudVN0eWxlKGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kLCBjb25zdCBDb2xvciYg
YmFja2dyb3VuZCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGJvb2wgdmlzaWJsZSwgYm9vbCBp
c0Rpc3BsYXlOb25lLCBib29sIGhhc0RlZmF1bHRBcHBlYXJhbmNlLCBMZW5ndGggdGV4dEluZGVu
dCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSwgQmFja2dyb3VuZENvbG9yVHlwZSBiYWNrZ3JvdW5kQ29sb3JUeXBlID0gRGVmYXVsdEJh
Y2tncm91bmRDb2xvciwgUG9wdXBNZW51VHlwZSBtZW51VHlwZSA9IFNlbGVjdFBvcHVwLCBQb3B1
cE1lbnVTaXplIG1lbnVTaXplID0gUG9wdXBNZW51U2l6ZU5vcm1hbCkKLSAgICAgICAgOiBtX2Zv
cmVncm91bmRDb2xvcihmb3JlZ3JvdW5kKQotICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9yKGJh
Y2tncm91bmQpCi0gICAgICAgICwgbV9mb250KGZvbnQpCi0gICAgICAgICwgbV92aXNpYmxlKHZp
c2libGUpCi0gICAgICAgICwgbV9pc0Rpc3BsYXlOb25lKGlzRGlzcGxheU5vbmUpCi0gICAgICAg
ICwgbV9oYXNEZWZhdWx0QXBwZWFyYW5jZShoYXNEZWZhdWx0QXBwZWFyYW5jZSkKLSAgICAgICAg
LCBtX3RleHRJbmRlbnQodGV4dEluZGVudCkKLSAgICAgICAgLCBtX3RleHREaXJlY3Rpb24odGV4
dERpcmVjdGlvbikKLSAgICAgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShoYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpCi0gICAgICAgICwgbV9iYWNrZ3JvdW5kQ29sb3JUeXBlKGJhY2tn
cm91bmRDb2xvclR5cGUpCi0gICAgICAgICwgbV9tZW51VHlwZShtZW51VHlwZSkKLSAgICAgICAg
LCBtX21lbnVTaXplKG1lbnVTaXplKQorICAgIFBvcHVwTWVudVN0eWxlKCkKKyAgICAgICAgOiBt
X3Zpc2libGUoZmFsc2UpCisgICAgICAgICwgbV9pc0Rpc3BsYXlOb25lKGZhbHNlKQorICAgICAg
ICAsIG1fdGV4dERpcmVjdGlvbihUZXh0RGlyZWN0aW9uOjpMVFIpCisgICAgICAgICwgbV9oYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUoZmFsc2UpCisgICAgICAgICwgbV9iYWNrZ3JvdW5kQ29sb3JU
eXBlKERlZmF1bHRCYWNrZ3JvdW5kQ29sb3IpCisgICAgICAgICwgbV9tZW51VHlwZShTZWxlY3RQ
b3B1cCkKICAgICB7CiAgICAgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgUG9wdXBNZW51U3R5bGUo
Y29uc3QgQ29sb3ImIGZvcmVncm91bmQsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kLCBjb25zdCBG
b250Q2FzY2FkZSYsIGJvb2wgdmlzaWJsZSwgYm9vbCBpc0Rpc3BsYXlOb25lLCBib29sIGhhc0Rl
ZmF1bHRBcHBlYXJhbmNlLCBMZW5ndGggdGV4dEluZGVudCwgVGV4dERpcmVjdGlvbiwgYm9vbCBo
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIEJhY2tncm91bmRDb2xvclR5cGUgPSBEZWZhdWx0QmFj
a2dyb3VuZENvbG9yLCBQb3B1cE1lbnVUeXBlID0gU2VsZWN0UG9wdXAsIFBvcHVwTWVudVNpemUg
PSBQb3B1cE1lbnVTaXplTm9ybWFsKTsKKwogICAgIGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kQ29s
b3IoKSBjb25zdCB7IHJldHVybiBtX2ZvcmVncm91bmRDb2xvcjsgfQogICAgIGNvbnN0IENvbG9y
JiBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmRDb2xvcjsgfQog
ICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CkBA
IC04Nyw1ICs4MywzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBQb3B1cE1lbnVTdHlsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaAppbmRleCAyYmNkZjEwNmU2YzRkNmIzYzk0Nzc1ZDJkZDhl
ZTk0NjhmOTVmNmNkLi45NDZiZDBlNGVlZDFjZmI5NTg4NzlhMDZmYzZhNjg4YzAwNDI3ZDM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKQEAg
LTkzLDcgKzkzLDcgQEAgcHVibGljOgogICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaXMgb25seSB1
c2VkIGlmIHRoZSBwbGF0Zm9ybSB3YW50cyB0byBzdGFydCB3aXRoIGEgbmF0aXZlIGZvbnQuCiAg
ICAgV0VCQ09SRV9FWFBPUlQgRm9udENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIEZv
bnRTbW9vdGhpbmdNb2RlID0gRm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmcpOwogCi0g
ICAgRm9udENhc2NhZGUoY29uc3QgRm9udENhc2NhZGUmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBG
b250Q2FzY2FkZShjb25zdCBGb250Q2FzY2FkZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRD
YXNjYWRlJiBvcGVyYXRvcj0oY29uc3QgRm9udENhc2NhZGUmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250Q2FzY2FkZSYgb3RoZXIpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5o
CmluZGV4IDY1ZTQ3MWY4NjZlOTAxNmVjODMwNTJlNzNjZDRmY2MxNTdjNjhiMWIuLjllMjhkMzFk
MjE5NDdmZGEzZWNkYThhZWU0Y2RmMzEzNGUwM2M1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTY4LDYgKzY4LDEw
IEBAIGludGVyZmFjZSBJRFdyaXRlRm9udEZhY2U7CiAjaW5jbHVkZSA8ZHdyaXRlXzMuaD4KICNl
bmRpZgogCisjaWYgVVNFKEZSRUVUWVBFKSB8fCAoUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0FJUk8p
KQordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2ZvbnRfZmFjZSBjYWlyb19mb250X2ZhY2VfdDsKKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDNl
ZTM4ZDk2NTgyMDE5YjhmMzdiZWUzMzIyMDUwMzZlMWU0MjAwMjUuLmIyODFjNTZjNjY0OWFmNTMz
ZTQwNjQ3MTU4YWZhOTFmZGE0MmIxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUGFzdGVib2FyZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGF0aC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGx1Z2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51U3R5bGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Byb21pc2VkQXR0YWNobWVudEluZm8uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVjdEVkZ2VzLmg+
CkBAIC0xMDA2LDYgKzEwMDcsNzMgQEAgYm9vbCBBcmd1bWVudENvZGVyPEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEF1dGhlbnRpY2EKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFBvcHVwTWVudVN0eWxlPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBvcHVwTWVudVN0eWxlJiBwb3B1cE1lbnVTdHlsZSkK
K3sKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmZvcmVncm91bmRDb2xvcigpOworICAg
IGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuYmFja2dyb3VuZENvbG9yKCk7CisgICAgLy8gVE9E
TzogRW5jb2RlIEZvbnRDYXNjYWRlIG1lbWJlci4KKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0
eWxlLmlzVmlzaWJsZSgpOworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuaXNEaXNwbGF5
Tm9uZSgpOworICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuaGFzRGVmYXVsdEFwcGVhcmFu
Y2UoKTsKKyAgICBlbmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLnRleHRJbmRlbnQoKTsKKyAgICBl
bmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUudGV4dERpcmVjdGlvbigpKTsKKyAgICBl
bmNvZGVyIDw8IHBvcHVwTWVudVN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpOworICAg
IGVuY29kZXIuZW5jb2RlRW51bShwb3B1cE1lbnVTdHlsZS5iYWNrZ3JvdW5kQ29sb3JUeXBlKCkp
OworICAgIGVuY29kZXIuZW5jb2RlRW51bShwb3B1cE1lbnVTdHlsZS5tZW51VHlwZSgpKTsKKyAg
ICBlbmNvZGVyLmVuY29kZUVudW0ocG9wdXBNZW51U3R5bGUubWVudVNpemUoKSk7Cit9CisKK2Jv
b2wgQXJndW1lbnRDb2RlcjxQb3B1cE1lbnVTdHlsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBQb3B1cE1lbnVTdHlsZSYgcG9wdXBNZW51U3R5bGUpCit7CisgICAgQ29sb3IgZm9yZWdyb3Vu
ZENvbG9yOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZm9yZWdyb3VuZENvbG9yKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoYmFja2dyb3VuZENvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgLy8gVE9ETzogRGVjb2RlIEZvbnRDYXNjYWRlIG1lbWJlci4KKworICAgIGJvb2wgdmlz
aWJsZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZpc2libGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBib29sIGlzRGlzcGxheU5vbmU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShpc0Rpc3BsYXlOb25lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBoYXNE
ZWZhdWx0QXBwZWFyYW5jZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0RlZmF1bHRBcHBl
YXJhbmNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTGVuZ3RoIHRleHRJbmRlbnQ7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0ZXh0SW5kZW50KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVFbnVtKHRleHREaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFBvcHVwTWVudVN0eWxlOjpCYWNrZ3JvdW5kQ29sb3JUeXBlIGJhY2tncm91bmRDb2xvclR5cGU7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oYmFja2dyb3VuZENvbG9yVHlwZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVUeXBlIG1l
bnVUeXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKG1lbnVUeXBlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgbWVudVNp
emU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0obWVudVNpemUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBwb3B1cE1lbnVTdHlsZSA9IFBvcHVwTWVudVN0eWxlKGZvcmVncm91
bmRDb2xvciwgYmFja2dyb3VuZENvbG9yLCBGb250Q2FzY2FkZSgpLCB2aXNpYmxlLCBpc0Rpc3Bs
YXlOb25lLCBoYXNEZWZhdWx0QXBwZWFyYW5jZSwgdGV4dEluZGVudCwgdGV4dERpcmVjdGlvbiwg
aGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBiYWNrZ3JvdW5kQ29sb3JUeXBlLCBtZW51VHlwZSwg
bWVudVNpemUpOworICAgIHJldHVybiB0cnVlOworfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UHJv
dGVjdGlvblNwYWNlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFByb3RlY3Rpb25T
cGFjZSYgc3BhY2UpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCmluZGV4IGU4OWVmYWNhNGZlNjJiODQ5MTZjZDkyMzhlY2E3NzkyODhhZWM2ZmMuLjc4
NmQ1MjFhOWVlYjc0NmE0MDI2NzY4YmViNjE1MTY4Yzg2ZjE0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC05MSw2ICs5MSw3IEBAIGNsYXNz
IExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xhc3MgTm90aWZpY2F0aW9uOwogY2xhc3MgUGFzdGVi
b2FyZEN1c3RvbURhdGE7CiBjbGFzcyBQYXRoOworY2xhc3MgUG9wdXBNZW51U3R5bGU7CiBjbGFz
cyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZWdpb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwpA
QCAtMzY0LDYgKzM2NSwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogfTsKIAordGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZT4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5
bGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBvcHVwTWVu
dVN0eWxlJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwCmluZGV4IDg2MGY1YjBjZjYxNDk0N2FmM2U0NGY3Y2M5YjQzMTgyYWMwMTky
MjcuLmQ5MTNlOWIzNzAxODU0YjY0ZTkwZjMwMDVkYjExNWY3NTQ0NzdiY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcApAQCAtMjgsMTMgKzI4LDEyIEBACiAjaW5jbHVkZSAi
V2ViUG9wdXBJdGVtLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViUG9w
dXBJdGVtOjpXZWJQb3B1cEl0ZW0oKQogICAgIDogbV90eXBlKEl0ZW0pCi0gICAgLCBtX3RleHRE
aXJlY3Rpb24oV2ViQ29yZTo6VGV4dERpcmVjdGlvbjo6TFRSKQotICAgICwgbV9oYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGUoZmFsc2UpCiAgICAgLCBtX2lzRW5hYmxlZCh0cnVlKQogICAgICwgbV9p
c1NlbGVjdGVkKGZhbHNlKQogewpAQCAtNDIsMTkgKzQxLDE2IEBAIFdlYlBvcHVwSXRlbTo6V2Vi
UG9wdXBJdGVtKCkKIAogV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlKQogICAg
IDogbV90eXBlKHR5cGUpCi0gICAgLCBtX3RleHREaXJlY3Rpb24oV2ViQ29yZTo6VGV4dERpcmVj
dGlvbjo6TFRSKQotICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoZmFsc2UpCiAgICAg
LCBtX2lzRW5hYmxlZCh0cnVlKQogICAgICwgbV9pc0xhYmVsKGZhbHNlKQogICAgICwgbV9pc1Nl
bGVjdGVkKGZhbHNlKQogewogfQogCi1XZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbShUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0
aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgY29uc3QgU3RyaW5nJiB0b29sVGlw
LCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9vbCBp
c0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpCitXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbShUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUm
IGl0ZW1TdHlsZSwgY29uc3QgU3RyaW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2li
aWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQp
CiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fdGV4dCh0ZXh0KQotICAgICwgbV90ZXh0RGly
ZWN0aW9uKHRleHREaXJlY3Rpb24pCi0gICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSho
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpCisgICAgLCBtX2l0ZW1TdHlsZShpdGVtU3R5bGUpCiAg
ICAgLCBtX3Rvb2xUaXAodG9vbFRpcCkKICAgICAsIG1fYWNjZXNzaWJpbGl0eVRleHQoYWNjZXNz
aWJpbGl0eVRleHQpCiAgICAgLCBtX2lzRW5hYmxlZChpc0VuYWJsZWQpCkBAIC02Nyw4ICs2Myw3
IEBAIHZvaWQgV2ViUG9wdXBJdGVtOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOwogICAgIGVuY29kZXIgPDwgbV90
ZXh0OwotICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3RleHREaXJlY3Rpb24pOwotICAgIGVuY29k
ZXIgPDwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CisgICAgZW5jb2RlciA8PCBtX2l0ZW1T
dHlsZTsKICAgICBlbmNvZGVyIDw8IG1fdG9vbFRpcDsKICAgICBlbmNvZGVyIDw8IG1fYWNjZXNz
aWJpbGl0eVRleHQ7CiAgICAgZW5jb2RlciA8PCBtX2lzRW5hYmxlZDsKQEAgLTg2LDEyICs4MSw4
IEBAIE9wdGlvbmFsPFdlYlBvcHVwSXRlbT4gV2ViUG9wdXBJdGVtOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dCkpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0gICAgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiB0ZXh0
RGlyZWN0aW9uOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHRleHREaXJlY3Rpb24pKQot
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgYm9vbCBoYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUpKQorICAgIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGl0ZW1TdHlsZSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAK
ICAgICBTdHJpbmcgdG9vbFRpcDsKQEAgLTExNCw3ICsxMDUsNyBAQCBPcHRpb25hbDxXZWJQb3B1
cEl0ZW0+IFdlYlBvcHVwSXRlbTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGlzU2VsZWN0ZWQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgcmV0dXJuIHt7IHR5cGUsIHRleHQsIHRleHREaXJlY3Rpb24sIGhhc1RleHRE
aXJlY3Rpb25PdmVycmlkZSwgdG9vbFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwg
aXNMYWJlbCwgaXNTZWxlY3RlZCB9fTsKKyAgICByZXR1cm4ge3sgdHlwZSwgdGV4dCwgaXRlbVN0
eWxlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwgaXNFbmFibGVkLCBpc0xhYmVsLCBpc1Nl
bGVjdGVkIH19OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UG9wdXBJdGVtLmgKaW5kZXggZmVkMmZlNDg4MDllZTM1OTllNDkyN2I2YmY4NmQ1NjU3OTRhNjI3
Mi4uM2I4MTNjNDMxOTFmYTJmMGZmYzYwNjYwODc4NGUzMzRmN2FiYjJlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUG9wdXBJdGVtLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVN0eWxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
cml0aW5nTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Mywx
NSArNDQsMTQgQEAgc3RydWN0IFdlYlBvcHVwSXRlbSB7CiAKICAgICBXZWJQb3B1cEl0ZW0oKTsK
ICAgICBXZWJQb3B1cEl0ZW0oVHlwZSk7Ci0gICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmls
aXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVkKTsK
KyAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZSYsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBh
Y2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1Nl
bGVjdGVkKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0
YXRpYyBPcHRpb25hbDxXZWJQb3B1cEl0ZW0+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAg
IFR5cGUgbV90eXBlOwogICAgIFN0cmluZyBtX3RleHQ7Ci0gICAgV2ViQ29yZTo6VGV4dERpcmVj
dGlvbiBtX3RleHREaXJlY3Rpb247Ci0gICAgYm9vbCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlk
ZTsKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBtX2l0ZW1TdHlsZTsKICAgICBTdHJpbmcg
bV90b29sVGlwOwogICAgIFN0cmluZyBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGJvb2wgbV9p
c0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9w
dXBNZW51UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVw
TWVudVByb3h5R3RrLmNwcAppbmRleCBiNjEzOGJkMTc1NWI3MDdjYmQ0ZDFhOWVhNTEwMjIwMGQ0
YjI3YWIzLi45MTJiNWM4YmQyMDdhZGZlMWU3MGRiNjExM2E2MGE3MWY4YzdkYjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5j
cHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBnYm9vbGVhbiBXZWJQb3B1cE1lbnVQcm94eUd0azo6a2V5
UHJlc3NFdmVudENhbGxiYWNrKEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudAogICAgIHJldHVy
biBUUlVFOwogfQogCi12b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUo
Y29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgp
Cit1bnNpZ25lZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQogewogICAg
IEFTU0VSVCghbV9wb3B1cCk7CiAKQEAgLTE0Nyw2ICsxNDcsOCBAQCB2b2lkIFdlYlBvcHVwTWVu
dVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0
ZW1zLCBpbgogICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKICAgICBtX3BhdGhzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoaXRlbXMuc2l6ZSgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBp
dGVtcykgeworICAgICAgICBpZiAoaXRlbS5tX2l0ZW1TdHlsZS5pc0Rpc3BsYXlOb25lKCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGl0ZW0ubV9pc0xhYmVsKSB7CiAgICAg
ICAgICAgICBndGtfdHJlZV9zdG9yZV9pbnNlcnRfd2l0aF92YWx1ZXMobW9kZWwuZ2V0KCksICZw
YXJlbnRJdGVyLCBudWxscHRyLCAtMSwKICAgICAgICAgICAgICAgICBDb2x1bW5zOjpMYWJlbCwg
aXRlbS5tX3RleHQuc3RyaXBXaGl0ZVNwYWNlKCkudXRmOCgpLmRhdGEoKSwKQEAgLTE3NCw2ICsx
NzYsNyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVQb3B1cE1lbnUoY29uc3Qg
VmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbgogICAgICAgICB9CiAgICAgICAgIGluZGV4
Kys7CiAgICAgfQorICAgIEFTU0VSVChpbmRleCA8PSBpdGVtcy5zaXplKCkpOwogCiAgICAgbV90
cmVlVmlldyA9IGd0a190cmVlX3ZpZXdfbmV3X3dpdGhfbW9kZWwoR1RLX1RSRUVfTU9ERUwobW9k
ZWwuZ2V0KCkpKTsKICAgICBhdXRvKiB0cmVlVmlldyA9IEdUS19UUkVFX1ZJRVcobV90cmVlVmll
dyk7CkBAIC0yMjIsNiArMjI1LDggQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRl
UG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW4KICAgICBndGtf
d2luZG93X3NldF9yZXNpemFibGUoR1RLX1dJTkRPVyhtX3BvcHVwKSwgRkFMU0UpOwogICAgIGd0
a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIobV9wb3B1cCksIHN3aW5kb3cpOwogICAgIGd0
a193aWRnZXRfc2hvdyhzd2luZG93KTsKKworICAgIHJldHVybiBpbmRleDsKIH0KIAogdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eUd0azo6c2hvdygpCkBAIC0yMzgsNyArMjQzLDcgQEAgdm9pZCBXZWJQ
b3B1cE1lbnVQcm94eUd0azo6c2hvdygpCiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNo
b3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiwgZG91YmxlIC8q
IHBhZ2VTY2FsZUZhY3RvciAqLywgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBj
b25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7Ci0g
ICAgY3JlYXRlUG9wdXBNZW51KGl0ZW1zLCBzZWxlY3RlZEluZGV4KTsKKyAgICBjb25zdCBhdXRv
IG1lbnVJdGVtQ291bnQgPSBjcmVhdGVQb3B1cE1lbnUoaXRlbXMsIHNlbGVjdGVkSW5kZXgpOwog
ICAgIEFTU0VSVChtX3BvcHVwKTsKIAogICAgIEd0a1JlcXVpc2l0aW9uIHRyZWVWaWV3UmVxdWlz
aXRpb247CkBAIC0yNTcsNyArMjYyLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hv
d1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uLCBkb3UKICAgICBH
ZGtSZWN0YW5nbGUgYXJlYTsKICAgICBnZGtfbW9uaXRvcl9nZXRfd29ya2FyZWEobW9uaXRvciwg
JmFyZWEpOwogICAgIGludCB3aWR0aCA9IHN0ZDo6bWluKHJlY3Qud2lkdGgoKSwgYXJlYS53aWR0
aCk7Ci0gICAgc2l6ZV90IGl0ZW1Db3VudCA9IHN0ZDo6bWluPHNpemVfdD4oaXRlbXMuc2l6ZSgp
LCAoYXJlYS5oZWlnaHQgLyAzKSAvIGl0ZW1IZWlnaHQpOworICAgIHNpemVfdCBpdGVtQ291bnQg
PSBzdGQ6Om1pbjxzaXplX3Q+KG1lbnVJdGVtQ291bnQsIChhcmVhLmhlaWdodCAvIDMpIC8gaXRl
bUhlaWdodCk7CiAKICAgICBhdXRvKiBzd2luZG93ID0gR1RLX1NDUk9MTEVEX1dJTkRPVyhndGtf
YmluX2dldF9jaGlsZChHVEtfQklOKG1fcG9wdXApKSk7CiAgICAgLy8gRGlzYWJsZSBzY3JvbGxi
YXJzIHdoZW4gdGhlcmUncyBvbmx5IG9uZSBpdGVtIHRvIGVuc3VyZSB0aGUgc2Nyb2xsZWQgd2lu
ZG93IGRvZXNuJ3QgdGFrZSB0aGVtIGludG8gYWNjb3VudCB3aGVuIGNhbGN1bGF0aW5nIGl0cyBt
aW5pbXVtIHNpemUuCkBAIC0yNjYsNyArMjcxLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0
azo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uLCBkb3UK
ICAgICBndGtfdHJlZV92aWV3X2NvbHVtbnNfYXV0b3NpemUoR1RLX1RSRUVfVklFVyhtX3RyZWVW
aWV3KSk7CiAgICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19zZXRfbWluX2NvbnRlbnRfd2lkdGgoc3dp
bmRvdywgd2lkdGgpOwogICAgIGd0a193aWRnZXRfc2V0X3NpemVfcmVxdWVzdChtX3BvcHVwLCB3
aWR0aCwgLTEpOwotICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X21pbl9jb250ZW50X2hlaWdo
dChzd2luZG93LCBpdGVtQ291bnQgKiBpdGVtSGVpZ2h0KTsKKyAgICBndGtfc2Nyb2xsZWRfd2lu
ZG93X3NldF9taW5fY29udGVudF9oZWlnaHQoc3dpbmRvdywgbWVudUl0ZW1Db3VudCAqIGl0ZW1I
ZWlnaHQpOwogCiAgICAgR3RrUmVxdWlzaXRpb24gbWVudVJlcXVpc2l0aW9uOwogICAgIGd0a193
aWRnZXRfZ2V0X3ByZWZlcnJlZF9zaXplKG1fcG9wdXAsICZtZW51UmVxdWlzaXRpb24sIG51bGxw
dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVu
dVByb3h5R3RrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJv
eHlHdGsuaAppbmRleCA4N2QwYjZmNmRjMDFiY2M4NDY4ZmYzYzcwZTM2N2MxZDdiOWE2OTQwLi4z
MDhiYjBjMTUxMDkzYmY2YmM5OTVjZjcwNTU1NGM0ZTE1MDk2NjIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuaApAQCAtNjIsNyAr
NjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgR3RrV2lkZ2V0KiBtX3dlYlZpZXcgeyBudWxscHRyIH07
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBv
cHVwSXRlbT4mLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpOworICAgIHVuc2lnbmVkIGNyZWF0ZVBv
cHVwTWVudShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYsIGludDMyX3Qgc2VsZWN0ZWRJbmRl
eCk7CiAgICAgdm9pZCBzaG93KCk7CiAgICAgYm9vbCBhY3RpdmF0ZUl0ZW1BdFBhdGgoR3RrVHJl
ZVBhdGgqKTsKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gdHlwZUFoZWFkRmluZEluZGV4KEdka0V2
ZW50S2V5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBN
ZW51UHJveHlNYWMubW0KaW5kZXggMDNiMzk4MDYxNjg0NjdhN2I3MDkzMmVjYjk0MTg5MmYzMTNh
YTNmZC4uZDNiOTc0YWYwMTcwMWJjNmYzNmRhMjZmMTYwNTA4YjFkYzYzMGI5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpA
QCAtNzQsMTQgKzc0LDE0IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNv
bnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgTlNGb250ICpmCiAgICAgICAgICAgICBO
U01lbnVJdGVtICptZW51SXRlbSA9IFttX3BvcHVwIGxhc3RJdGVtXTsKIAogICAgICAgICAgICAg
UmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0
TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHld
KTsKLSAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRl
bXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OkxUUiA/IE5TV3JpdGluZ0Rp
cmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CisgICAg
ICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IGl0ZW1zW2ldLm1f
aXRlbVN0eWxlLnRleHREaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpMVFIgPyBOU1dyaXRp
bmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0Owog
ICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRp
bmdEaXJlY3Rpb25dOwogICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpt
ZW51VGV4dERpcmVjdGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpMVFIgPyBOU1RleHRBbGlnbm1lbnRM
ZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0
YWJsZURpY3Rpb25hcnk+IGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICBwYXJhZ3Jh
cGhTdHlsZS5nZXQoKSwgTlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAg
ICAgICAgZm9udCwgTlNGb250QXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgIG5pbF0pOwotICAg
ICAgICAgICAgaWYgKGl0ZW1zW2ldLm1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSB7CisgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0ubV9pdGVtU3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
KCkpIHsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rp
b25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRp
bmdEaXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAg
ICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtb
TlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQo
KSwgbmlsXSk7CiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdE
aXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFt
ZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IGI5OTlmNTg0M2NhOGYzZTA3NmE5MTNmNmM2YWZhOGM0
NzZiYWZjY2EuLjZkNGZiYjhiMTUyNTU2YTgxNTJjZjhmZmI3YmMyODFiMjVmMjU4MWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1l
bnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
b3B1cE1lbnUuY3BwCkBAIC04Niw3ICs4Niw3IEBAIFZlY3RvcjxXZWJQb3B1cEl0ZW0+IFdlYlBv
cHVwTWVudTo6cG9wdWxhdGVJdGVtcygpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBv
cnQgZm9yIHN0eWxpbmcgdGhlIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzLgogICAg
ICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY3VzdG9taXplIHRleHQgY29sb3Igd2hl
biBhbiBpdGVtIGlzIGhpZ2hsaWdodGVkLgogICAgICAgICAgICAgUG9wdXBNZW51U3R5bGUgaXRl
bVN0eWxlID0gbV9wb3B1cENsaWVudC0+aXRlbVN0eWxlKGkpOwotICAgICAgICAgICAgaXRlbXMu
YXBwZW5kKFdlYlBvcHVwSXRlbShXZWJQb3B1cEl0ZW06Okl0ZW0sIG1fcG9wdXBDbGllbnQtPml0
ZW1UZXh0KGkpLCBpdGVtU3R5bGUudGV4dERpcmVjdGlvbigpLCBpdGVtU3R5bGUuaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlKCksIG1fcG9wdXBDbGllbnQtPml0ZW1Ub29sVGlwKGkpLCBtX3BvcHVw
Q2xpZW50LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0Vu
YWJsZWQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0xhYmVsKGkpLCBtX3BvcHVwQ2xpZW50LT5p
dGVtSXNTZWxlY3RlZChpKSkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRl
bShXZWJQb3B1cEl0ZW06Okl0ZW0sIG1fcG9wdXBDbGllbnQtPml0ZW1UZXh0KGkpLCBpdGVtU3R5
bGUsIG1fcG9wdXBDbGllbnQtPml0ZW1Ub29sVGlwKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtQWNj
ZXNzaWJpbGl0eVRleHQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0VuYWJsZWQoaSksIG1fcG9w
dXBDbGllbnQtPml0ZW1Jc0xhYmVsKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNTZWxlY3RlZChp
KSkpOwogICAgICAgICB9CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387506</attachid>
            <date>2020-01-13 00:57:41 -0800</date>
            <delta_ts>2020-01-13 00:57:41 -0800</delta_ts>
            <desc>WIP Patch v4</desc>
            <filename>bug-81882-20200113105740.patch</filename>
            <type>text/plain</type>
            <size>28766</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNiYmVhNTgwNzQ2NjFh
NWEwNDYxYjk0MDIyOTA0ZWM0NjJlNGM4YS4uY2ZlMWJlODc2OWQ0Yzg2ODllY2I5ZjQ3ZmViNTM0
ZTg4M2JhN2E0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTEzICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
ZGlzcGxheTpub25lIGhhcyBubyBlZmZlY3Qgb24gPG9wdGlvbj4gZWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHRoZSBzdHlsZSBpbmZv
cm1hdGlvbiAoUG9wdXBNZW51U3R5bGUpIG9mIGEgV2ViUG9wdXBJdGVtIG92ZXIgSVBDIHRvIG1h
a2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBVSVByb2Nlc3MsIHdoaWNoIHRoZW4gY2Fu
IHVzZSBpdCB0byBkZXRlcm1pbmUgaG93IHRvIGRpc3BsYXkgcG9wdXAgaXRlbXMuIFRoZW4sIG1h
a2UKKyAgICAgICAgdGhlIEdUSyBpbXBsZW1lbnRhdGlvbiBvZiBwb3B1cCBtZW51cyB0YWtlIGlu
dG8gYWNjb3VudCBQb3B1cE1lbnVTdHlsZTo6aXNEaXNwbGF5Tm9uZSgpIHRvCisgICAgICAgIGRl
Y2lkZSB3aGV0aGVyIGl0ZW1zIG1heSBiZSBoaWRkZW4gYW5kIHNraXAgZGlzcGxheWluZyB0aGVt
LiBGb3Igbm93IG9ubHkgdmlzaWJpbGl0eSBpcworICAgICAgICBoYW5kbGVkIGluIHRoZSBHVEsg
cG9ydCwgYnV0IHRoaXMgbGF5cyBhIGZvdW5kYXRpb24gd2hpY2ggYWxsb3dzIGZvciBob25vcmlu
ZyBvdGhlciBwb3B1cAorICAgICAgICBpdGVtIGRpc3BsYXkgYXR0cmlidXRlcyBpbiB0aGUgZnV0
dXJlIGFzIHdlbGwuCisKKyAgICAgICAgQmFzZWQgb24gYW4gb2xkIHBhdGNoIGJ5IE9sZWcgU21p
cm5vdiAodGhhbmtzISkKKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U3R5bGUpOiBQcm92aWRlIGEgZGVmYXVsdCBjb25zdHJ1Y3RvciB3
aGljaCBjYW4gYmUKKyAgICAgICAgdXNlZCB0byBpbml0aWFsaXplIGEgUG9wdXBNZW51U3R5bGUg
aW5zdGFuY2UgdXNpbmcgZGVmYXVsdCB2YWx1ZXMgcHJpb3IgdG8gZGVjb2RpbmcgaXQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZSk6IE1hcmsgRm9udENhc2NhZGUgY29weSBjb25zdHJ1
Y3RvciB3aXRoIFdFQkNPUkVfRVhQT1JULgorCiAyMDIwLTAxLTEyICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkNvcmVdIFJlb3JnYW5pemUgSlNUeXBl
IGluIFdlYkNvcmUgdG8gb2ZmZXIgbW9yZSBiaXRzIHRvIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZjc0MTc3
MDg0M2ZmNWM4ODFkNmJhMjRkMWJiY2I2ODJiMzI3ZTkyLi44MDZlY2VlOGUzYzdiYTU0MjY3NmJj
MWJjYjYxMDI1NzMzMjI1OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTAxLTEz
ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dUS10gZGlzcGxheTpub25lIGhhcyBubyBlZmZlY3Qgb24gPG9wdGlvbj4gZWxlbWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHRoZSBzdHls
ZSBpbmZvcm1hdGlvbiAoUG9wdXBNZW51U3R5bGUpIG9mIGEgV2ViUG9wdXBJdGVtIG92ZXIgSVBD
IHRvIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBVSVByb2Nlc3MsIHdoaWNoIHRo
ZW4gY2FuIHVzZSBpdCB0byBkZXRlcm1pbmUgaG93IHRvIGRpc3BsYXkgcG9wdXAgaXRlbXMuIFRo
ZW4sIG1ha2UKKyAgICAgICAgdGhlIEdUSyBpbXBsZW1lbnRhdGlvbiBvZiBwb3B1cCBtZW51cyB0
YWtlIGludG8gYWNjb3VudCBQb3B1cE1lbnVTdHlsZTo6aXNEaXNwbGF5Tm9uZSgpIHRvCisgICAg
ICAgIGRlY2lkZSB3aGV0aGVyIGl0ZW1zIG1heSBiZSBoaWRkZW4gYW5kIHNraXAgZGlzcGxheWlu
ZyB0aGVtLiBGb3Igbm93IG9ubHkgdmlzaWJpbGl0eSBpcworICAgICAgICBoYW5kbGVkIGluIHRo
ZSBHVEsgcG9ydCwgYnV0IHRoaXMgbGF5cyBhIGZvdW5kYXRpb24gd2hpY2ggYWxsb3dzIGZvciBo
b25vcmluZyBvdGhlciBwb3B1cAorICAgICAgICBpdGVtIGRpc3BsYXkgYXR0cmlidXRlcyBpbiB0
aGUgZnV0dXJlIGFzIHdlbGwuCisKKyAgICAgICAgQmFzZWQgb24gYW4gb2xkIHBhdGNoIGJ5IE9s
ZWcgU21pcm5vdiAodGhhbmtzISkKKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFBvcHVwTWVudVN0eWxlPjo6
ZW5jb2RlKTogQWRkZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5
bGU+OjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmg6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciBQb3B1cE1lbnVTdHlsZSBjb2RlcnMuCisgICAg
ICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
SXRlbTo6V2ViUG9wdXBJdGVtKTogWmFwIGluaXRpYWxpemF0aW9uIG9mIHJlbW92ZWQgbWVtYmVy
cworICAgICAgICBtX3RleHREaXJlY3Rpb24gYW5kIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
OyBhbmQgbWFrZSB0aGUgY29tcGxldGUgY29uc3RydWN0b3IKKyAgICAgICAgcmVjZWl2ZSBhIFBv
cHVwTWVudVN0eWxlIHBhcmFtZXRlciBpbnN0ZWFkLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1
cEl0ZW06OmVuY29kZSBjb25zdCk6IEFkYXB0IHRvIGhhbmRsZSB0aGUgYWRkZWQgUG9wdXBNZW51
U3R5bGUgbWVtYmVyCisgICAgICAgIGFuZCByZW1vdmUgaGFuZGxpbmcgb2YgdGhlIHJlbW92ZWQg
bV90ZXh0RGlyZWN0aW9uIGFuZCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSBtZW1iZXJzLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmRlY29kZSk6IERpdHRvLgorICAgICAgICAq
IFNoYXJlZC9XZWJQb3B1cEl0ZW0uaDogQWRkIGEgUG9wdXBNZW51U3R5bGUgbWVtYmVyLCBhbmQg
cmVtb3ZlIG1fdGV4dERpcmVjdGlvbiBhbmQKKyAgICAgICAgbV9oYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUgbWVtYmVycyB0byBhdm9pZCBkdXBsaWNhdGlvbiBiZWNhdXNlIHRoZWlyIHZhbHVlcyBh
cmUgYWxyZWFkeQorICAgICAgICBwcm92aWRlZCBieSBQb3B1cE1lbnVTdHlsZS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZVBvcHVwTWVudSk6IERvIG5vdCBhZGQgbm9u
LXZpc2libGUgbWVudSBpdGVtcworICAgICAgICB0byB0aGUgcG9wdXAgdHJlZSBtb2RlbCwgYXJy
YW5nZSB0byByZXR1cm4gdGhlIG51bWJlciBvZiAodmlzaWJsZSkgaXRlbXMgYWRkZWQgdG8KKyAg
ICAgICAgdGhlIHRyZWUgbW9kZWwuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5
R3RrOjpzaG93UG9wdXBNZW51KTogVGFrZSBpbnRvIGFjY291bnQgdGhlIG51bWJlciBvZiB2aXNp
YmUgaXRlbXMKKyAgICAgICAgZm9yIHdpZGdldCBzaXplIGNhbGN1bGF0aW9ucy4KKyAgICAgICAg
KiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmg6IENoYW5nZSBwcm90b3R5cGUg
b2YgY3JlYXRlUG9wdXBNZW51KCkgdG8gbWFrZSBpdAorICAgICAgICByZXR1cm4gdGhlIG51bWJl
ciBvZiB2aXNpYmxlIGl0ZW1zIGluIHRoZSBtZW51LgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViUG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVBy
b3h5TWFjOjpwb3B1bGF0ZSk6IEFkYXB0IHRvIFdlYlBvcHVwSXRlbSBub3QgY29udGFpbmluZyBh
CisgICAgICAgIFBvcHVwTWVudVN0eWxlIG1lbWJlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudTo6cG9wdWxhdGVJdGVtcyk6IEFkYXB0IHRvIHRoZSBjaGFuZ2UgaW4gdGhlIFdlYlBvcHVw
SXRlbSBjb25zdHJ1Y3RvciwKKyAgICAgICAgaW4gb3JkZXIgdG8gcGFzcyBhIFBvcHVwTWVudVN0
eWxlIHRvIGl0LgorCiAyMDIwLTAxLTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXhwb3NlIGZyYW1lIGluZm9ybWF0aW9uIG9uIF9XS1Jl
c291cmNlTG9hZEluZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNDExMjE1NTdhZTZmMzVkYjlhZDVmNGMx
ZThhY2NjYTA4NjYzZTZmYi4uYWRiNDA2ZTg1ZjQ1ZGZhOTc5YTA4OWExNjRhNWY3YjU2ODQzZDZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE3NTMsNiArMTc1Myw3IEBAIHBsYXRmb3JtL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcAogcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNWb2ljZS5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwCiBw
bGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCitwbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5j
cHAKIHBsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRp
Zmllci5jcHAKIHBsYXRmb3JtL1JlZmVycmVyUG9saWN5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDliYjg0MzE0NTM5YWQw
OTUxNDYzMWIyMTMwNjE2YWY2MGJhOWExYzMuLjYxZjMxZjM1YzlmZDNjZWRkNjZjYjFjZGU4M2Yx
NGZiMGQ3ZGMyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEzMDkxLDYgKzEzMDkxLDcgQEAKIAkJQkMzNDhCRDIwREI3Rjgw
NDAwNEFCQUJBIC8qIFdlYkNvcmVKU0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvcmVKU0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMzQ4QkQyMERCN0Y4MDQwMDRBQkFCQiAvKiBXZWJDb3JlSlNCdWlsdGluSW50ZXJuYWxz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKU0J1aWx0aW5JbnRl
cm5hbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQkMyOUIwRTkxQUIwRjAw
ODM1NTg4IC8qIEhvc3RXaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SG9zdFdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNCRTEyQTBFOTgw
OTJGMDA4MzU1OEEgLyogUG9wdXBNZW51U3R5bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUG9wdXBNZW51U3R5bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51U3R5bGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQkU5OTAwRTlDMUM3QzAwODM1NTg4IC8qIFJlbmRlclNj
cm9sbGJhci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJT
Y3JvbGxiYXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzNCRTk5MTBFOUMx
QzdDMDA4MzU1ODggLyogUmVuZGVyU2Nyb2xsYmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNjcm9sbGJhci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2
YjlmNzJhY2IxYWQ4M2FkNDI5ZDNhMDc5YTczMjBlNjVhMmQ0OGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5jcHAKQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVN0eWxlLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisKK1BvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTdHls
ZShjb25zdCBDb2xvciYgZm9yZWdyb3VuZCwgY29uc3QgQ29sb3ImIGJhY2tncm91bmQsIGNvbnN0
IEZvbnRDYXNjYWRlJiBmb250LCBib29sIHZpc2libGUsIGJvb2wgaXNEaXNwbGF5Tm9uZSwgYm9v
bCBoYXNEZWZhdWx0QXBwZWFyYW5jZSwgTGVuZ3RoIHRleHRJbmRlbnQsIFRleHREaXJlY3Rpb24g
dGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIEJhY2tncm91bmRD
b2xvclR5cGUgYmFja2dyb3VuZENvbG9yVHlwZSwgUG9wdXBNZW51VHlwZSBtZW51VHlwZSwgUG9w
dXBNZW51U2l6ZSBtZW51U2l6ZSkKKyAgICA6IG1fZm9yZWdyb3VuZENvbG9yKGZvcmVncm91bmQp
CisgICAgLCBtX2JhY2tncm91bmRDb2xvcihiYWNrZ3JvdW5kKQorICAgICwgbV9mb250KGZvbnQp
CisgICAgLCBtX3Zpc2libGUodmlzaWJsZSkKKyAgICAsIG1faXNEaXNwbGF5Tm9uZShpc0Rpc3Bs
YXlOb25lKQorICAgICwgbV9oYXNEZWZhdWx0QXBwZWFyYW5jZShoYXNEZWZhdWx0QXBwZWFyYW5j
ZSkKKyAgICAsIG1fdGV4dEluZGVudCh0ZXh0SW5kZW50KQorICAgICwgbV90ZXh0RGlyZWN0aW9u
KHRleHREaXJlY3Rpb24pCisgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShoYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpCisgICAgLCBtX2JhY2tncm91bmRDb2xvclR5cGUoYmFja2dyb3Vu
ZENvbG9yVHlwZSkKKyAgICAsIG1fbWVudVR5cGUobWVudVR5cGUpCisgICAgLCBtX21lbnVTaXpl
KG1lbnVTaXplKQoreworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9w
dXBNZW51U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmgK
aW5kZXggMzdjZWU2MzJhYmFjMTZiN2MxZjg4N2U5ZGYxMTVjNmM1NGE2ZTY3Zi4uMTE0NjkwODVh
MmVhNzUwOTQ1MjEyZDZlYjc0YzgwZWIxNjFiYzAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Qb3B1cE1lbnVTdHlsZS5oCkBAIC0yMywxMiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpZm5kZWYgUG9wdXBNZW51U3R5bGVfaAotI2RlZmluZSBQb3B1cE1lbnVTdHlsZV9o
CisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRm9udENhc2Nh
ZGUuaCIKICNpbmNsdWRlICJMZW5ndGguaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1hY3Jv
cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDIyICs0MiwxOCBAQCBwdWJsaWM6
CiAgICAgICAgIFBvcHVwTWVudVNpemVNaW5pCiAgICAgfTsKIAotICAgIFBvcHVwTWVudVN0eWxl
KGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZCwgY29uc3Qg
Rm9udENhc2NhZGUmIGZvbnQsIGJvb2wgdmlzaWJsZSwgYm9vbCBpc0Rpc3BsYXlOb25lLCBib29s
IGhhc0RlZmF1bHRBcHBlYXJhbmNlLCBMZW5ndGggdGV4dEluZGVudCwgVGV4dERpcmVjdGlvbiB0
ZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgQmFja2dyb3VuZENv
bG9yVHlwZSBiYWNrZ3JvdW5kQ29sb3JUeXBlID0gRGVmYXVsdEJhY2tncm91bmRDb2xvciwgUG9w
dXBNZW51VHlwZSBtZW51VHlwZSA9IFNlbGVjdFBvcHVwLCBQb3B1cE1lbnVTaXplIG1lbnVTaXpl
ID0gUG9wdXBNZW51U2l6ZU5vcm1hbCkKLSAgICAgICAgOiBtX2ZvcmVncm91bmRDb2xvcihmb3Jl
Z3JvdW5kKQotICAgICAgICAsIG1fYmFja2dyb3VuZENvbG9yKGJhY2tncm91bmQpCi0gICAgICAg
ICwgbV9mb250KGZvbnQpCi0gICAgICAgICwgbV92aXNpYmxlKHZpc2libGUpCi0gICAgICAgICwg
bV9pc0Rpc3BsYXlOb25lKGlzRGlzcGxheU5vbmUpCi0gICAgICAgICwgbV9oYXNEZWZhdWx0QXBw
ZWFyYW5jZShoYXNEZWZhdWx0QXBwZWFyYW5jZSkKLSAgICAgICAgLCBtX3RleHRJbmRlbnQodGV4
dEluZGVudCkKLSAgICAgICAgLCBtX3RleHREaXJlY3Rpb24odGV4dERpcmVjdGlvbikKLSAgICAg
ICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUp
Ci0gICAgICAgICwgbV9iYWNrZ3JvdW5kQ29sb3JUeXBlKGJhY2tncm91bmRDb2xvclR5cGUpCi0g
ICAgICAgICwgbV9tZW51VHlwZShtZW51VHlwZSkKLSAgICAgICAgLCBtX21lbnVTaXplKG1lbnVT
aXplKQorICAgIFBvcHVwTWVudVN0eWxlKCkKKyAgICAgICAgOiBtX3Zpc2libGUoZmFsc2UpCisg
ICAgICAgICwgbV9pc0Rpc3BsYXlOb25lKGZhbHNlKQorICAgICAgICAsIG1fdGV4dERpcmVjdGlv
bihUZXh0RGlyZWN0aW9uOjpMVFIpCisgICAgICAgICwgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUoZmFsc2UpCisgICAgICAgICwgbV9iYWNrZ3JvdW5kQ29sb3JUeXBlKERlZmF1bHRCYWNrZ3Jv
dW5kQ29sb3IpCisgICAgICAgICwgbV9tZW51VHlwZShTZWxlY3RQb3B1cCkKICAgICB7CiAgICAg
fQogCisgICAgV0VCQ09SRV9FWFBPUlQgUG9wdXBNZW51U3R5bGUoY29uc3QgQ29sb3ImIGZvcmVn
cm91bmQsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kLCBjb25zdCBGb250Q2FzY2FkZSYsIGJvb2wg
dmlzaWJsZSwgYm9vbCBpc0Rpc3BsYXlOb25lLCBib29sIGhhc0RlZmF1bHRBcHBlYXJhbmNlLCBM
ZW5ndGggdGV4dEluZGVudCwgVGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUsIEJhY2tncm91bmRDb2xvclR5cGUgPSBEZWZhdWx0QmFja2dyb3VuZENvbG9yLCBQb3B1
cE1lbnVUeXBlID0gU2VsZWN0UG9wdXAsIFBvcHVwTWVudVNpemUgPSBQb3B1cE1lbnVTaXplTm9y
bWFsKTsKKwogICAgIGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVy
biBtX2ZvcmVncm91bmRDb2xvcjsgfQogICAgIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3Io
KSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmRDb2xvcjsgfQogICAgIGNvbnN0IEZvbnRDYXNj
YWRlJiBmb250KCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CkBAIC04Nyw1ICs4MywzIEBAIHBy
aXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBQb3B1cE1l
bnVTdHlsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuaAppbmRleCA4OTdjZDk3OGY4NDJlYzE4MzIzNmJjMDYyNzY5YTk5NGY4Mzg5ZGFmLi4xNDg2
MTc2NGJlNDRkOWNiZDBkYzAwY2ZjZTNjNDhlZDM5MTQ3NTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKQEAgLTkzLDcgKzkzLDcgQEAgcHVi
bGljOgogICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaXMgb25seSB1c2VkIGlmIHRoZSBwbGF0Zm9y
bSB3YW50cyB0byBzdGFydCB3aXRoIGEgbmF0aXZlIGZvbnQuCiAgICAgV0VCQ09SRV9FWFBPUlQg
Rm9udENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIEZvbnRTbW9vdGhpbmdNb2RlID0g
Rm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmcpOwogCi0gICAgRm9udENhc2NhZGUoY29u
c3QgRm9udENhc2NhZGUmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb250Q2FzY2FkZShjb25zdCBG
b250Q2FzY2FkZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRDYXNjYWRlJiBvcGVyYXRvcj0o
Y29uc3QgRm9udENhc2NhZGUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250Q2FzY2FkZSYgb3RoZXIpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IDI0YjJjOTYzNjE4
ODExNGNjN2ZhMzg3ZWYyZGRjMWE1Yjg4NDY5NTYuLjYyY2ExMTkxNjNhMDc5MWQ3Njk2M2U1OWMy
NTg2MmQyNWUzYTJjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTY4LDYgKzY4LDEwIEBAIGludGVyZmFjZSBJRFdy
aXRlRm9udEZhY2U7CiAjaW5jbHVkZSA8ZHdyaXRlXzMuaD4KICNlbmRpZgogCisjaWYgVVNFKEZS
RUVUWVBFKSB8fCAoUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0FJUk8pKQordHlwZWRlZiBzdHJ1Y3Qg
X2NhaXJvX2ZvbnRfZmFjZSBjYWlyb19mb250X2ZhY2VfdDsKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDdjMWVmNzc4N2E3ZWJhOWJhMjdl
Y2E2N2Y0YjVjNGQ4NjY0MWI2OWMuLmU4NDI0N2VlOTYyNmJkZDc3NzA4YzhiZjgzYjFkYzJhZTY3
N2M1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdp
bkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVN0eWxlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90
ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlY3RFZGdlcy5oPgpAQCAtODk1LDYg
Kzg5Niw3MyBAQCBib29sIEFyZ3VtZW50Q29kZXI8QXV0aGVudGljYXRpb25DaGFsbGVuZ2U+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXV0aGVudGljYQogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIEFyZ3VtZW50Q29kZXI8UG9wdXBNZW51U3R5bGU+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgUG9wdXBNZW51U3R5bGUmIHBvcHVwTWVudVN0eWxlKQoreworICAgIGVuY29k
ZXIgPDwgcG9wdXBNZW51U3R5bGUuZm9yZWdyb3VuZENvbG9yKCk7CisgICAgZW5jb2RlciA8PCBw
b3B1cE1lbnVTdHlsZS5iYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICAvLyBUT0RPOiBFbmNvZGUgRm9u
dENhc2NhZGUgbWVtYmVyLgorICAgIGVuY29kZXIgPDwgcG9wdXBNZW51U3R5bGUuaXNWaXNpYmxl
KCk7CisgICAgZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5pc0Rpc3BsYXlOb25lKCk7CisgICAg
ZW5jb2RlciA8PCBwb3B1cE1lbnVTdHlsZS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpOworICAgIGVu
Y29kZXIgPDwgcG9wdXBNZW51U3R5bGUudGV4dEluZGVudCgpOworICAgIGVuY29kZXIuZW5jb2Rl
RW51bShwb3B1cE1lbnVTdHlsZS50ZXh0RGlyZWN0aW9uKCkpOworICAgIGVuY29kZXIgPDwgcG9w
dXBNZW51U3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCk7CisgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKHBvcHVwTWVudVN0eWxlLmJhY2tncm91bmRDb2xvclR5cGUoKSk7CisgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKHBvcHVwTWVudVN0eWxlLm1lbnVUeXBlKCkpOworICAgIGVuY29kZXIuZW5j
b2RlRW51bShwb3B1cE1lbnVTdHlsZS5tZW51U2l6ZSgpKTsKK30KKworYm9vbCBBcmd1bWVudENv
ZGVyPFBvcHVwTWVudVN0eWxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBvcHVwTWVudVN0
eWxlJiBwb3B1cE1lbnVTdHlsZSkKK3sKKyAgICBDb2xvciBmb3JlZ3JvdW5kQ29sb3I7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShmb3JlZ3JvdW5kQ29sb3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShiYWNrZ3JvdW5kQ29sb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBUT0RP
OiBEZWNvZGUgRm9udENhc2NhZGUgbWVtYmVyLgorCisgICAgYm9vbCB2aXNpYmxlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodmlzaWJsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGJvb2wgaXNEaXNwbGF5Tm9uZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzRGlzcGxheU5v
bmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGhhc0RlZmF1bHRBcHBlYXJh
bmNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzRGVmYXVsdEFwcGVhcmFuY2UpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMZW5ndGggdGV4dEluZGVudDsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHRleHRJbmRlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBU
ZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
dGV4dERpcmVjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgaGFzVGV4
dERpcmVjdGlvbk92ZXJyaWRlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVGV4dERpcmVj
dGlvbk92ZXJyaWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUG9wdXBNZW51U3R5
bGU6OkJhY2tncm91bmRDb2xvclR5cGUgYmFja2dyb3VuZENvbG9yVHlwZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlRW51bShiYWNrZ3JvdW5kQ29sb3JUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVR5cGUgbWVudVR5cGU7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0obWVudVR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBtZW51U2l6ZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShtZW51U2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHBvcHVwTWVudVN0eWxlID0gUG9wdXBNZW51U3R5bGUoZm9yZWdyb3VuZENvbG9yLCBiYWNr
Z3JvdW5kQ29sb3IsIEZvbnRDYXNjYWRlKCksIHZpc2libGUsIGlzRGlzcGxheU5vbmUsIGhhc0Rl
ZmF1bHRBcHBlYXJhbmNlLCB0ZXh0SW5kZW50LCB0ZXh0RGlyZWN0aW9uLCBoYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUsIGJhY2tncm91bmRDb2xvclR5cGUsIG1lbnVUeXBlLCBtZW51U2l6ZSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXgg
ODRkNDM5YzUwNTQwNGI3ZTU5MDViMzZlN2RlYzc2ODlkZGZhOTQ1NC4uOWRjYzE4ZDI2NjIwNDE3
ODliNDY1NzMwYjUxOGU3ZWE2YjFiMzlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTkzLDYgKzkzLDggQEAgY2xhc3MgTGluZWFyVGltaW5n
RnVuY3Rpb247CiBjbGFzcyBOYXRpdmVJbWFnZUhhbmRsZTsKIGNsYXNzIE5vdGlmaWNhdGlvbjsK
IGNsYXNzIFBhc3RlYm9hcmRDdXN0b21EYXRhOworY2xhc3MgUGF0aDsKK2NsYXNzIFBvcHVwTWVu
dVN0eWxlOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVz
b3VyY2VFcnJvcjsKQEAgLTM2Nyw2ICszNjksMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gewogICAgIHN0YXRpYyBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsK
IH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UG9wdXBNZW51
U3R5bGU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OlBvcHVwTWVudVN0eWxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpQb3B1cE1lbnVTdHlsZSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCA4NjBmNWIwY2Y2MTQ5NDdhZjNlNDRmN2Nj
OWI0MzE4MmFjMDE5MjI3Li5kOTEzZTliMzcwMTg1NGI2NGU5MGYzMDA1ZGIxMTVmNzU0NDc3YmNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKQEAgLTI4LDEzICsyOCwxMiBA
QAogI2luY2x1ZGUgIldlYlBvcHVwSXRlbS5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKCkKICAgICA6IG1fdHlwZShJdGVtKQot
ICAgICwgbV90ZXh0RGlyZWN0aW9uKFdlYkNvcmU6OlRleHREaXJlY3Rpb246OkxUUikKLSAgICAs
IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9pc0VuYWJsZWQodHJ1
ZSkKICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKQEAgLTQyLDE5ICs0MSwxNiBAQCBXZWJQ
b3B1cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5
cGUgdHlwZSkKICAgICA6IG1fdHlwZSh0eXBlKQotICAgICwgbV90ZXh0RGlyZWN0aW9uKFdlYkNv
cmU6OlRleHREaXJlY3Rpb246OkxUUikKLSAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
KGZhbHNlKQogICAgICwgbV9pc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNMYWJlbChmYWxzZSkK
ICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVtOjpXZWJQb3B1
cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rp
b24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0
cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0Vu
YWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1NlbGVjdGVkKQorV2ViUG9wdXBJdGVtOjpXZWJQ
b3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFdlYkNvcmU6OlBv
cHVwTWVudVN0eWxlJiBpdGVtU3R5bGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3Ry
aW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9v
bCBpc1NlbGVjdGVkKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX3RleHQodGV4dCkKLSAg
ICAsIG1fdGV4dERpcmVjdGlvbih0ZXh0RGlyZWN0aW9uKQotICAgICwgbV9oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKQorICAgICwgbV9pdGVtU3R5bGUo
aXRlbVN0eWxlKQogICAgICwgbV90b29sVGlwKHRvb2xUaXApCiAgICAgLCBtX2FjY2Vzc2liaWxp
dHlUZXh0KGFjY2Vzc2liaWxpdHlUZXh0KQogICAgICwgbV9pc0VuYWJsZWQoaXNFbmFibGVkKQpA
QCAtNjcsOCArNjMsNyBAQCB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKICAgICBl
bmNvZGVyIDw8IG1fdGV4dDsKLSAgICBlbmNvZGVyLmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9u
KTsKLSAgICBlbmNvZGVyIDw8IG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOworICAgIGVuY29k
ZXIgPDwgbV9pdGVtU3R5bGU7CiAgICAgZW5jb2RlciA8PCBtX3Rvb2xUaXA7CiAgICAgZW5jb2Rl
ciA8PCBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGVuY29kZXIgPDwgbV9pc0VuYWJsZWQ7CkBA
IC04NiwxMiArODEsOCBAQCBPcHRpb25hbDxXZWJQb3B1cEl0ZW0+IFdlYlBvcHVwSXRlbTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHQp
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIFdlYkNvcmU6OlRleHRE
aXJlY3Rpb24gdGV4dERpcmVjdGlvbjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0ZXh0
RGlyZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlKSkKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGU7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpdGVtU3R5bGUpKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCiAgICAgU3RyaW5nIHRvb2xUaXA7CkBAIC0xMTQsNyArMTA1LDcgQEAgT3B0
aW9uYWw8V2ViUG9wdXBJdGVtPiBXZWJQb3B1cEl0ZW06OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1NlbGVjdGVkKSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyB0eXBlLCB0ZXh0LCB0ZXh0RGlyZWN0
aW9uLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0
LCBpc0VuYWJsZWQsIGlzTGFiZWwsIGlzU2VsZWN0ZWQgfX07CisgICAgcmV0dXJuIHt7IHR5cGUs
IHRleHQsIGl0ZW1TdHlsZSwgdG9vbFRpcCwgYWNjZXNzaWJpbGl0eVRleHQsIGlzRW5hYmxlZCwg
aXNMYWJlbCwgaXNTZWxlY3RlZCB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQb3B1cEl0ZW0uaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4IGZlZDJmZTQ4ODA5ZWUzNTk5ZTQ5MjdiNmJm
ODZkNTY1Nzk0YTYyNzIuLjNiODEzYzQzMTkxZmEyZjBmZmM2MDY2MDg3ODRlMzM0ZjdhYmIyZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVTdHlsZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV3JpdGluZ01vZGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtNDMsMTUgKzQ0LDE0IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewogCiAgICAgV2Vi
UG9wdXBJdGVtKCk7CiAgICAgV2ViUG9wdXBJdGVtKFR5cGUpOwotICAgIFdlYlBvcHVwSXRlbShU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmlu
ZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFiZWwsIGJvb2wg
aXNTZWxlY3RlZCk7CisgICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUmLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNv
bnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFi
ZWwsIGJvb2wgaXNTZWxlY3RlZCk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUG9wdXBJdGVtPiBkZWNvZGUoSVBDOjpEZWNv
ZGVyJik7CiAKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV90ZXh0OwotICAgIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24gbV90ZXh0RGlyZWN0aW9uOwotICAgIGJvb2wgbV9oYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgbV9pdGVtU3R5bGU7
CiAgICAgU3RyaW5nIG1fdG9vbFRpcDsKICAgICBTdHJpbmcgbV9hY2Nlc3NpYmlsaXR5VGV4dDsK
ICAgICBib29sIG1faXNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAKaW5kZXggYjYxMzhiZDE3NTViNzA3Y2JkNGQx
YTllYTUxMDIyMDBkNGIyN2FiMy4uOTEyYjVjOGJkMjA3YWRmZTFlNzBkYjYxMTNhNjBhNzFmOGM3
ZGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVu
dVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBN
ZW51UHJveHlHdGsuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgZ2Jvb2xlYW4gV2ViUG9wdXBNZW51
UHJveHlHdGs6OmtleVByZXNzRXZlbnRDYWxsYmFjayhHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZl
bnQKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3Jl
YXRlUG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW50MzJfdCBz
ZWxlY3RlZEluZGV4KQordW5zaWduZWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OmNyZWF0ZVBvcHVw
TWVudShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJ
bmRleCkKIHsKICAgICBBU1NFUlQoIW1fcG9wdXApOwogCkBAIC0xNDcsNiArMTQ3LDggQEAgdm9p
ZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9wdXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQ
b3B1cEl0ZW0+JiBpdGVtcywgaW4KICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAgbV9wYXRo
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGl0ZW1zLnNpemUoKSk7CiAgICAgZm9yIChjb25zdCBh
dXRvJiBpdGVtIDogaXRlbXMpIHsKKyAgICAgICAgaWYgKGl0ZW0ubV9pdGVtU3R5bGUuaXNEaXNw
bGF5Tm9uZSgpKQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChpdGVtLm1faXNM
YWJlbCkgewogICAgICAgICAgICAgZ3RrX3RyZWVfc3RvcmVfaW5zZXJ0X3dpdGhfdmFsdWVzKG1v
ZGVsLmdldCgpLCAmcGFyZW50SXRlciwgbnVsbHB0ciwgLTEsCiAgICAgICAgICAgICAgICAgQ29s
dW1uczo6TGFiZWwsIGl0ZW0ubV90ZXh0LnN0cmlwV2hpdGVTcGFjZSgpLnV0ZjgoKS5kYXRhKCks
CkBAIC0xNzQsNiArMTc2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6Y3JlYXRlUG9w
dXBNZW51KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW4KICAgICAgICAgfQog
ICAgICAgICBpbmRleCsrOwogICAgIH0KKyAgICBBU1NFUlQoaW5kZXggPD0gaXRlbXMuc2l6ZSgp
KTsKIAogICAgIG1fdHJlZVZpZXcgPSBndGtfdHJlZV92aWV3X25ld193aXRoX21vZGVsKEdUS19U
UkVFX01PREVMKG1vZGVsLmdldCgpKSk7CiAgICAgYXV0byogdHJlZVZpZXcgPSBHVEtfVFJFRV9W
SUVXKG1fdHJlZVZpZXcpOwpAQCAtMjIyLDYgKzIyNSw4IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlHdGs6OmNyZWF0ZVBvcHVwTWVudShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMs
IGluCiAgICAgZ3RrX3dpbmRvd19zZXRfcmVzaXphYmxlKEdUS19XSU5ET1cobV9wb3B1cCksIEZB
TFNFKTsKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKG1fcG9wdXApLCBzd2lu
ZG93KTsKICAgICBndGtfd2lkZ2V0X3Nob3coc3dpbmRvdyk7CisKKyAgICByZXR1cm4gaW5kZXg7
CiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3coKQpAQCAtMjM4LDcgKzI0Myw3
IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlHdGs6OnNob3coKQogCiB2b2lkIFdlYlBvcHVwTWVu
dVByb3h5R3RrOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rp
b24sIGRvdWJsZSAvKiBwYWdlU2NhbGVGYWN0b3IgKi8sIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0
ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3Rl
ZEluZGV4KQogewotICAgIGNyZWF0ZVBvcHVwTWVudShpdGVtcywgc2VsZWN0ZWRJbmRleCk7Cisg
ICAgY29uc3QgYXV0byBtZW51SXRlbUNvdW50ID0gY3JlYXRlUG9wdXBNZW51KGl0ZW1zLCBzZWxl
Y3RlZEluZGV4KTsKICAgICBBU1NFUlQobV9wb3B1cCk7CiAKICAgICBHdGtSZXF1aXNpdGlvbiB0
cmVlVmlld1JlcXVpc2l0aW9uOwpAQCAtMjU3LDcgKzI2Miw3IEBAIHZvaWQgV2ViUG9wdXBNZW51
UHJveHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlv
biwgZG91CiAgICAgR2RrUmVjdGFuZ2xlIGFyZWE7CiAgICAgZ2RrX21vbml0b3JfZ2V0X3dvcmth
cmVhKG1vbml0b3IsICZhcmVhKTsKICAgICBpbnQgd2lkdGggPSBzdGQ6Om1pbihyZWN0LndpZHRo
KCksIGFyZWEud2lkdGgpOwotICAgIHNpemVfdCBpdGVtQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+
KGl0ZW1zLnNpemUoKSwgKGFyZWEuaGVpZ2h0IC8gMykgLyBpdGVtSGVpZ2h0KTsKKyAgICBzaXpl
X3QgaXRlbUNvdW50ID0gc3RkOjptaW48c2l6ZV90PihtZW51SXRlbUNvdW50LCAoYXJlYS5oZWln
aHQgLyAzKSAvIGl0ZW1IZWlnaHQpOwogCiAgICAgYXV0byogc3dpbmRvdyA9IEdUS19TQ1JPTExF
RF9XSU5ET1coZ3RrX2Jpbl9nZXRfY2hpbGQoR1RLX0JJTihtX3BvcHVwKSkpOwogICAgIC8vIERp
c2FibGUgc2Nyb2xsYmFycyB3aGVuIHRoZXJlJ3Mgb25seSBvbmUgaXRlbSB0byBlbnN1cmUgdGhl
IHNjcm9sbGVkIHdpbmRvdyBkb2Vzbid0IHRha2UgdGhlbSBpbnRvIGFjY291bnQgd2hlbiBjYWxj
dWxhdGluZyBpdHMgbWluaW11bSBzaXplLgpAQCAtMjY2LDcgKzI3MSw3IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlHdGs6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERp
cmVjdGlvbiwgZG91CiAgICAgZ3RrX3RyZWVfdmlld19jb2x1bW5zX2F1dG9zaXplKEdUS19UUkVF
X1ZJRVcobV90cmVlVmlldykpOwogICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X21pbl9jb250
ZW50X3dpZHRoKHN3aW5kb3csIHdpZHRoKTsKICAgICBndGtfd2lkZ2V0X3NldF9zaXplX3JlcXVl
c3QobV9wb3B1cCwgd2lkdGgsIC0xKTsKLSAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9taW5f
Y29udGVudF9oZWlnaHQoc3dpbmRvdywgaXRlbUNvdW50ICogaXRlbUhlaWdodCk7CisgICAgZ3Rr
X3Njcm9sbGVkX3dpbmRvd19zZXRfbWluX2NvbnRlbnRfaGVpZ2h0KHN3aW5kb3csIG1lbnVJdGVt
Q291bnQgKiBpdGVtSGVpZ2h0KTsKIAogICAgIEd0a1JlcXVpc2l0aW9uIG1lbnVSZXF1aXNpdGlv
bjsKICAgICBndGtfd2lkZ2V0X2dldF9wcmVmZXJyZWRfc2l6ZShtX3BvcHVwLCAmbWVudVJlcXVp
c2l0aW9uLCBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YlBvcHVwTWVudVByb3h5R3RrLmgKaW5kZXggODdkMGI2ZjZkYzAxYmNjODQ2OGZmM2M3MGUzNjdj
MWQ3YjlhNjk0MC4uMzA4YmIwYzE1MTA5M2JmNmJjOTk1Y2Y3MDU1NTRjNGUxNTA5NjYyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3Rr
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3Rr
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJvdGVjdGVkOgogICAgIEd0a1dpZGdldCogbV93ZWJWaWV3
IHsgbnVsbHB0ciB9OwogCiBwcml2YXRlOgotICAgIHZvaWQgY3JlYXRlUG9wdXBNZW51KGNvbnN0
IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKKyAgICB1bnNp
Z25lZCBjcmVhdGVQb3B1cE1lbnUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mLCBpbnQzMl90
IHNlbGVjdGVkSW5kZXgpOwogICAgIHZvaWQgc2hvdygpOwogICAgIGJvb2wgYWN0aXZhdGVJdGVt
QXRQYXRoKEd0a1RyZWVQYXRoKik7CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHR5cGVBaGVhZEZp
bmRJbmRleChHZGtFdmVudEtleSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDAzYjM5ODA2MTY4NDY3YTdiNzA5MzJl
Y2I5NDE4OTJmMzEzYWEzZmQuLmQzYjk3NGFmMDE3MDFiYzZmMzZkYTI2ZjE2MDUwOGIxZGM2MzBi
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51
UHJveHlNYWMubW0KQEAgLTc0LDE0ICs3NCwxNCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFj
Ojpwb3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIE5TRm9udCAqZgog
ICAgICAgICAgICAgTlNNZW51SXRlbSAqbWVudUl0ZW0gPSBbbV9wb3B1cCBsYXN0SXRlbV07CiAK
ICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBo
U3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVd
IG11dGFibGVDb3B5XSk7Ci0gICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0Rp
cmVjdGlvbiA9IGl0ZW1zW2ldLm1fdGV4dERpcmVjdGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpMVFIg
PyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0
VG9MZWZ0OworICAgICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24g
PSBpdGVtc1tpXS5tX2l0ZW1TdHlsZS50ZXh0RGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6
TFRSID8gTlNXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25S
aWdodFRvTGVmdDsKICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0Rp
cmVjdGlvbjp3cml0aW5nRGlyZWN0aW9uXTsKICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBz
ZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6TFRSID8gTlNU
ZXh0QWxpZ25tZW50TGVmdCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgICAgIFJl
dGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBhdHRyaWJ1dGVzID0gYWRvcHROUyhbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6CiAgICAgICAgICAg
ICAgICAgcGFyYWdyYXBoU3R5bGUuZ2V0KCksIE5TUGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1l
LAogICAgICAgICAgICAgICAgIGZvbnQsIE5TRm9udEF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAg
ICBuaWxdKTsKLSAgICAgICAgICAgIGlmIChpdGVtc1tpXS5tX2hhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSkgeworICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLm1faXRlbVN0eWxlLmhhc1RleHREaXJl
Y3Rpb25PdmVycmlkZSgpKSB7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3
cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRo
SW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsK
ICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5
ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp3cml0aW5nRGlyZWN0
aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9i
amVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlv
bkF0dHJpYnV0ZU5hbWVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAppbmRleCA3OTFlOTQ3NmI4NDUyNDUxODkz
NGYxZmJjOGE5ZDIyNDdmMWE4OGFkLi45OWMwMzE3N2ExMGE4NzljMzVkYWYwNmEwZDM0MGMxZmQw
ZjZmYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUG9wdXBNZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcApAQCAtODYsNyArODYsNyBAQCBWZWN0b3I8V2ViUG9w
dXBJdGVtPiBXZWJQb3B1cE1lbnU6OnBvcHVsYXRlSXRlbXMoKQogICAgICAgICAgICAgLy8gRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBzdHlsaW5nIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5k
IGNvbG9ycy4KICAgICAgICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGN1c3RvbWl6ZSB0
ZXh0IGNvbG9yIHdoZW4gYW4gaXRlbSBpcyBoaWdobGlnaHRlZC4KICAgICAgICAgICAgIFBvcHVw
TWVudVN0eWxlIGl0ZW1TdHlsZSA9IG1fcG9wdXBDbGllbnQtPml0ZW1TdHlsZShpKTsKLSAgICAg
ICAgICAgIGl0ZW1zLmFwcGVuZChXZWJQb3B1cEl0ZW0oV2ViUG9wdXBJdGVtOjpJdGVtLCBtX3Bv
cHVwQ2xpZW50LT5pdGVtVGV4dChpKSwgaXRlbVN0eWxlLnRleHREaXJlY3Rpb24oKSwgaXRlbVN0
eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpLCBtX3BvcHVwQ2xpZW50LT5pdGVtVG9vbFRp
cChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0KGkpLCBtX3BvcHVwQ2xp
ZW50LT5pdGVtSXNFbmFibGVkKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNMYWJlbChpKSwgbV9w
b3B1cENsaWVudC0+aXRlbUlzU2VsZWN0ZWQoaSkpKTsKKyAgICAgICAgICAgIGl0ZW1zLmFwcGVu
ZChXZWJQb3B1cEl0ZW0oV2ViUG9wdXBJdGVtOjpJdGVtLCBtX3BvcHVwQ2xpZW50LT5pdGVtVGV4
dChpKSwgaXRlbVN0eWxlLCBtX3BvcHVwQ2xpZW50LT5pdGVtVG9vbFRpcChpKSwgbV9wb3B1cENs
aWVudC0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0KGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNFbmFi
bGVkKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNMYWJlbChpKSwgbV9wb3B1cENsaWVudC0+aXRl
bUlzU2VsZWN0ZWQoaSkpKTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>
<flag name="review"
          id="403291"
          type_id="1"
          status="?"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>