<?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>42592</bug_id>
          
          <creation_ts>2010-07-19 13:56:25 -0700</creation_ts>
          <short_desc>PopupMenu refactoring in preparation to WebKit2</short_desc>
          <delta_ts>2010-08-25 00:45:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43304</dependson>
    
    <dependson>43347</dependson>
          <blocked>43428</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Luiz Agostini">luiz</reporter>
          <assigned_to name="Luiz Agostini">luiz</assigned_to>
          <cc>abarth</cc>
    
    <cc>atwilson</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jcivelli</cc>
    
    <cc>jorlow</cc>
    
    <cc>kenneth</cc>
    
    <cc>pfeldman</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253379</commentid>
    <comment_count>0</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-19 13:56:25 -0700</bug_when>
    <thetext>PopupMenu refactoring in preparation to WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253395</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-19 14:34:01 -0700</bug_when>
    <thetext>Before you start working on this, can you briefly explain how you are planning on tackling this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253429</commentid>
    <comment_count>2</comment_count>
      <attachid>62004</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-19 15:32:22 -0700</bug_when>
    <thetext>Created attachment 62004
patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253434</commentid>
    <comment_count>3</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-19 15:40:14 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Before you start working on this, can you briefly explain how you are planning on tackling this?

The first patches will be just poof of concept to try to receive feedback.

I explained my objectives and what I have made so far in the change log of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253463</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 16:44:18 -0700</bug_when>
    <thetext>Attachment 62004 did not build on chromium:
Build output: http://queues.webkit.org/results/3578244</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253472</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 16:54:58 -0700</bug_when>
    <thetext>Attachment 62004 did not build on gtk:
Build output: http://queues.webkit.org/results/3609033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253492</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 17:52:40 -0700</bug_when>
    <thetext>Attachment 62004 did not build on win:
Build output: http://queues.webkit.org/results/3348908</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253561</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-19 22:53:39 -0700</bug_when>
    <thetext>This patch breaks the Chromium port.  Please don&apos;t commit this.

It seems wrong to delete PopupMenu.h.  If the goal is to provide an indirect way to request a popup menu, then interfaces should probably be added to do so, but the concrete implementation should remain (and be adapted to the interfaces).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253725</commentid>
    <comment_count>8</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-20 08:03:17 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This patch breaks the Chromium port.  Please don&apos;t commit this.

Sure I will not commit anything before I have a patch that does not break any platform. I submitted this patch just to show which are my plans and to try to get some feedback. My main questions are:

1 - Are the interfaces declared in SelectMethodClient.h ok? They will replace  PopupMenu and SearchPopupMenu.
2 - Is it ok for Chrome/ChromeClient to be responsible for providing the popup menu factory?
3 - Is it ok for all the platforms to move popup menu implementations to WebKit layer?

&gt; It seems wrong to delete PopupMenu.h.  If the goal is to provide an indirect way to request a popup menu, then interfaces should probably be added to do so, but the concrete implementation should remain (and be adapted to the interfaces).

PopupMenu.h is used by all the platforms and is full of preprocessor macros for each platform. I think that it could be removed and that each platform could have its own header containing just platform&apos;s fields, with no #if PLATFORM() in it. This is the first step.

If each platform have its own independent implementation, then it seems natural to me for Chrome/ChromeClient to be responsible for providing the popups. And it seems natural to move popups implementation to WebKit layer too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254405</commentid>
    <comment_count>9</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-21 10:41:16 -0700</bug_when>
    <thetext>Darin Adler, do you have any input on this approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254429</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-21 11:16:38 -0700</bug_when>
    <thetext>First thought: To me it seems overkill to have this new factory class. The ChromeClient already contains this type of function. Having a separate factory just for the pop-ups seems unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254431</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-21 11:21:25 -0700</bug_when>
    <thetext>There are two different ways we intend to do platform-specific work.

One is to make a platform independence layer inside the platform directory. The other is to use clients and delegate the work to platform-specific WebKit code.

When the requirement is simple enough we like to stick with the platform directory approach. However, a bad thing to avoid is to put the code in the platform directory, but then break the abstraction layer and effectively delegate to WebKit anyway, doing it &quot;at the bottom&quot; inside the platform directory code.

It seems OK to move to a client approach for pop-up menus if we can&apos;t practically do this with the platform directory layer. It does seem possible it would cause us to lose out on code sharing for cases where it could work. For example, if this decreases the ability for the Mac OS X port to share with the Chromium Mac port, that would be too bad.

It is nice when we can make platform independence something simple WebCore can handle without shipping everything over to the WebKit layer. It&apos;s too bad this case is no longer simple enough to do in the more straightforward way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254433</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-21 11:34:46 -0700</bug_when>
    <thetext>In case this isn&apos;t know, the way we handle popups in Chromium is as follows.  On Windows/Linux, a popup is actually rendered by WebCore (see platform/chromium/PopupMenuChromium.cpp).  All we need the WebKit layer to do is to provide us with a container for a ScrollView.  (We actually use a subclass of ScrollView called FramelessScrollView.)  That allows the UI process to position the popup window for us (it handles the HWND), and WebCore is given a ScrollView to render the popup menu contents into.  This works really well!

Now, on Mac, we have a different setup.  There we actually want to render the popup menu using Cocoa.  The call to the WebKit layer is in that case given all of the parameters needed to populate the popup menu, and it goes about rendering it in the UI process.

I would like us to find a solution that supports both models, just like we have done for Chromium.  I think it is nice to leverage WebCore when possible, but provide the option of rendering in a platform specific way.

One final note.  Even on OSX, we still let PopupMenuChromium do the rendering in cases where we do not want a Cocoa popup menu.  This happens for things like password autocomplete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254479</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-21 13:05:54 -0700</bug_when>
    <thetext>Just to explain why Luiz is working on this.

We cannot use the Chromium approach for Qt and WebKit2 as we wants to reimplement the UI on the UI side when targeting mobile devices which need special UI for select inputs, just like on the iPhone. Currently we [QtWebKit] have a platform plugin that each platform can implement we they want to override the default UI (based on QCombobox).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254493</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-21 13:32:34 -0700</bug_when>
    <thetext>OK, so how about if we define an interface for PopupMenu, and then let ChromeClient return a PopupMenu.  Then, allow for there to be implementations of PopupMenu in WebCore/platform just as we have today.  This also allows for the WebKit layer to provide its own implementation.  This should be a lot easier to implement since it will involve less disruption of other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255474</commentid>
    <comment_count>15</comment_count>
      <attachid>62449</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-23 11:01:18 -0700</bug_when>
    <thetext>Created attachment 62449
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255476</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-23 11:09:59 -0700</bug_when>
    <thetext>Attachment 62449 did not build on mac:
Build output: http://queues.webkit.org/results/3617050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255490</commentid>
    <comment_count>17</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-23 11:43:36 -0700</bug_when>
    <thetext>Darin Fisher, what do you think about this latest patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255516</commentid>
    <comment_count>18</comment_count>
      <attachid>62455</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-23 12:47:36 -0700</bug_when>
    <thetext>Created attachment 62455
patch 3

mac build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255556</commentid>
    <comment_count>19</comment_count>
      <attachid>62461</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-23 14:28:09 -0700</bug_when>
    <thetext>Created attachment 62461
patch 4

efl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255637</commentid>
    <comment_count>20</comment_count>
      <attachid>62484</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-23 20:09:35 -0700</bug_when>
    <thetext>Created attachment 62484
rebase

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256033</commentid>
    <comment_count>21</comment_count>
      <attachid>62570</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-26 07:19:34 -0700</bug_when>
    <thetext>Created attachment 62570
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256070</commentid>
    <comment_count>22</comment_count>
      <attachid>62570</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-26 09:40:15 -0700</bug_when>
    <thetext>Comment on attachment 62570
rebase

WebCore/page/ChromeClient.h:132
 +          virtual PassRefPtr&lt;SelectUIClient&gt; createSelectUIClient(PopupMenuClient*) const = 0;
I think it would be better to name these methods:

  createSelectPopupMenu
  createSearchPopupMenu

And, these should each take a PopupMenuClient* and return a PassRefPtr&lt;PopupMenu&gt;.
PopupMenu should be made an abstract interface.

If you look at PopupMenu.h today, it is a mess of #ifdefs.  There is very little
that is shared between the ports other than the interface itself.  So, making
PopupMenu be an interface makes sense.  The concrete class should be renamed:
PopupMenuWin, PopupMenuChromium, etc.

Doing so has a couple other nice properties:

 1- It avoids introducing new terminology (&quot;what is a select ui client?&quot;)
 2- It avoids a dependency from WebCore/platform on WebCore/page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256092</commentid>
    <comment_count>23</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-26 10:21:29 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 62570 [details])
&gt; WebCore/page/ChromeClient.h:132
&gt;  +          virtual PassRefPtr&lt;SelectUIClient&gt; createSelectUIClient(PopupMenuClient*) const = 0;
&gt; I think it would be better to name these methods:
&gt; 
&gt;   createSelectPopupMenu
&gt;   createSearchPopupMenu

Ok. I prefer these names as well.

&gt; 
&gt; And, these should each take a PopupMenuClient* and return a PassRefPtr&lt;PopupMenu&gt;.

Should PopupMenu implement all methods form SearchPopupMenu? Today they are different classes in webkit.

I would prefer SearchPopupMenu not to inherit from PopupMenu. The reason is that it would not be simple to inherit them in platforms without having an ambiguity in PopupMenu. This is why I chose not to use inheritance:

         PopupMenu   &lt;----------   MyPopupMenu
                   ^                                                    ^
                   |                                                     | (this arrow would be a problem)
                   |                                                     |
  SearchPopupMenu  &lt;------- MySearchPopupMenu

I do prefer not to use inheritance in this case. What do you think?

&gt; PopupMenu should be made an abstract interface.

That is what I have done but the names I chose were not so good (SelectUIClient, SearchUIClient). What do you think about AbstractPopupMenu and AbstractSearchPopupMenu. Or maybe PopupMenuInterface and SearchPopupMenuInterface.

&gt; 
&gt; If you look at PopupMenu.h today, it is a mess of #ifdefs.  There is very little
&gt; that is shared between the ports other than the interface itself.  So, making
&gt; PopupMenu be an interface makes sense.  The concrete class should be renamed:
&gt; PopupMenuWin, PopupMenuChromium, etc.

The whole idea is to create a PopupMenu interface. At first I was thinking in creating headers for each platform but after first comments in this bug I found it too disruptive for the platforms. To avoid big changes in PopupMenu.h I created an interface (SelectUIClient) and made PopupMenu inherit form it. Each platform may then remove its implementation from PopupMenu.h later if needed and/or wanted.

What if I keep this approach and find a better name for the interface?

&gt; 
&gt; Doing so has a couple other nice properties:
&gt; 
&gt;  1- It avoids introducing new terminology (&quot;what is a select ui client?&quot;)

SelectUIClient was not a good option. The choice is based on the fact that it may be not a popup. But I do agree the using popup in the name makes it more clear.

&gt;  2- It avoids a dependency from WebCore/platform on WebCore/page

Is keeping the interfaces definitions in platform ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256104</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-26 10:51:46 -0700</bug_when>
    <thetext>(In reply to comment #23)
...
&gt; &gt; And, these should each take a PopupMenuClient* and return a PassRefPtr&lt;PopupMenu&gt;.
&gt; 
&gt; Should PopupMenu implement all methods form SearchPopupMenu? Today they are different classes in webkit.
&gt; 
&gt; I would prefer SearchPopupMenu not to inherit from PopupMenu. The reason is that it would not be simple to inherit them in platforms without having an ambiguity in PopupMenu. This is why I chose not to use inheritance:
&gt; 
&gt;          PopupMenu   &lt;----------   MyPopupMenu
&gt;                    ^                                                    ^
&gt;                    |                                                     | (this arrow would be a problem)
&gt;                    |                                                     |
&gt;   SearchPopupMenu  &lt;------- MySearchPopupMenu
&gt; 
&gt; I do prefer not to use inheritance in this case. What do you think?

Virtual inheritance in C++ exists to support this use case, although it is
usually something that people avoid.

It looks like you used composition to solve this problem in SearchUIClient.
Perhaps the answer is to change SearchPopupMenu to have a popupMenu method
that returns a PopupMenu?


&gt; &gt; If you look at PopupMenu.h today, it is a mess of #ifdefs.  There is very little
&gt; &gt; that is shared between the ports other than the interface itself.  So, making
&gt; &gt; PopupMenu be an interface makes sense.  The concrete class should be renamed:
&gt; &gt; PopupMenuWin, PopupMenuChromium, etc.
&gt; 
&gt; The whole idea is to create a PopupMenu interface. At first I was thinking in creating headers for each platform but after first comments in this bug I found it too disruptive for the platforms. To avoid big changes in PopupMenu.h I created an interface (SelectUIClient) and made PopupMenu inherit form it. Each platform may then remove its implementation from PopupMenu.h later if needed and/or wanted.
&gt; 
&gt; What if I keep this approach and find a better name for the interface?

I think it is just a bunch of &quot;svn mv&quot; commands followed by renaming
the concrete class name.  I agree that it is tedious work, but it is
the right thing to do.


&gt; &gt;  2- It avoids a dependency from WebCore/platform on WebCore/page
&gt; 
&gt; Is keeping the interfaces definitions in platform ok?

Yes, definitely.  Sorry, I should have made this clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256364</commentid>
    <comment_count>25</comment_count>
      <attachid>62635</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-26 18:20:14 -0700</bug_when>
    <thetext>Created attachment 62635
just a test. please do not review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256545</commentid>
    <comment_count>26</comment_count>
      <attachid>62635</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-27 06:33:22 -0700</bug_when>
    <thetext>Comment on attachment 62635
just a test. please do not review.

Please don&apos;t set the review flag on stuff you don&apos;t want reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256546</commentid>
    <comment_count>27</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-27 06:39:57 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 62635 [details])
&gt; Please don&apos;t set the review flag on stuff you don&apos;t want reviewed.

I believe Luiz set the flag to find out whether his patch compiles on the different platforms as he doesn&apos;t have access to all. Unfortunately, there seem to be no other way of doing this right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256548</commentid>
    <comment_count>28</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-27 06:43:51 -0700</bug_when>
    <thetext>Oh.  Ugh.  There has to be a better way.

eric ^^^^^^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256744</commentid>
    <comment_count>29</comment_count>
      <attachid>62723</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-27 12:11:00 -0700</bug_when>
    <thetext>Created attachment 62723
patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256763</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-27 12:46:09 -0700</bug_when>
    <thetext>Attachment 62723 did not build on mac:
Build output: http://queues.webkit.org/results/3635040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256771</commentid>
    <comment_count>31</comment_count>
      <attachid>62730</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-27 12:57:24 -0700</bug_when>
    <thetext>Created attachment 62730
patch 6

rebase. mac build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256784</commentid>
    <comment_count>32</comment_count>
      <attachid>62735</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-27 13:19:59 -0700</bug_when>
    <thetext>Created attachment 62735
patch 7

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256797</commentid>
    <comment_count>33</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-27 13:37:48 -0700</bug_when>
    <thetext>Attachment 62735 did not build on mac:
Build output: http://queues.webkit.org/results/3605443</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256944</commentid>
    <comment_count>34</comment_count>
      <attachid>62774</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-27 17:04:47 -0700</bug_when>
    <thetext>Created attachment 62774
patch 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256950</commentid>
    <comment_count>35</comment_count>
      <attachid>62776</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-27 17:28:29 -0700</bug_when>
    <thetext>Created attachment 62776
patch 9

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257012</commentid>
    <comment_count>36</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-27 20:09:31 -0700</bug_when>
    <thetext>78 // bool PopupMenuBrew::itemWritingDirectionIsNatural()
 79 // {
 80 //     return true;
 81 // }

This seems like an error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257138</commentid>
    <comment_count>37</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-28 07:29:13 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; 78 // bool PopupMenuBrew::itemWritingDirectionIsNatural()
&gt;  79 // {
&gt;  80 //     return true;
&gt;  81 // }
&gt; 
&gt; This seems like an error.

This method is now in ChromeClient. In all other platforms I have updated the platform&apos;s ChromeClient, but there is no concrete ChromeClient inherited class for brew in repository.  I kept this method commented out just to prevent loosing the information of what must be the return value for brew.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257355</commentid>
    <comment_count>38</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-28 14:16:50 -0700</bug_when>
    <thetext>Darin Adler, do you have any comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257969</commentid>
    <comment_count>39</comment_count>
      <attachid>62776</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-29 16:35:10 -0700</bug_when>
    <thetext>Comment on attachment 62776
patch 9

Looks great overall.

Comments:

Are you sure you wouldn&apos;t want to make it valid for create{Search}PopupMenu
to return NULL?  Then you wouldn&apos;t need Empty{Search}PopupMenu.  It seems
reasonable for a Client to not create something.


&gt;+++ b/WebCore/page/Chrome.cpp
...
&gt;+PassRefPtr&lt;SearchPopupMenu&gt; Chrome::createSearchPopupMenu(PopupMenuClient* client) const
&gt;+{
&gt;+    return m_client-&gt;createSearchPopupMenu(client);
&gt;+}
&gt;+
&gt; 
&gt; } // namespace WebCore

nit: ^^^ only one new line before the close of the namespace


&gt;diff --git a/WebCore/platform/brew/PopupMenuBrew.cpp b/WebCore/platform/brew/PopupMenuBrew.cpp
...
&gt;+// bool PopupMenuBrew::itemWritingDirectionIsNatural()
&gt;+// {
&gt;+//     return true;
&gt;+// }

^^^ ordinarily bad form to leave code commented out without an explanation.  or
perhaps you intended to delete this?


&gt;diff --git a/WebCore/platform/brew/PopupMenuBrew.h b/WebCore/platform/brew/PopupMenuBrew.h
...
&gt;+class PopupMenuBrew : public PopupMenu {
...
&gt;+private:
&gt;+    PopupMenuClient* m_popupClient;
&gt;+    FrameView* m_view;
&gt;+
&gt;+    PopupMenuClient* client() const { return m_popupClient; }
&gt;+
&gt;+};

nit: ^^^ no new line before the &quot;};&quot;


&gt;+++ b/WebCore/platform/chromium/PopupMenuChromium.h
...
&gt;+class PopupMenuChromium : public PopupMenu {
&gt;+public:
&gt;+    PopupMenuChromium(PopupMenuClient*);
&gt;+    ~PopupMenuChromium();
&gt;+
&gt;+    virtual void show(const IntRect&amp;, FrameView*, int index);
&gt;+    virtual void hide();
&gt;+    virtual void updateFromElement();
&gt;+    virtual void disconnectClient();
&gt;+
&gt;+private:
&gt;+    PopupMenuClient* m_popupClient;
&gt;+    PopupMenuPrivate p;
&gt;+
&gt;+    PopupMenuClient* client() const { return m_popupClient; }
&gt;+};

PopupMenuPrivate is now unnecessary (it can be folded into PopupMenuChromium),
but that refactoring can happen in a separate patch, and you don&apos;t need to be
on the hook for it.


&gt;+++ b/WebCore/platform/efl/PopupMenuEfl.h
...
&gt;+private:
&gt;+    PopupMenuClient* m_popupClient;
&gt;+    FrameView* m_view;
&gt;+
&gt;+    PopupMenuClient* client() const { return m_popupClient; }
&gt;+
&gt;+};

nit: ^^^ no new line before &quot;};&quot;

Also, I think it is generally better form to list methods before
variables in the private section of a class.  This applies to the
other newly added classes in this patch.


&gt;+++ b/WebCore/platform/haiku/PopupMenuHaiku.h
...
&gt;+private:
&gt;+    PopupMenuClient* m_popupClient;
&gt;+    HaikuPopup* m_menu;
&gt;+
&gt;+    PopupMenuClient* client() const { return m_popupClient; }
&gt;+
&gt;+};

nit: ^^^ no new line before &quot;};&quot;


&gt;+++ b/WebCore/platform/wx/PopupMenuWx.h
...
&gt;+    PopupMenuClient* client() const { return m_popupClient; }
&gt;+
&gt;+};

nit: ^^^ no new line before &quot;};&quot;


&gt;+++ b/WebKit/chromium/src/ChromeClientImpl.cpp

&gt;+bool ChromeClientImpl::selectItemWritingDirectionIsNatural()
&gt;+{
&gt;+    return false;
&gt;+}
&gt;+
&gt;+PassRefPtr&lt;WebCore::PopupMenu&gt; ChromeClientImpl::createPopupMenu(WebCore::PopupMenuClient* client) const
&gt;+{
&gt;+    return adoptRef(new WebCore::PopupMenuChromium(client));
&gt;+}
&gt;+
&gt;+PassRefPtr&lt;WebCore::SearchPopupMenu&gt; ChromeClientImpl::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
&gt;+{
&gt;+    return adoptRef(new WebCore::SearchPopupMenuChromium(client));
&gt;+}

nit: ^^^ no need for the WebCore:: prefix in this file thanks to
the &apos;using namespace WebCore&apos; at the top of the file.


&gt;+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
...
&gt;@@ -1493,7 +1507,12 @@
&gt; 				E1EE55F811F8F1BC00CCBEE4 /* WKBundleRange.cpp in Sources */,
&gt; 				E1EE565611F8F71700CCBEE4 /* WKBundleNode.cpp in Sources */,
&gt; 				1AE4976911FF658E0048B464 /* NPJSObject.cpp in Sources */,
&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD:WebKit2/WebKit2.xcodeproj/project.pbxproj
&gt; 				1AE4987911FF7FAA0048B464 /* JSNPObject.cpp in Sources */,
&gt;+=======
&gt;+				D3B9484611FF4B6500032B39 /* WebPopupMenu.cpp in Sources */,
&gt;+				D3B9484811FF4B6500032B39 /* WebSearchPopupMenu.cpp in Sources */,
&gt;+&gt;&gt;&gt;&gt;&gt;&gt;&gt; PopupMenu refactoring in preparation to WebKit2:WebKit2/WebKit2.xcodeproj/project.pbxproj

^^^ oops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258292</commentid>
    <comment_count>40</comment_count>
      <attachid>63084</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-30 10:56:28 -0700</bug_when>
    <thetext>Created attachment 63084
patch 10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258338</commentid>
    <comment_count>41</comment_count>
      <attachid>63084</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-30 12:50:50 -0700</bug_when>
    <thetext>Comment on attachment 63084
patch 10

r=me, but would be nice to hear your thoughts to my first question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258347</commentid>
    <comment_count>42</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-30 13:23:45 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 62776 [details])
&gt; Looks great overall.
&gt; 
&gt; Comments:
&gt; 
&gt; Are you sure you wouldn&apos;t want to make it valid for create{Search}PopupMenu
&gt; to return NULL?  Then you wouldn&apos;t need Empty{Search}PopupMenu.  It seems
&gt; reasonable for a Client to not create something.

Sorry. I should have commented it before.

I am trying to keep RenderMenuList and RenderTextControlSingleLine as much as they were to avoid increasing even more the scope of this patch. I believe that to change those classes to accept NULL clients is a sensitive change. I prefer to avoid it for now.

I may work on it if you think it is needed but I would prefer to do it in future patches.

Thanks a lot for your comments and for reviewing such a big patch. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258356</commentid>
    <comment_count>43</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-30 13:39:02 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; I am trying to keep RenderMenuList and RenderTextControlSingleLine as much as they were to avoid increasing even more the scope of this patch. I believe that to change those classes to accept NULL clients is a sensitive change. I prefer to avoid it for now.
&gt; 
&gt; I may work on it if you think it is needed but I would prefer to do it in future patches.

Makes sense.  I think it is worth some thought (after this patch lands).  You might find that it makes for a cleaner solution, or maybe not.  Maybe the null checks required in consumer code would be too unpleasant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258631</commentid>
    <comment_count>44</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-31 13:20:01 -0700</bug_when>
    <thetext>Committed r64422: &lt;http://trac.webkit.org/changeset/64422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258634</commentid>
    <comment_count>45</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-31 13:49:59 -0700</bug_when>
    <thetext>This broke compilation on several platforms, please take a look at the buildbot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258635</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-31 13:54:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64422 might have broken Chromium Win Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258641</commentid>
    <comment_count>47</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-31 15:19:01 -0700</bug_when>
    <thetext>Rolled out. Preparing build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258642</commentid>
    <comment_count>48</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-31 15:26:24 -0700</bug_when>
    <thetext>Committed r64425: &lt;http://trac.webkit.org/changeset/64425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258861</commentid>
    <comment_count>49</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-02 07:42:01 -0700</bug_when>
    <thetext>You missed an adoptRef here: http://trac.webkit.org/changeset/64425/trunk/WebKit/chromium/tests/PopupMenuTest.cpp

I rolled this (and a bunch of other) changes into Chromium and had a lot of weird errors that I can&apos;t reproduce locally on my machine.  The only one that gave me a strong clue as to what was happening:
	base::(anonymous namespace)::StackDumpSignalHandler() [0x815bb30]
	0x4001c420
	WTF::RefCounted&lt;&gt;::~RefCounted() [0x889b6a6]
	WebCore::PopupMenu::~PopupMenu() [0x889b904]
	WebCore::PopupMenuChromium::~PopupMenuChromium() [0x889735c]
	WebCore::SearchPopupMenuChromium::~SearchPopupMenuChromium() [0x889d2fe]
	WTF::RefCounted&lt;&gt;::deref() [0x854d301]
	WTF::derefIfNotNull&lt;&gt;() [0x8a28850]
	WTF::RefPtr&lt;&gt;::operator=() [0x8a288fe]
	WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine() [0x8a27b64]
	WebCore::RenderObject::arenaDelete() [0x89f01b6]
	WebCore::RenderObject::destroy() [0x89f03aa]
	WebCore::RenderBoxModelObject::destroy() [0x899a77f]
	WebCore::RenderBox::destroy() [0x89911cd]
	WebCore::RenderBlock::destroy() [0x8962846]
	WebCore::Node::detach() [0x864abdc]
	WebCore::ContainerNode::detach() [0x85eee79]
	WebCore::Element::detach() [0x862d9d1]
	WebCore::HTMLInputElement::detach() [0x8728657]
	WebCore::ContainerNode::detach() [0x85eee4f]
	WebCore::Element::detach() [0x862d9d1]
	WebCore::ContainerNode::detach() [0x85eee4f]
	WebCore::Element::detach() [0x862d9d1]
	WebCore::ContainerNode::detach() [0x85eee4f]
	WebCore::Element::detach() [0x862d9d1]
	WebCore::ContainerNode::detach() [0x85eee4f]
	WebCore::Document::detach() [0x85fd524]
	WebCore::Frame::setView() [0x8858a8e]
	WebKit::WebFrameImpl::createFrameView() [0x84ee1de]
	WebKit::FrameLoaderClientImpl::makeDocumentView() [0x8563386]
	WebKit::FrameLoaderClientImpl::transitionToCommittedForNewPage() [0x8563399]
	WebCore::FrameLoader::transitionToCommitted() [0x87f402b]
	WebCore::FrameLoader::commitProvisionalLoad() [0x87f456c]
	WebCore::DocumentLoader::commitIfReady() [0x87e0535]
	WebCore::DocumentLoader::commitLoad() [0x87e055b]
	WebCore::DocumentLoader::receivedData() [0x87e05e8]
	WebCore::FrameLoader::receivedData() [0x87ee2c3]
	WebCore::MainResourceLoader::addData() [0x8801dc4]
	WebCore::ResourceLoader::didReceiveData() [0x880c2fd]
	WebCore::MainResourceLoader::didReceiveData() [0x8801338]
	WebCore::ResourceLoader::didReceiveData() [0x880ba1c]
	WebCore::ResourceHandleInternal::didReceiveData() [0x94c32e9]
	webkit_glue::WebURLLoaderImpl::Context::OnReceivedData() [0x909ef01]
	(anonymous namespace)::RequestProxy::NotifyReceivedData() [0x90ca101]
	DispatchToMethod&lt;&gt;() [0x90c62e0]
	RunnableMethod&lt;&gt;::Run() [0x90c6316]
	MessageLoop::RunTask() [0x814aff9]
	MessageLoop::DeferOrRunPendingTask() [0x814b0a5]
	MessageLoop::DoWork() [0x814b335]
	base::MessagePumpForUI::HandleDispatch() [0x818da54]
	(anonymous namespace)::WorkSourceDispatch() [0x818daac]
	0x4067ecf6
	0x406820b3
	0x4068266e
	base::MessagePumpForUI::RunWithDispatcher() [0x818e03b]
	base::MessagePumpForUI::Run() [0x818e977]
	MessageLoop::RunInternal() [0x814bb67]
	MessageLoop::RunHandler() [0x814bb81]
	MessageLoop::Run() [0x814bc25]
	TestShell::WaitTestFinished() [0x8052d2d]
	TestShell::RunFileTest() [0x805306b]

I know that this patch was a major pain to land, but I think I&apos;m going to need to speculatively roll it out.  I&apos;ll try to quickly confirm whether or not it was the actual cause of problems.

Sorry for the inconvenience!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259060</commentid>
    <comment_count>50</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-02 13:02:10 -0700</bug_when>
    <thetext>I&apos;ve got bad news.  It looks like my revert fixed the problems I was seeing on the bots, which means that this patch was indeed the culprit.  Before reverting, I skimmed through (which is how I saw the one memory leak I already pointed out), but I didn&apos;t see anything else.  The fact that this was only showing up as intermittent errors on only a couple of the bots (and I couldn&apos;t even reproduce it locally) means it&apos;s probably a race or memory issue of some sort.  Is there any weak reference/pointer in your code that might be getting accessed after the memory is freed or something?

I really wish I could point you towards more info, but unfortunately that roll is already off the console view of Chromium&apos;s waterfall, so I can only access it from work tomorrow.  I know that it won&apos;t be a whole lot of info to go on though.  And unfortunately there&apos;s no good way to try a change on the full battery of Chromium bots without committing to WebKit and then having someone &quot;roll&quot; in that set of WebKit changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259120</commentid>
    <comment_count>51</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-02 14:25:36 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; I&apos;ve got bad news.  It looks like my revert fixed the problems I was seeing on the bots, which means that this patch was indeed the culprit.  Before reverting, I skimmed through (which is how I saw the one memory leak I already pointed out), but I didn&apos;t see anything else.  The fact that this was only showing up as intermittent errors on only a couple of the bots (and I couldn&apos;t even reproduce it locally) means it&apos;s probably a race or memory issue of some sort.  Is there any weak reference/pointer in your code that might be getting accessed after the memory is freed or something?

Did the problem show up in release builds or just in debug builds? I guess that your local build, that never reproduced the issue, is a release build. Could you confirm it? Could it be the cause of an apparent intermittency? 

&gt; 
&gt; I really wish I could point you towards more info, but unfortunately that roll is already off the console view of Chromium&apos;s waterfall, so I can only access it from work tomorrow.  I know that it won&apos;t be a whole lot of info to go on though.  And unfortunately there&apos;s no good way to try a change on the full battery of Chromium bots without committing to WebKit and then having someone &quot;roll&quot; in that set of WebKit changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259129</commentid>
    <comment_count>52</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-02 14:48:51 -0700</bug_when>
    <thetext>(In reply to comment #51)
&gt; (In reply to comment #50)
&gt; &gt; I&apos;ve got bad news.  It looks like my revert fixed the problems I was seeing on the bots, which means that this patch was indeed the culprit.  Before reverting, I skimmed through (which is how I saw the one memory leak I already pointed out), but I didn&apos;t see anything else.  The fact that this was only showing up as intermittent errors on only a couple of the bots (and I couldn&apos;t even reproduce it locally) means it&apos;s probably a race or memory issue of some sort.  Is there any weak reference/pointer in your code that might be getting accessed after the memory is freed or something?
&gt; 
&gt; Did the problem show up in release builds or just in debug builds? I guess that your local build, that never reproduced the issue, is a release build. Could you confirm it? Could it be the cause of an apparent intermittency? 

The issues only showed up in debug builds.  Mostly with debug only assertions in a random set of tests.  1 layout test consistently failed on a mac bot.  2 layout tests failed half the time on a linux bot.  A couple other Chromium tests failed as well but had errors that didn&apos;t mean much to me at the time (I&apos;ll double check tomorrow).  I tried reproducing the mac error on my mac using a debug build but could not.  Most errors show up on our WebKit &quot;canaries&quot; (which run a good portion of our tests with tip of tree WebKit with tip of tree Chromium), but these did not.  It&apos;s actually pretty rare for us to see things like these in our main set of bots (build.chromium.org) and not on canaries or webkit.org bots.

I&apos;m on #webkit right now in case you have additional questions.  I&apos;ll do what research I can tomorrow when back in the office.  But I don&apos;t think I&apos;m going to have a ton of additional info or repro suggestions for you.  I&apos;m also happy to do another review of the code in case I can see something via inspection.

&gt; 
&gt; &gt; 
&gt; &gt; I really wish I could point you towards more info, but unfortunately that roll is already off the console view of Chromium&apos;s waterfall, so I can only access it from work tomorrow.  I know that it won&apos;t be a whole lot of info to go on though.  And unfortunately there&apos;s no good way to try a change on the full battery of Chromium bots without committing to WebKit and then having someone &quot;roll&quot; in that set of WebKit changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259133</commentid>
    <comment_count>53</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-02 14:51:51 -0700</bug_when>
    <thetext>Oh, also, at first I guessed that the issue was just flake but stuff consistently failed for several iterations and then went away when I rolled out the WebKit roll.  And stayed away when I rolled it again without your changes.  If we&apos;re really stumped, we can try committing the whole thing and rolling it in again (maybe Pavel can do it at night when things are otherwise nice and quiet?), but I&apos;m pretty sure we&apos;ll see the same issues come back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259244</commentid>
    <comment_count>54</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-02 18:43:58 -0700</bug_when>
    <thetext>Committed r64513: &lt;http://trac.webkit.org/changeset/64513&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259248</commentid>
    <comment_count>55</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-08-02 18:59:57 -0700</bug_when>
    <thetext>atwilson, pfeldman are you around?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269066</commentid>
    <comment_count>56</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-25 00:45:51 -0700</bug_when>
    <thetext>Removing this from the qtwebkit-2.1 master bug, as this isn&apos;t really needed for the release. We can reconsider if otherwise cherry-picks become really difficult.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62004</attachid>
            <date>2010-07-19 15:32:22 -0700</date>
            <delta_ts>2010-07-23 11:01:18 -0700</delta_ts>
            <desc>patch 1</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>111175</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA1NGYxZWFiOTZjZWJlMGExYmYzNDY4ZDEwMmM4ZThkNTE1YTkwMGRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IE1vbiwgMTkgSnVsIDIwMTAgMTk6Mjc6MjEgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzcyBQb3B1cE1lbnUgaXMgbm93IHVzZWQgdG8g
cHJvdmlkZSBwb3B1cCBpbXBsZW1lbnRhdGlvbiB0byBtZW51IGxpc3RzLiBJdCBpcwppbXBsZW1l
bnRlZCBpbiBXZWJDb3JlL3BsYXRmb3JtLiBBbGwgcGxhdGZvcm1zIHNoYXJlIHRoZSBzYW1lIGhl
YWRlciBmaWxlIGFuZCBpbmNsdWRlCnRoZSBuZWVkZWQgaXRlbXMgdG8gdGhlIGNsYXNzIHVzaW5n
IHByZXByb2Nlc3NvciBtYWNyb3MuIFRoZSBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzClBvcHVwTWVu
dSBhcmUgY3JlYXRlZCBieSBhbiBzdGF0aWMgbWV0aG9kLiBDbGFzcyBTZWFyY2hQb3B1cE1lbnUg
aW5oZXJpdHMgZnJvbSBQb3B1cE1lbnUuCgpUaGUgaWRlYSBpcyB0byByZXBsYWNlIGNsYXNzZXMg
UG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUgYnkgdGhlIHB1cmUgdmlydHVhbCBjbGFzc2Vz
ClNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhbmQgdG8gY3JlYXRlIGEgbmV3IGNs
YXNzIG5hbWVkIFNlbGVjdFVJQ2xpZW50RmFjdG9yeSB0bwpiZSB1c2VkIHRvIHByb3ZpZGUgaW5z
dGFjZXMgb2YgdGhlIFVJIGNsaWVudHMuCgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3b3VsZCB0
aGVuIGJlIHJlc3BvbnNpYmxlIHRvIHByb3ZpZGUgYW4gaW5zdGFuY2Ugb2YgY2xhc3MKU2VsZWN0
VUlDbGllbnRGYWN0b3J5IHRvIGJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS4gVGhpcwp3YXkgdGhlIGltcGxlbWVudGF0aW9ucyBvZiBtZW51
IGxpc3RzIHBvcHVwcyBtYXkgYmUgbW92ZWQgZnJvbSBXZWJDb3JlIHRvIFdlYktpdCBsYXllci4K
ClRoaXMgcGF0Y2ggY29udGFpbnMgdGhlIGNoYW5nZXMgZGVzY3JpYmVkIGFib3ZlIGFuZCwgYXMg
YSBwcm9vZiBvZiBjb25jZXB0LCB0aGlzIHBhdGNoIGhhcwpjaGFuZ2VkIFF0IGFuZCBNYWMgaW1w
bGVtZW50YXRpb25zLiBCZWZvcmUgcHJvY2VlZGluZyBJIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBz
b21lIGZlZWRiYWNrIG9mCm90aGVyIHdlYmtpdCBkZXZlbG9wZXJzLgoKQnVpbGQgc3lzdGVtIGlz
c3Vlcy4KCiogV2ViQ29yZS5leHAuaW46CiogV2ViQ29yZS5wcm86CiogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgoKVGhlIG5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RV
SUNsaWVudCwgU2VhcmNoVUlDbGllbnQgYW5kIFNlbGVjdFVJQ2xpZW50RmFjdG9yeSBhcmUKaW4g
ZmlsZSBTZWxlY3RNZXRob2RDbGllbnQuaC4KCiogV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENs
aWVudC5oOiBBZGRlZC4KClRvIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IGNsYXNzZXMgaGF2ZSBi
ZWVuIGFkZGVkIGEgbWV0aG9kIHRoYXQgcHJvdmlkZXMgYW4gaW5zdGFuY2Ugb2YKdGhlIGNsYXNz
IFNlbGVjdFVJQ2xpZW50RmFjdG9yeS4KCiogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgooV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNlbGVjdFVJQ2xpZW50RmFjdG9yeSk6CiogcGFnZS9DaHJv
bWUuY3BwOgooV2ViQ29yZTo6Q2hyb21lOjpzZWxlY3RVSUNsaWVudEZhY3RvcnkpOgoqIHBhZ2Uv
Q2hyb21lLmg6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKCkZpbGUgUG9wdXBNZW51LmggYW5kIFNl
YXJjaFBvcHVwTWVudS5oIGhhdmUgYmVlbiBkZWxldGVkLiBUaGUgY2xhc3NlcyBpbiB0aG9zZSBm
aWxlcyBoYXZlCmJlZW4gcmVwbGFjZWQgYnkgdGhlIGNsYXNzZXMgZGVjbGFyZWQgaW4gZmlsZSBT
ZWxlY3RNZXRob2RDbGllbnQuaC4KCiogcGxhdGZvcm0vUG9wdXBNZW51Lmg6IFJlbW92ZWQuCiog
cGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6IFJlbW92ZWQuCgpGaWxlcyBQb3B1cE1lbnVNYWMu
bW0gYW5kIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBoYXZlIGJlZW4gbW92ZWQgdG8gV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC4KCiogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbTogUmVtb3Zl
ZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOiBSZW1vdmVkLgoKRmlsZXMg
UG9wdXBNZW51UXQuY3BwIGFuZCBTZWFyY2hQb3B1cE1lbnVRdC5jcHAgaGF2ZSBiZWVuIGRlbGV0
ZWQuIFRoZWlyIGZ1bmN0aW9uYWxpdGllcyBhcmUKbm93IGltcGxlbWVudGVkIGluIGZpbGUgV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0U2VsZWN0TWV0aG9kQ2xpZW50LmNwcC4KCiogcGxhdGZv
cm0vcXQvUG9wdXBNZW51UXQuY3BwOiBSZW1vdmVkLgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVw
TWVudVF0LmNwcDogUmVtb3ZlZC4KCkZpbGVzIFF0QWJzdHJhY3RXZWJQb3B1cC4qIGhhdmUgYmVl
biBtb3ZlZCB0byBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQuCgoqIHBsYXRmb3JtL3F0L1F0QWJz
dHJhY3RXZWJQb3B1cC5oOiBSZW1vdmVkLgoKUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSB3ZXJlIHRoZSB1c2VycyBvZiBjbGFzcyBQb3B1cE1lbnUuIFRoZXkK
aGF2ZSBiZWVuIGNoYW5nZWQgdG8gdXNlIHRoZSBjbGFzc2VzIGluIGZpbGUgU2VsZWN0TWV0aG9k
Q2xpZW50LmguCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6
c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJDb3JlOjpSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJDb3JlOjpSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNyZWF0ZVVJQ2xpZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKToKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQpOgoqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaDoKCldlYktpdDoKCiogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CgpXZWJLaXQvbWFjOgoKRmlsZXMgUG9wdXBNZW51TWFjLm1tIGFuZCBTZWFyY2hQb3B1cE1l
bnVNYWMubW0gaGF2ZSBiZWVuIG1vdmVkIGZyb20gV2ViQ29yZSB0byBXZWJLaXQgbGF5ZXIuClRo
ZXkganVzdCBoYXZlIG1pbm9yIGNoYW5nZXMuIEhlYWRlcnMgUG9wdXBNZW51TWFjLmggYW5kIFNl
YXJjaFBvcHVwTWVudU1hYy5oIGhhdmUgYmVlbiBhZGRlZC4KCiogV2ViQ29yZVN1cHBvcnQvUG9w
dXBNZW51TWFjLmg6IEFkZGVkLgooUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKFBvcHVw
TWVudTo6Y2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06IEFkZGVkLgoo
UG9wdXBNZW51OjpQb3B1cE1lbnUpOgooUG9wdXBNZW51Ojp+UG9wdXBNZW51KToKKFBvcHVwTWVu
dTo6Y2xlYXIpOgooUG9wdXBNZW51Ojpwb3B1bGF0ZSk6CihQb3B1cE1lbnU6OnNob3cpOgooUG9w
dXBNZW51OjpoaWRlKToKKFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgooUG9wdXBNZW51
OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogV2ViQ29yZVN1cHBvcnQvU2VhcmNo
UG9wdXBNZW51TWFjLmg6IEFkZGVkLgoqIFdlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudU1h
Yy5tbTogQWRkZWQuCihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6
CihXZWJDb3JlOjphdXRvc2F2ZUtleSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OmVuYWJs
ZWQpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2Vi
Q29yZTo6U2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgoKTWV0aG9kIHNlbGVj
dFVJQ2xpZW50RmFjdG9yeSBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgaW4gY2xhc3MgV2ViQ2hyb21l
Q2xpZW50LgpJdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcyBXZWJTZWxlY3RVSUNs
aWVudEZhY3RvcnkuCgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgooV2ViQ2hy
b21lQ2xpZW50OjpzZWxlY3RVSUNsaWVudEZhY3RvcnkpOgoKQ2xhc3NlcyBXZWJTZWxlY3RVSUNs
aWVudCwgV2ViU2VhcmNoVUlDbGllbnQgYW5kIFdlYlNlbGVjdFVJQ2xpZW50RmFjdG9yeSBoYXZl
IGJlZW4KaW1wbGVtZW50ZWQuIFdlYlNlbGVjdFVJQ2xpZW50IGFuZCBXZWJTZWFyY2hVSUNsaWVu
dCBhcmUganVzdCB1c2VycyBvZiBjbGFzc2VzIFBvcHVwTWVudQphbmQgU2VhcmNoUG9wdXBNZW51
IHJlc3BlY3RpdmVsbHkuIFRoZXNlIGxhdGVzdCBvbmVzIGhhdmUganVzdCBiZWVuIG1vdmVkIGZy
b20gV2ViQ29yZSB0bwpXZWJLaXQgbGF5ZXIuCgoqIFdlYkNvcmVTdXBwb3J0L1dlYlNlbGVjdE1l
dGhvZENsaWVudC5oOiBBZGRlZC4KKiBXZWJDb3JlU3VwcG9ydC9XZWJTZWxlY3RNZXRob2RDbGll
bnQubW06IEFkZGVkLgooV2ViU2VsZWN0VUlDbGllbnQ6OldlYlNlbGVjdFVJQ2xpZW50KToKKFdl
YlNlbGVjdFVJQ2xpZW50OjpzaG93KToKKFdlYlNlbGVjdFVJQ2xpZW50OjpoaWRlKToKKFdlYlNl
bGVjdFVJQ2xpZW50Ojp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJTZWxlY3RVSUNsaWVudDo6ZGlz
Y29ubmVjdENsaWVudCk6CihXZWJTZWFyY2hVSUNsaWVudDo6V2ViU2VhcmNoVUlDbGllbnQpOgoo
V2ViU2VhcmNoVUlDbGllbnQ6OnNlbGVjdFVJQ2xpZW50KToKKFdlYlNlYXJjaFVJQ2xpZW50Ojpz
YXZlUmVjZW50U2VhcmNoZXMpOgooV2ViU2VhcmNoVUlDbGllbnQ6OmxvYWRSZWNlbnRTZWFyY2hl
cyk6CihXZWJTZWFyY2hVSUNsaWVudDo6ZW5hYmxlZCk6CihXZWJTZWxlY3RVSUNsaWVudEZhY3Rv
cnk6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYlNlbGVjdFVJQ2xpZW50RmFj
dG9yeTo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgooV2ViU2VsZWN0VUlDbGllbnRGYWN0b3J5Ojpj
cmVhdGVTZWFyY2hVSUNsaWVudCk6CgpXZWJLaXQvcXQ6CgpNZXRob2Qgc2VsZWN0VUlDbGllbnRG
YWN0b3J5IGhhdmUgYmVlbiBpbXBsZW1lbnRlZCBpbiBjbGFzcyBDaHJvbWVDbGllbnRRdC4KSXQg
cmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgUXRTZWxlY3RVSUNsaWVudEZhY3Rvcnku
CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNs
aWVudFF0OjpzZWxlY3RVSUNsaWVudEZhY3RvcnkpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0Lmg6CgpRdEFic3RyYWN0V2ViUG9wdXAgaGF2ZSBiZWVuIG1vdmVkIGZyb20gV2ViQ29y
ZSB0byBXZWJLaXQgbGF5ZXIuCgoqIFdlYkNvcmVTdXBwb3J0L1F0QWJzdHJhY3RXZWJQb3B1cC5j
cHA6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5j
cHAuCihXZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6OlF0QWJzdHJhY3RXZWJQb3B1cCk6CihX
ZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6On5RdEFic3RyYWN0V2ViUG9wdXApOgooV2ViQ29y
ZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjpwb3B1cERpZEhpZGUpOgooV2ViQ29yZTo6UXRBYnN0cmFj
dFdlYlBvcHVwOjp2YWx1ZUNoYW5nZWQpOgooV2ViQ29yZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjpz
ZWxlY3RJdGVtKToKKFdlYkNvcmU6OlF0QWJzdHJhY3RXZWJQb3B1cDo6bXVsdGlwbGUpOgooV2Vi
Q29yZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjppdGVtVHlwZSk6CiogV2ViQ29yZVN1cHBvcnQvUXRB
YnN0cmFjdFdlYlBvcHVwLmg6IEFkZGVkLgooV2ViQ29yZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjop
OgooV2ViQ29yZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjppdGVtVGV4dCk6CihXZWJDb3JlOjpRdEFi
c3RyYWN0V2ViUG9wdXA6Oml0ZW1Ub29sVGlwKToKKFdlYkNvcmU6OlF0QWJzdHJhY3RXZWJQb3B1
cDo6aXRlbUlzRW5hYmxlZCk6CihXZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6Oml0ZW1Db3Vu
dCk6CihXZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6Oml0ZW1Jc1NlbGVjdGVkKToKKFdlYkNv
cmU6OlF0QWJzdHJhY3RXZWJQb3B1cDo6cGFnZUNsaWVudCk6CihXZWJDb3JlOjpRdEFic3RyYWN0
V2ViUG9wdXA6Omdlb21ldHJ5KToKKFdlYkNvcmU6OlF0QWJzdHJhY3RXZWJQb3B1cDo6Y3VycmVu
dEluZGV4KToKKFdlYkNvcmU6OlF0QWJzdHJhY3RXZWJQb3B1cDo6Zm9udCk6CgpDbGFzc2VzIFF0
U2VsZWN0VUlDbGllbnQsIFF0U2VhcmNoVUlDbGllbnQgYW5kIFF0U2VsZWN0VUlDbGllbnRGYWN0
b3J5IGhhdmUgYmVlbgppbXBsZW1lbnRlZC4gUXRTZWxlY3RVSUNsaWVudCBhbmQgUXRTZWFyY2hV
SUNsaWVudCBoYXZlIHRoZSBjb2RlIHRoYXQgd2VyZSBpbiBjbGFzc2VzIFBvcHVwTWVudQphbmQg
U2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVsbHkuIFRoZXNlIGxhdGVzdCBvbmVzIGhhdmUganVz
dCBiZWVuIGRlbGV0ZWQuCgoqIFdlYkNvcmVTdXBwb3J0L1F0U2VsZWN0TWV0aG9kQ2xpZW50LmNw
cDogQWRkZWQuCihXZWJDb3JlOjpRdFNlbGVjdFVJQ2xpZW50OjpzaG93KToKKFdlYkNvcmU6OlF0
U2VsZWN0VUlDbGllbnQ6OmhpZGUpOgooV2ViQ29yZTo6UXRTZWxlY3RVSUNsaWVudDo6dXBkYXRl
RnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UXRTZWxlY3RVSUNsaWVudDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpRdFNlYXJjaFVJQ2xpZW50OjpzZWxlY3RVSUNsaWVudCk6CihXZWJDb3Jl
OjpRdFNlYXJjaFVJQ2xpZW50OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6UXRTZWFy
Y2hVSUNsaWVudDo6bG9hZFJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlF0U2VhcmNoVUlDbGll
bnQ6OmVuYWJsZWQpOgooV2ViQ29yZTo6UXRTZWxlY3RVSUNsaWVudEZhY3Rvcnk6Oml0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OlF0U2VsZWN0VUlDbGllbnRGYWN0b3J5
OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CihXZWJDb3JlOjpRdFNlbGVjdFVJQ2xpZW50RmFjdG9y
eTo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgoqIFdlYkNvcmVTdXBwb3J0L1F0U2VsZWN0TWV0aG9k
Q2xpZW50Lmg6IEFkZGVkLgooV2ViQ29yZTo6UXRTZWxlY3RVSUNsaWVudDo6UXRTZWxlY3RVSUNs
aWVudCk6CihXZWJDb3JlOjpRdFNlYXJjaFVJQ2xpZW50OjpRdFNlYXJjaFVJQ2xpZW50KToKLS0t
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
ODMgKysrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMiArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDkgKy0KIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qICAgICAgICAgIHwgICAxNCArLQogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvcGFnZS9T
ZWxlY3RNZXRob2RDbGllbnQuaCAgICAgICAgICAgICAgICAgIHwgICA0NSArKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL1BvcHVwTWVudS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyMDAgLS0tLS0t
LS0tLS0tLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCAgICAgICAg
ICAgICAgICAgfCAgIDQ2IC0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMu
bW0gICAgICAgICAgICAgICB8ICAyMTEgLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvcGxh
dGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbSAgICAgICAgIHwgICA3NCAtLS0tLS0tCiBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCAgICAgICAgICAgICAgICB8ICAgODcg
LS0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmNwcCAgICAg
ICAgIHwgICA4MiAtLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9w
dXAuaCAgICAgICAgICAgfCAgIDc1IC0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuY3BwICAgICAgICAgIHwgICA0NSAtLS0tCiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAgICAgICAgICAgICAgICB8ICAgMTYgKy0KIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCAgfCAgIDI0ICsrLQogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggICAgfCAgICA2ICst
CiBXZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjYgKysrCiBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAg
ICB8ICAgMjQgKysrCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgNzQgKysrKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVNYWMuaCAgICAgICAgICAgfCAgIDM5ICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
UG9wdXBNZW51TWFjLm1tICAgICAgICAgIHwgIDE5NyArKysrKysrKysrKysrKysrKysKIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFjLmggICAgIHwgICAyNCArKysK
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFjLm1tICAgIHwgICA3
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAg
ICAgICB8ICAgIDQgKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTZWxlY3RNZXRob2RD
bGllbnQuaCAgfCAgIDQwICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU2VsZWN0
TWV0aG9kQ2xpZW50Lm1tIHwgICA2OCArKysrKysrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzMgKysrKysrKwogV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCAgICAgICAgfCAgICA1ICsKIFdlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAgICAgICAgIHwgICAgNSArCiBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUXRBYnN0cmFjdFdlYlBvcHVwLmNwcCAgICB8ICAgODIgKysrKysr
KysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEFic3RyYWN0V2ViUG9wdXAuaCAgICAgIHwg
ICA3NSArKysrKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRTZWxlY3RNZXRob2RDbGll
bnQuY3BwICB8ICAgODkgKysrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFNlbGVj
dE1ldGhvZENsaWVudC5oICAgIHwgICA0OSArKysrKwogMzggZmlsZXMgY2hhbmdlZCwgMTEzMiBp
bnNlcnRpb25zKCspLCA4NTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29y
ZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9w
bGF0Zm9ybS9Qb3B1cE1lbnUuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0v
U2VhcmNoUG9wdXBNZW51LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9Qb3B1cE1lbnVNYWMubW0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRm
b3JtL3F0L1BvcHVwTWVudVF0LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUv
cGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFjLmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVw
TWVudU1hYy5tbQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViU2VsZWN0TWV0aG9kQ2xpZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlNlbGVjdE1ldGhvZENsaWVudC5tbQogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEFic3RyYWN0V2ViUG9wdXAuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0QWJzdHJhY3RXZWJQb3B1cC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0U2VsZWN0TWV0
aG9kQ2xpZW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9RdFNlbGVjdE1ldGhvZENsaWVudC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGIwYTdhLi44YmYyZGEyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBA
CisyMDEwLTA3LTE5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVw
TWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIENsYXNz
IFBvcHVwTWVudSBpcyBub3cgdXNlZCB0byBwcm92aWRlIHBvcHVwIGltcGxlbWVudGF0aW9uIHRv
IG1lbnUgbGlzdHMuIEl0IGlzIAorICAgICAgICBpbXBsZW1lbnRlZCBpbiBXZWJDb3JlL3BsYXRm
b3JtLiBBbGwgcGxhdGZvcm1zIHNoYXJlIHRoZSBzYW1lIGhlYWRlciBmaWxlIGFuZCBpbmNsdWRl
CisgICAgICAgIHRoZSBuZWVkZWQgaXRlbXMgdG8gdGhlIGNsYXNzIHVzaW5nIHByZXByb2Nlc3Nv
ciBtYWNyb3MuIFRoZSBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzCisgICAgICAgIFBvcHVwTWVudSBh
cmUgY3JlYXRlZCBieSBhbiBzdGF0aWMgbWV0aG9kLiBDbGFzcyBTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdHMgZnJvbSBQb3B1cE1lbnUuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gcmVwbGFjZSBj
bGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGJ5IHRoZSBwdXJlIHZpcnR1YWwg
Y2xhc3NlcworICAgICAgICBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgYW5kIHRv
IGNyZWF0ZSBhIG5ldyBjbGFzcyBuYW1lZCBTZWxlY3RVSUNsaWVudEZhY3RvcnkgdG8KKyAgICAg
ICAgYmUgdXNlZCB0byBwcm92aWRlIGluc3RhY2VzIG9mIHRoZSBVSSBjbGllbnRzLgorCisgICAg
ICAgIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IHdvdWxkIHRoZW4gYmUgcmVzcG9uc2libGUgdG8g
cHJvdmlkZSBhbiBpbnN0YW5jZSBvZiBjbGFzcworICAgICAgICBTZWxlY3RVSUNsaWVudEZhY3Rv
cnkgdG8gYmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdCBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLiBUaGlzCisgICAgICAgIHdheSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIG1lbnUgbGlz
dHMgcG9wdXBzIG1heSBiZSBtb3ZlZCBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0IGxheWVyLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggY29udGFpbnMgdGhlIGNoYW5nZXMgZGVzY3JpYmVkIGFib3ZlIGFu
ZCwgYXMgYSBwcm9vZiBvZiBjb25jZXB0LCB0aGlzIHBhdGNoIGhhcworICAgICAgICBjaGFuZ2Vk
IFF0IGFuZCBNYWMgaW1wbGVtZW50YXRpb25zLiBCZWZvcmUgcHJvY2VlZGluZyBJIHdvdWxkIGxp
a2UgdG8gcmVjZWl2ZSBzb21lIGZlZWRiYWNrIG9mCisgICAgICAgIG90aGVyIHdlYmtpdCBkZXZl
bG9wZXJzLgorCisgICAgICAgIEJ1aWxkIHN5c3RlbSBpc3N1ZXMuCisKKyAgICAgICAgKiBXZWJD
b3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgVGhlIG5ldyBwdXJlIHZpcnR1YWwg
Y2xhc3NlcyBTZWxlY3RVSUNsaWVudCwgU2VhcmNoVUlDbGllbnQgYW5kIFNlbGVjdFVJQ2xpZW50
RmFjdG9yeSBhcmUKKyAgICAgICAgaW4gZmlsZSBTZWxlY3RNZXRob2RDbGllbnQuaC4KKworICAg
ICAgICAqIFdlYkNvcmUvcGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaDogQWRkZWQuCisKKyAgICAg
ICAgVG8gQ2hyb21lIGFuZCBDaHJvbWVDbGllbnQgY2xhc3NlcyBoYXZlIGJlZW4gYWRkZWQgYSBt
ZXRob2QgdGhhdCBwcm92aWRlcyBhbiBpbnN0YW5jZSBvZgorICAgICAgICB0aGUgY2xhc3MgU2Vs
ZWN0VUlDbGllbnRGYWN0b3J5LgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNlbGVjdFVJQ2xpZW50RmFjdG9y
eSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
OjpzZWxlY3RVSUNsaWVudEZhY3RvcnkpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKworICAgICAgICBGaWxlIFBvcHVwTWVudS5oIGFu
ZCBTZWFyY2hQb3B1cE1lbnUuaCBoYXZlIGJlZW4gZGVsZXRlZC4gVGhlIGNsYXNzZXMgaW4gdGhv
c2UgZmlsZXMgaGF2ZQorICAgICAgICBiZWVuIHJlcGxhY2VkIGJ5IHRoZSBjbGFzc2VzIGRlY2xh
cmVkIGluIGZpbGUgU2VsZWN0TWV0aG9kQ2xpZW50LmguCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
b3B1cE1lbnUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUu
aDogUmVtb3ZlZC4KKworICAgICAgICBGaWxlcyBQb3B1cE1lbnVNYWMubW0gYW5kIFNlYXJjaFBv
cHVwTWVudU1hYy5tbSBoYXZlIGJlZW4gbW92ZWQgdG8gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW06IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbTogUmVtb3ZlZC4KKwor
ICAgICAgICBGaWxlcyBQb3B1cE1lbnVRdC5jcHAgYW5kIFNlYXJjaFBvcHVwTWVudVF0LmNwcCBo
YXZlIGJlZW4gZGVsZXRlZC4gVGhlaXIgZnVuY3Rpb25hbGl0aWVzIGFyZQorICAgICAgICBub3cg
aW1wbGVtZW50ZWQgaW4gZmlsZSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRTZWxlY3RNZXRo
b2RDbGllbnQuY3BwLgorCisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDogUmVt
b3ZlZC4KKworICAgICAgICBGaWxlcyBRdEFic3RyYWN0V2ViUG9wdXAuKiBoYXZlIGJlZW4gbW92
ZWQgdG8gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0LgorCisgICAgICAgICogcGxhdGZvcm0vcXQv
UXRBYnN0cmFjdFdlYlBvcHVwLmg6IFJlbW92ZWQuCisKKyAgICAgICAgUmVuZGVyTWVudUxpc3Qg
YW5kIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSB3ZXJlIHRoZSB1c2VycyBvZiBjbGFzcyBQ
b3B1cE1lbnUuIFRoZXkKKyAgICAgICAgaGF2ZSBiZWVuIGNoYW5nZWQgdG8gdXNlIHRoZSBjbGFz
c2VzIGluIGZpbGUgU2VsZWN0TWV0aG9kQ2xpZW50LmguCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmFk
anVzdElubmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNob3dQ
b3B1cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjph
ZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lOjpjcmVhdGVVSUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTAtMDctMTkg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhbiBhc3NlcnRp
b24gd2hlbiBhIHBsdWdpbiByZXR1cm5zIC0xIGZyb20gTlBQX1dyaXRlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA0NWFk
ODNjLi4yYzkxMmYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEzNCw2ICsxMzQsNyBAQCBfX1o0Y29yZVAyMkRPTUNT
U1N0eWxlRGVjbGFyYXRpb24KIF9fWjRjb3JlUDdET01Ob2RlCiBfX1o0Y29yZVA4RE9NUmFuZ2UK
IF9fWk4zSlNDOEJpbmRpbmdzOEluc3RhbmNlMTZuZXdSdW50aW1lT2JqZWN0RVBOU185RXhlY1N0
YXRlRQorX19aTks3V2ViQ29yZTRGb250ZXFFUktTMF8KIF9fWk43V2ViQ29yZTEwTW91c2VFdmVu
dEMxRVJLTlNfMTJBdG9taWNTdHJpbmdFYmJOM1dURjEwUGFzc1JlZlB0cklOU185RE9NV2luZG93
RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVF
RWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2ZVNjcm9sbGJhcnNFYgogX19a
TjdXZWJDb3JlMTBTdHJpbmdJbXBsMTRjcmVhdGVDRlN0cmluZ0V2CkBAIC0yMjQsNiArMjI1LDcg
QEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXI3bW91c2VVcEVQN05TRXZlbnQKIF9fWk43V2Vi
Q29yZTEyRXZlbnRIYW5kbGVyOGtleUV2ZW50RVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVu
dEhhbmRsZXI4a2V5RXZlbnRFUktOU18yMVBsYXRmb3JtS2V5Ym9hcmRFdmVudEUKIF9fWk43V2Vi
Q29yZTEyRXZlbnRIYW5kbGVyOW1vdXNlRG93bkVQN05TRXZlbnQKK19fWk43V2ViQ29yZTEyRXZl
bnRIYW5kbGVyMzNzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmdFUDdOU0V2ZW50CiBf
X1pON1dlYkNvcmUxMkdDQ29udHJvbGxlcjE3Z2FyYmFnZUNvbGxlY3ROb3dFdgogX19aTjdXZWJD
b3JlMTJHQ0NvbnRyb2xsZXI0M2dhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1
Z2dpbmdFYgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2UxMHNldEVuYWJsZWRFYgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYzE3
NzYwMy4uYzQyNDc4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0xNTk2LDYgKzE1OTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
YWdlL1ByaW50Q29udGV4dC5oIFwKICAgICBwYWdlL1NjcmVlbi5oIFwKICAgICBwYWdlL1NlY3Vy
aXR5T3JpZ2luLmggXAorICAgIHBhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmggXAogICAgIHBhZ2Uv
U2V0dGluZ3MuaCBcCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oIFwKICAgICBwYWdlL1Nw
ZWVjaElucHV0LmggXApAQCAtMTY5Niw3ICsxNjk3LDYgQEAgSEVBREVSUyArPSBcCiAgICAgcGxh
dGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmggXAogICAgIHBsYXRmb3JtL3F0L0NsaXBib2FyZFF0
LmggXAogICAgIHBsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmggXAotICAgIHBsYXRmb3JtL3F0
L1F0QWJzdHJhY3RXZWJQb3B1cC5oIFwKICAgICBwbGF0Zm9ybS9xdC9RdFN0eWxlT3B0aW9uV2Vi
Q29tYm9Cb3guaCBcCiAgICAgcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oIFwKICAgICBwbGF0
Zm9ybS9xdC9TY3JvbGxiYXJUaGVtZVF0LmggXApAQCAtMjExOSwxMSArMjExOSwxMyBAQCBIRUFE
RVJTICs9IFwKICAgICB4bWwvWFNMVFByb2Nlc3Nvci5oIFwKICAgICB4bWwvWFNMVFVuaWNvZGVT
b3J0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9BcGkvcXdlYnBsdWdpbmRhdGFiYXNlX3Au
aCBcCisgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFj
a1dlYlBvcHVwLmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmggXAorICAgICQkUFdELy4uL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9RdFNlbGVjdE1ldGhvZENsaWVudC5oIFwKICAgICAkJFBXRC9w
bGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmgKIAogU09VUkNFUyArPSBcCkBA
IC0yMTg2LDEzICsyMTg4LDEwIEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3F0L1BsYXRm
b3JtU2NyZWVuUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5j
cHAgXAogICAgIHBsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hQb2ludFF0LmNwcCBcCi0gICAgcGxh
dGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwIFwKLSAgICBwbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2Vi
UG9wdXAuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcCBcCiAgICAgcGxh
dGZvcm0vcXQvU2Nyb2xsYmFyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9TY3JvbGxiYXJUaGVt
ZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNwcCBcCi0gICAgcGxhdGZv
cm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9TaGFyZWRUaW1l
clF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvU291bmRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0
L0xvZ2dpbmdRdC5jcHAgXApAQCAtMjIwMyw2ICsyMjAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
cGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvV2lkZ2V0UXQu
Y3BwIFwKICAgICBwbHVnaW5zL3F0L1BsdWdpbkRhdGFRdC5jcHAgXAorICAgIC4uL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdEFic3RyYWN0V2ViUG9wdXAuY3BwIFwKICAgICAuLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNwcCBcCiAgICAgLi4vV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50UXQuY3BwIFwKQEAgLTIyMTUsNiArMjIx
NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3Rp
ZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9QYWdlQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUXRQbGF0Zm9ybVBsdWdpbi5jcHAgXAorICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9RdFNlbGVjdE1ldGhvZENsaWVudC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcCBcCiAg
ICAgLi4vV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyODVlNTA0Li5hNTgwZjIyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDMsNyArNDMsNiBAQAogCQkwNjVB
RDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEYzMEIwQzJFREEw
MDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQkwNjVBRDRGNzBC
MEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGNDBCMEMyRURBMDA1QTJCMUQg
LyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVu
dS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUx
ODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICovOyB9OwotCQkwNjY4RTE5MDBBREQ5
NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVu
dU1hYy5tbSAqLzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZDNzcy
QTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjZDNzcyRDBBQjYwM0QyMDAyMzhDQzQgLyog
RmlsZUNob29zZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gKi87
IH07CiAJCTA2NkM3NzMwMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZD
NzcyRTBBQjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwICovOyB9
OwpAQCAtMzU3MiwxMSArMzU3MSwxMCBAQAogCQlBQjY3RDFBODA5N0YzQUUzMDBGOTM5MkUgLyog
UmVuZGVyVGV4dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9s
LmNwcCAqLzsgfTsKIAkJQUI2N0QxQTkwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250
cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3
RDFBNzA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuaCAqLzsgfTsKIAkJQUI3
MTcwODkwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNF
IC8qIFNlYXJjaFBvcHVwTWVudS5oICovOyB9OwotCQlBQjcxNzBBMDBCMzExOTNCMDAxNzEyM0Ug
LyogU2VhcmNoUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUI3MTcwOUYwQjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVu
dU1hYy5tbSAqLzsgfTsKIAkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQUYyMjA3
MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gKi87IH07CiAJCUFCQjU0MTlFMEFDRERG
RTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0MTlDMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJM
aXN0Qm94LmNwcCAqLzsgfTsKIAkJQUJCNTQxOUYwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxp
c3RCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFC
QjU0MTlEMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggKi87IH07Ci0JCUFCQzEy
ODc3MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAv
KiBQb3B1cE1lbnVDbGllbnQuaCAqLzsgfTsKKwkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8q
IFBvcHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFCRERGRTc5
MEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3MzBBNUM2RTZGMDBBM0UxMUQgLyog
UmVuZGVyTWVudUxpc3QuY3BwICovOyB9OwogCQlBQkRERkU3QTBBNUM2RTcwMDBBM0UxMUQgLyog
UmVuZGVyTWVudUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFCRERGRTc0MEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oICovOyB9
OwogCQlBQkZFN0UxMjBEMzJGQUY2MDA2NkY0RDIgLyogTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJGRTdFMTAw
RDMyRkFGNTAwNjZGNEQyIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKQEAgLTQ5
OTQsNiArNDk5Miw3IEBACiAJCUQyM0NBNTVEMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
MjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oICovOyB9OwogCQlE
MjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1RTBBQjBFQUI2MDA1
MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi87IH07CiAJCUQyM0NBNTZDMEFCMEVCOEQw
MDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0
aW9uLmggKi87IH07CisJCUQzMUFFODQzMTFGNEUwOUIwMDkwRjFDRCAvKiBTZWxlY3RNZXRob2RD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
MUFFODQyMTFGNEUwOUIwMDkwRjFDRCAvKiBTZWxlY3RNZXRob2RDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEOEI2MTUyRjEwMzI0OTUx
MDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJ
bmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlF
QiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRl
bnRDb21tYW5kLmggKi87IH07CkBAIC01NjgzLDcgKzU2ODIsNiBAQAogCQkwNjVBRDRGMzBCMEMy
RURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNjVBRDRGNDBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4
dE1lbnVDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250
ZXh0TWVudUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDY2OEUx
ODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA2
NjhFMThFMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9wdXBNZW51TWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNjZDNzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVDaG9vc2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA2NkM3NzJDMEFCNjAzRDIwMDIzOENDNCAvKiBGaWxl
Q2hvb3Nlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBG
aWxlQ2hvb3Nlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDY2Qzc3MkUw
QUI2MDNGRDAwMjM4Q0M0IC8qIFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MDE5LDcgKzkwMTcsNiBAQAogCQlBQjY3
RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRl
clRleHRDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJU
ZXh0Q29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQjcxNzA4ODBCMzEx
ODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQUI3MTcwOUYwQjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCQUYyMjA3MEMwM0IxQzcwMEIwQkNG
MCAvKiBDaHJvbWVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQ2hyb21lTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQkI1NDE5QzBB
Q0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTGlzdEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFCQjU0MTlEMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJMaXN0Qm94Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDY0OSw2ICsxMDY0Niw3IEBACiAJCUQyM0NBNTVDMEFC
MEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQyM0NBNTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1
IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
YW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMzFBRTg0MjEx
RjRFMDlCMDA5MEYxQ0QgLyogU2VsZWN0TWV0aG9kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNlbGVjdE1ldGhvZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTIxOTUsNyArMTIxOTMsNiBAQAogCQkJCTRCMjcwOTgxMEFGMkU1RTAwMDY1
MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLAogCQkJCTkzNUM0NzZGMDlBQzRENzMwMEE2QUFC
NCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnRNYWMubW0gKi8sCiAJCQkJQkM5NEQxMDcwQzI3NEY4ODAw
NkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovLAotCQkJCTA2NjhFMThFMEFERDk2NDAw
MDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVB
OTc4IC8qIFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgKi8sCiAJCQkJNDQ3RDY5MDEwRkE2MjY4MTAw
MTVDQ0IxIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJCTQ0N0Q2OTAyMEZB
NjI2ODEwMDE1Q0NCMSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi8sCkBAIC0xMjIw
NCw3ICsxMjIwMSw2IEBACiAJCQkJQkM4Qjg1M0MwRTdDN0YxMTAwQUI2OTg0IC8qIFNjcm9sbGJh
clRoZW1lTWFjLmggKi8sCiAJCQkJQkNFRjg2OUUwRTg0NEU5RDAwQTg1Q0Q1IC8qIFNjcm9sbGJh
clRoZW1lTWFjLm1tICovLAogCQkJCTkzNTM2NzZBMDlBRUQ4OEIwMEQzNUNENiAvKiBTY3JvbGxW
aWV3TWFjLm1tICovLAotCQkJCUFCNzE3MDlGMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1
cE1lbnVNYWMubW0gKi8sCiAJCQkJMUE0QTk1NTEwQjRFRENGRjAwMkQ4QzNDIC8qIFNoYXJlZEJ1
ZmZlck1hYy5tbSAqLywKIAkJCQk5MzMwOUU5RjA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGlt
ZXJNYWMubW0gKi8sCiAJCQkJMEE0ODQ0OTgwQ0E0NENCMjAwQjdCRDQ4IC8qIFNvZnRMaW5raW5n
LmggKi8sCkBAIC0xMjM0Miw2ICsxMjMzOCw3IEBACiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1
REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLywKIAkJCQlCQ0QwRTBGODBFOTcyQzM1MDAyNjVE
RUEgLyogU2VjdXJpdHlPcmlnaW4uaCAqLywKIAkJCQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEg
LyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi8sCisJCQkJRDMxQUU4NDIxMUY0RTA5QjAwOTBGMUNE
IC8qIFNlbGVjdE1ldGhvZENsaWVudC5oICovLAogCQkJCTE0QzlBNUU5MEIzRDEwNUYwMDVBMDIz
MiAvKiBTZXR0aW5ncy5jcHAgKi8sCiAJCQkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZp
Z2F0aW9uLmNwcCAqLywKQEAgLTE5ODAwLDYgKzE5Nzk3LDcgQEAKIAkJCQlFMUJFNTEyRTBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RE
NEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2RlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlEMzFBRTg0MzExRjRFMDlCMDA5MEYxQ0QgLyogU2VsZWN0TWV0aG9kQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTIxNTYzLDcgKzIxNTYxLDYgQEAKIAkJCQk5NzA1OTk3NzEwN0Q5NzUyMDBB
NTBBN0MgLyogUG9saWN5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcwNTk5Nzkx
MDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTE4OUYwREUxMEI0NkIwRTAwRjNDNzM5IC8qIFBvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMDY2OEUxOTAwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTkzRjE5QUY4MDgyNDVFNTkwMDFFOUFCQyAvKiBQb3NpdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzkxOUMyMzBCN0QxODg2MDBBNTY5OTggLyogUG9zaXRpb25J
dGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNzc2RDQzRDExMDQ1Mjc1MDBCRUIwRUMg
LyogUHJpbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjE3MzgsNyArMjE3MzUsNiBA
QAogCQkJCTVEOTI1QjY3MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzI0NDFDNDBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xsVmlldy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzUzNjc2QjA5QUVEODhCMDBEMzVDRDYgLyogU2Nyb2xs
Vmlld01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUFCNzE3MEEwMEIzMTE5M0IwMDE3MTIzRSAv
KiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzM0MwQ0NENDExMkM1
RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDBFMEZBMEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzNzFGNEZGRDBEMjVFN0YzMDBFQ0UwRDUgLyogU2VnbWVudGVkRm9udERhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGVmNTYxM2UuLmM0ZTIzNWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMDgsNiArMTA4LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0
dWFsIFNlbGVjdFVJQ2xpZW50RmFjdG9yeSogc2VsZWN0VUlDbGllbnRGYWN0b3J5KCkgeyByZXR1
cm4gMDsgfQorCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5n
JikgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcAppbmRleCAwYzY2OTI1Li45YzAyMDY0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMzE4LDYg
KzMxOCwxMSBAQCBib29sIENocm9tZTo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpCiAgICAg
cmV0dXJuIG1fY2xpZW50LT5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7CiB9CiAKK1NlbGVj
dFVJQ2xpZW50RmFjdG9yeSogQ2hyb21lOjpzZWxlY3RVSUNsaWVudEZhY3RvcnkoKQoreworICAg
IHJldHVybiBtX2NsaWVudC0+c2VsZWN0VUlDbGllbnRGYWN0b3J5KCk7Cit9CisKIEludFJlY3Qg
Q2hyb21lOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50
LT53aW5kb3dSZXNpemVyUmVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
IGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDUzNzQ2OGEuLmQ5N2NjYWYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFJlY3Q7CiAg
ICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOworICAgIGNsYXNzIFNlbGVjdFVJQ2xpZW50
RmFjdG9yeTsKICAgICBjbGFzcyBTdHJpbmc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAg
ICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOwpAQCAtMTIyLDYgKzEyMyw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29u
c3QgU3RyaW5nJik7CiAgICAgICAgIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpOwog
CisgICAgICAgIFNlbGVjdFVJQ2xpZW50RmFjdG9yeSogc2VsZWN0VUlDbGllbnRGYWN0b3J5KCk7
CisKICAgICAgICAgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCiAgICAgICAg
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2ln
bmVkIG1vZGlmaWVyRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDc5NWIyNWMuLjFmNzg0ZmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKQEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOworICAg
IGNsYXNzIFNlbGVjdFVJQ2xpZW50RmFjdG9yeTsKICAgICBjbGFzcyBTdHJpbmc7CiAgICAgY2xh
c3MgV2lkZ2V0OwogCkBAIC0xMjUsNiArMTI2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpID0gMDsKICAgICAg
ICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3QgPSAwOwogCisgICAgICAgIHZpcnR1
YWwgU2VsZWN0VUlDbGllbnRGYWN0b3J5KiBzZWxlY3RVSUNsaWVudEZhY3RvcnkoKSA9IDA7CisK
ICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOwog
CiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIGIvV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhv
ZENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YTQzN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmgKQEAgLTAs
MCArMSw0NSBAQAorI2lmbmRlZiBTZWxlY3RNZXRob2RDbGllbnRfaAorI2RlZmluZSBTZWxlY3RN
ZXRob2RDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQXRvbWljU3RyaW5nOworY2xhc3MgRnJhbWVWaWV3OworY2xh
c3MgSW50UmVjdDsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKKworY2xhc3MgU2VsZWN0VUlDbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflNlbGVjdFVJQ2xpZW50KCkge30KKyAgICB2aXJ0
dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZy
b21FbGVtZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgPSAw
OworfTsKKworY2xhc3MgU2VhcmNoVUlDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflNl
YXJjaFVJQ2xpZW50KCkge30KKyAgICB2aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNs
aWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBlbmFibGVkKCkgPSAwOworfTsKKworY2xhc3MgU2VsZWN0VUlDbGllbnRGYWN0b3J5IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5TZWxlY3RVSUNsaWVudEZhY3RvcnkoKSB7fQorCisgICAgdmly
dHVhbCBib29sIGl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgPSAwOworICAgIHZpcnR1
YWwgUGFzc093blB0cjxTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc093blB0cjxTZWFyY2hVSUNs
aWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwor
Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWxlY3RNZXRob2RDbGllbnRfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5ZDI3NDAuLjAwMDAwMDAKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwMCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKgotICovCi0KLSNpZm5kZWYgUG9wdXBNZW51X2gKLSNkZWZpbmUgUG9wdXBNZW51X2gK
LQotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0K
LSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lmZGVmIF9f
T0JKQ19fCi1AY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7Ci0jZWxzZQotY2xhc3MgTlNQb3BVcEJ1
dHRvbkNlbGw7Ci0jZW5kaWYKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJTY3JvbGxi
YXIuaCIKLSNpbmNsdWRlICJTY3JvbGxiYXJDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci10eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7Ci10eXBlZGVmIHN0cnVjdCBIRENfXyog
SERDOwotdHlwZWRlZiBzdHJ1Y3QgSEJJVE1BUF9fKiBIQklUTUFQOwotI2VsaWYgUExBVEZPUk0o
UVQpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7Ci19Ci0j
ZWxpZiBQTEFURk9STShHVEspCi10eXBlZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwotdHlw
ZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwotdHlwZWRlZiBzdHJ1Y3QgX0d0
a1dpZGdldCBHdGtXaWRnZXQ7Ci0jaW5jbHVkZSAiR1JlZlB0ckd0ay5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotI2VsaWYgUExBVEZPUk0oV1gpCi0jaWZk
ZWYgX19XWE1TV19fCi0jaW5jbHVkZSA8d3gvbXN3L3dpbnVuZGVmLmg+Ci0jZW5kaWYKLWNsYXNz
IHd4TWVudTsKLSNpbmNsdWRlIDx3eC9kZWZzLmg+Ci0jaW5jbHVkZSA8d3gvZXZlbnQuaD4KLSNl
bGlmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlBvcHVwTWVudVByaXZhdGUuaCIKLSNl
bGlmIFBMQVRGT1JNKEhBSUtVKQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUG9wdXBNZW51
SGFpa3U7Ci19Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGcmFtZVZp
ZXc7Ci1jbGFzcyBTY3JvbGxiYXI7Ci0KLWNsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFBvcHVwTWVudT4KLSNpZiBQTEFURk9STShXSU4pCi0gICAgICAgICAgICAgICAgLCBwcml2
YXRlIFNjcm9sbGJhckNsaWVudAotI2VuZGlmCi0jaWYgUExBVEZPUk0oV1gpCi0gICAgICAgICAg
ICAgICAgLCBwdWJsaWMgd3hFdnRIYW5kbGVyCi0jZW5kaWYKLXsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKTsgfQotICAgIH5Qb3B1cE1l
bnUoKTsKLSAgICAKLSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQg
PSAwOyB9Ci0KLSAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBp
bmRleCk7Ci0gICAgdm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
Ci0gICAgCi0gICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3Bv
cHVwQ2xpZW50OyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpOwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KLQotICAgIHN0YXRpYyBMUENUU1RS
IHBvcHVwQ2xhc3NOYW1lKCk7Ci0KLSAgICBib29sIHVwKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0g
ICAgYm9vbCBkb3duKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0KLSAgICBpbnQgaXRlbUhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1faXRlbUhlaWdodDsgfQotICAgIGNvbnN0IEludFJlY3QmIHdpbmRv
d1JlY3QoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd1JlY3Q7IH0KLSAgICBJbnRSZWN0IGNsaWVu
dFJlY3QoKSBjb25zdDsKLQotICAgIGludCB2aXNpYmxlSXRlbXMoKSBjb25zdDsKLQotICAgIGlu
dCBsaXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0KLSAgICBib29sIHNl
dEZvY3VzZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgaG90VHJhY2tpbmcgPSBmYWxzZSk7Ci0gICAg
aW50IGZvY3VzZWRJbmRleCgpIGNvbnN0OwotICAgIHZvaWQgZm9jdXNGaXJzdCgpOwotICAgIHZv
aWQgZm9jdXNMYXN0KCk7Ci0KLSAgICB2b2lkIHBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJl
Y3QsIEhEQyA9IDApOwotCi0gICAgSFdORCBwb3B1cEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9wdXA7IH0KLQotICAgIHZvaWQgc2V0V2FzQ2xpY2tlZChib29sIGIgPSB0cnVlKSB7IG1fd2Fz
Q2xpY2tlZCA9IGI7IH0KLSAgICBib29sIHdhc0NsaWNrZWQoKSBjb25zdCB7IHJldHVybiBtX3dh
c0NsaWNrZWQ7IH0KLQotICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9z
Y3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zY3JvbGxPZmZzZXQ7IH0KLQotICAgIGJvb2wgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rp
b24oKTsKLQotICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIHZv
aWQgcmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIGludCB3aGVlbERlbHRhKCkgY29u
c3QgeyByZXR1cm4gbV93aGVlbERlbHRhOyB9Ci0KLSAgICBib29sIHNjcm9sbGJhckNhcHR1cmlu
Z01vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsgfQotICAg
IHZvaWQgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2Fw
dHVyaW5nTW91c2UgPSBiOyB9Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgUG9wdXBNZW51Q2xpZW50KiBt
X3BvcHVwQ2xpZW50OwotICAgIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIGNsZWFyKCk7
Ci0gICAgdm9pZCBwb3B1bGF0ZSgpOwotCi0gICAgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25DZWxs
PiBtX3BvcHVwOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBt
X3BvcHVwOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIFNjcm9sbEJhckNsaWVudAotICAg
IHZpcnR1YWwgdm9pZCB2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKik7Ci0gICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCBib29sIHNjcm9sbGJhckNvcm5lclByZXNlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotCi0gICAgdm9pZCBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYsIEZy
YW1lVmlldyopOwotICAgIHZvaWQgaW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KTsKLQotICAgIHN0
YXRpYyBMUkVTVUxUIENBTExCQUNLIFBvcHVwTWVudVduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFN
LCBMUEFSQU0pOwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwg
V1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJD
bGFzcygpOwotCi0gICAgUmVmUHRyPFNjcm9sbGJhcj4gbV9zY3JvbGxiYXI7Ci0gICAgSFdORCBt
X3BvcHVwOwotICAgIEhEQyBtX0RDOwotICAgIEhCSVRNQVAgbV9ibXA7Ci0gICAgYm9vbCBtX3dh
c0NsaWNrZWQ7Ci0gICAgSW50UmVjdCBtX3dpbmRvd1JlY3Q7Ci0gICAgaW50IG1faXRlbUhlaWdo
dDsKLSAgICBpbnQgbV9zY3JvbGxPZmZzZXQ7Ci0gICAgaW50IG1fd2hlZWxEZWx0YTsKLSAgICBp
bnQgbV9mb2N1c2VkSW5kZXg7Ci0gICAgYm9vbCBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOwot
ICAgIGJvb2wgbV9zaG93UG9wdXA7Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAgSW50UG9pbnQg
bV9tZW51UG9zaXRpb247Ci0gICAgR1JlZlB0cjxHdGtNZW51PiBtX3BvcHVwOwotICAgIEhhc2hN
YXA8R3RrV2lkZ2V0KiwgaW50PiBtX2luZGV4TWFwOwotICAgIHN0YXRpYyB2b2lkIG1lbnVJdGVt
QWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9p
ZCBtZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51Kik7Ci0gICAgc3RhdGljIHZvaWQg
bWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqLCBnaW50KiwgZ2Jvb2xlYW4qLCBQ
b3B1cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9pZCBtZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqLCBQ
b3B1cE1lbnUqKTsKLSNlbGlmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQlJFV01QKQotICAg
IEZyYW1lVmlldyogbV92aWV3OwotI2VsaWYgUExBVEZPUk0oV1gpCi0gICAgd3hNZW51KiBtX21l
bnU7Ci0gICAgdm9pZCBPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmKTsKLSNlbGlm
IFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFBvcHVwTWVudVByaXZhdGUgcDsKLSNlbGlmIFBMQVRG
T1JNKEhBSUtVKQotICAgIFBvcHVwTWVudUhhaWt1KiBtX21lbnU7Ci0jZW5kaWYKLQotfTsKLQot
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51
LmggYi9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0Mjg1Y2RmLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Vh
cmNoUG9wdXBNZW51LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0K
LSNpZm5kZWYgU2VhcmNoUG9wdXBNZW51X2gKLSNkZWZpbmUgU2VhcmNoUG9wdXBNZW51X2gKLQot
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBBdG9taWNTdHJpbmc7Ci0KLWNsYXNzIFNlYXJjaFBvcHVw
TWVudSA6IHB1YmxpYyBQb3B1cE1lbnUgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOyB9Ci0KLSAgICB2b2lkIHNh
dmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotCi0gICAg
Ym9vbCBlbmFibGVkKCk7Ci0gICAgCi1wcml2YXRlOgotICAgIFNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKTsKLX07Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1l
bnVNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjMDY3YjkuLjAwMDAwMDAK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCisrKyAvZGV2L251bGwK
QEAgLTEsMjExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlBv
cHVwTWVudS5oIgotCi0jaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCi0jaW1wb3J0ICJDaHJvbWUu
aCIKLSNpbXBvcnQgIkNocm9tZUNsaWVudC5oIgotI2ltcG9ydCAiRXZlbnRIYW5kbGVyLmgiCi0j
aW1wb3J0ICJGcmFtZS5oIgotI2ltcG9ydCAiRnJhbWVWaWV3LmgiCi0jaW1wb3J0ICJIVE1MTmFt
ZXMuaCIKLSNpbXBvcnQgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKLSNpbXBvcnQgIkhUTUxPcHRp
b25FbGVtZW50LmgiCi0jaW1wb3J0ICJIVE1MU2VsZWN0RWxlbWVudC5oIgotI2ltcG9ydCAiUGFn
ZS5oIgotI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIKLSNpbXBvcnQgIldlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwotCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
LSAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQotewotfQotCi1Qb3B1cE1lbnU6On5Qb3B1cE1l
bnUoKQotewotICAgIGlmIChtX3BvcHVwKQotICAgICAgICBbbV9wb3B1cC5nZXQoKSBzZXRDb250
cm9sVmlldzpuaWxdOwotfQotCi12b2lkIFBvcHVwTWVudTo6Y2xlYXIoKQotewotICAgIGlmICht
X3BvcHVwKQotICAgICAgICBbbV9wb3B1cC5nZXQoKSByZW1vdmVBbGxJdGVtc107Ci19Ci0KLXZv
aWQgUG9wdXBNZW51Ojpwb3B1bGF0ZSgpCi17Ci0gICAgaWYgKG1fcG9wdXApCi0gICAgICAgIGNs
ZWFyKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1fcG9wdXAgPSBbW05TUG9wVXBCdXR0b25DZWxs
IGFsbG9jXSBpbml0VGV4dENlbGw6QCIiIHB1bGxzRG93bjohY2xpZW50KCktPnNob3VsZFBvcE92
ZXIoKV07Ci0gICAgICAgIFttX3BvcHVwLmdldCgpIHJlbGVhc2VdOyAvLyByZWxlYXNlIGhlcmUg
c2luY2UgdGhlIFJldGFpblB0ciBoYXMgcmV0YWluZWQgdGhlIG9iamVjdCBhbHJlYWR5Ci0gICAg
ICAgIFttX3BvcHVwLmdldCgpIHNldFVzZXNJdGVtRnJvbU1lbnU6Tk9dOwotICAgICAgICBbbV9w
b3B1cC5nZXQoKSBzZXRBdXRvZW5hYmxlc0l0ZW1zOk5PXTsKLSAgICB9Ci0KLSAgICBCT09MIG1l
c3NhZ2VzRW5hYmxlZCA9IFtbbV9wb3B1cC5nZXQoKSBtZW51XSBtZW51Q2hhbmdlZE1lc3NhZ2Vz
RW5hYmxlZF07Ci0gICAgW1ttX3BvcHVwLmdldCgpIG1lbnVdIHNldE1lbnVDaGFuZ2VkTWVzc2Fn
ZXNFbmFibGVkOk5PXTsKLSAgICAKLSAgICAvLyBGb3IgcHVsbERvd24gbWVudXMgdGhlIGZpcnN0
IGl0ZW0gaXMgaGlkZGVuLgotICAgIGlmICghY2xpZW50KCktPnNob3VsZFBvcE92ZXIoKSkKLSAg
ICAgICAgW21fcG9wdXAuZ2V0KCkgYWRkSXRlbVdpdGhUaXRsZTpAIiJdOwotCi0gICAgQVNTRVJU
KGNsaWVudCgpKTsKLSAgICBpbnQgc2l6ZSA9IGNsaWVudCgpLT5saXN0U2l6ZSgpOwotCi0gICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgaWYgKGNsaWVudCgpLT5p
dGVtSXNTZXBhcmF0b3IoaSkpCi0gICAgICAgICAgICBbW21fcG9wdXAuZ2V0KCkgbWVudV0gYWRk
SXRlbTpbTlNNZW51SXRlbSBzZXBhcmF0b3JJdGVtXV07Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgUG9wdXBNZW51U3R5bGUgc3R5bGUgPSBjbGllbnQoKS0+aXRlbVN0eWxlKGkpOwotICAg
ICAgICAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogYXR0cmlidXRlcyA9IFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdF07Ci0gICAgICAgICAgICBpZiAoc3R5bGUuZm9udCgpICE9IEZv
bnQoKSkgewotICAgICAgICAgICAgICAgIE5TRm9udCAqZm9udCA9IHN0eWxlLmZvbnQoKS5wcmlt
YXJ5Rm9udCgpLT5nZXROU0ZvbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWZvbnQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgQ0dGbG9hdCBzaXplID0gc3R5bGUuZm9udCgpLnByaW1hcnlGb250
KCktPnBsYXRmb3JtRGF0YSgpLnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgZm9udCA9IHN0
eWxlLmZvbnQoKS53ZWlnaHQoKSA8IEZvbnRXZWlnaHRCb2xkID8gW05TRm9udCBzeXN0ZW1Gb250
T2ZTaXplOnNpemVdIDogW05TRm9udCBib2xkU3lzdGVtRm9udE9mU2l6ZTpzaXplXTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OmZvbnQg
Zm9yS2V5Ok5TRm9udEF0dHJpYnV0ZU5hbWVdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Ly8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBzdHlsaW5nIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNr
Z3JvdW5kIGNvbG9ycy4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGN1c3Rv
bWl6ZSB0ZXh0IGNvbG9yIHdoZW4gYW4gaXRlbSBpcyBoaWdobGlnaHRlZC4KLSAgICAgICAgICAg
IE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoU3RyaW5nOmNsaWVudCgpLT5pdGVtVGV4dChpKSBhdHRyaWJ1dGVzOmF0dHJpYnV0
ZXNdOwotICAgICAgICAgICAgW2F0dHJpYnV0ZXMgcmVsZWFzZV07Ci0KLSAgICAgICAgICAgIFtt
X3BvcHVwLmdldCgpIGFkZEl0ZW1XaXRoVGl0bGU6QCIiXTsKLSAgICAgICAgICAgIE5TTWVudUl0
ZW0qIG1lbnVJdGVtID0gW21fcG9wdXAuZ2V0KCkgbGFzdEl0ZW1dOwotICAgICAgICAgICAgW21l
bnVJdGVtIHNldEF0dHJpYnV0ZWRUaXRsZTpzdHJpbmddOwotICAgICAgICAgICAgW21lbnVJdGVt
IHNldEVuYWJsZWQ6Y2xpZW50KCktPml0ZW1Jc0VuYWJsZWQoaSldOwotICAgICAgICAgICAgW21l
bnVJdGVtIHNldFRvb2xUaXA6Y2xpZW50KCktPml0ZW1Ub29sVGlwKGkpXTsKLSAgICAgICAgICAg
IFtzdHJpbmcgcmVsZWFzZV07Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEFsbG93IHRo
ZSBhY2Nlc3NpYmxlIHRleHQgb2YgdGhlIGl0ZW0gdG8gYmUgb3ZlcnJpZGVuIGlmIG5lY2Vzc2Fy
eS4KLSAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7Ci0gICAgICAgICAgICAgICAgTlNTdHJpbmcgKmFjY2Vzc2liaWxpdHlPdmVycmlkZSA9IGNs
aWVudCgpLT5pdGVtQWNjZXNzaWJpbGl0eVRleHQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKFth
Y2Nlc3NpYmlsaXR5T3ZlcnJpZGUgbGVuZ3RoXSkKLSAgICAgICAgICAgICAgICAgICAgW21lbnVJ
dGVtIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOmFjY2Vzc2liaWxpdHlPdmVycmlkZSBm
b3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgW1ttX3BvcHVwLmdldCgpIG1lbnVdIHNl
dE1lbnVDaGFuZ2VkTWVzc2FnZXNFbmFibGVkOm1lc3NhZ2VzRW5hYmxlZF07Ci19Ci0KLXZvaWQg
UG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4
KQotewotICAgIHBvcHVsYXRlKCk7Ci0gICAgaW50IG51bUl0ZW1zID0gW21fcG9wdXAuZ2V0KCkg
bnVtYmVyT2ZJdGVtc107Ci0gICAgaWYgKG51bUl0ZW1zIDw9IDApIHsKLSAgICAgICAgaWYgKGNs
aWVudCgpKQotICAgICAgICAgICAgY2xpZW50KCktPnBvcHVwRGlkSGlkZSgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChudW1JdGVtcyA+IGluZGV4KTsKLQotICAgIC8vIFdv
cmthcm91bmQgZm9yIGNyYXp5IGJ1ZyB3aGVyZSBhIHNlbGVjdGVkIGluZGV4IG9mIC0xIGZvciBh
IG1lbnUgd2l0aCBvbmx5IDEgaXRlbSB3aWxsIGNhdXNlIGEgYmxhbmsgbWVudS4KLSAgICBpZiAo
aW5kZXggPT0gLTEgJiYgbnVtSXRlbXMgPT0gMiAmJiAhY2xpZW50KCktPnNob3VsZFBvcE92ZXIo
KSAmJiAhW1ttX3BvcHVwLmdldCgpIGl0ZW1BdEluZGV4OjFdIGlzRW5hYmxlZF0pCi0gICAgICAg
IGluZGV4ID0gMDsKLQotICAgIE5TVmlldyogdmlldyA9IHYtPmRvY3VtZW50VmlldygpOwotCi0g
ICAgW21fcG9wdXAuZ2V0KCkgYXR0YWNoUG9wVXBXaXRoRnJhbWU6ciBpblZpZXc6dmlld107Ci0g
ICAgW21fcG9wdXAuZ2V0KCkgc2VsZWN0SXRlbUF0SW5kZXg6aW5kZXhdOwotCi0gICAgTlNNZW51
KiBtZW51ID0gW21fcG9wdXAuZ2V0KCkgbWVudV07Ci0gICAgCi0gICAgTlNQb2ludCBsb2NhdGlv
bjsKLSAgICBOU0ZvbnQqIGZvbnQgPSBjbGllbnQoKS0+bWVudVN0eWxlKCkuZm9udCgpLnByaW1h
cnlGb250KCktPmdldE5TRm9udCgpOwotCi0gICAgLy8gVGhlc2UgdmFsdWVzIHdlcmUgYm9ycm93
ZWQgZnJvbSBBcHBLaXQgdG8gbWF0Y2ggdGhlaXIgcGxhY2VtZW50IG9mIHRoZSBtZW51LgotICAg
IGNvbnN0IGludCBwb3BPdmVySG9yaXpvbnRhbEFkanVzdCA9IC0xMDsKLSAgICBjb25zdCBpbnQg
cG9wVW5kZXJIb3Jpem9udGFsQWRqdXN0ID0gNjsKLSAgICBjb25zdCBpbnQgcG9wVW5kZXJWZXJ0
aWNhbEFkanVzdCA9IDY7Ci0gICAgaWYgKGNsaWVudCgpLT5zaG91bGRQb3BPdmVyKCkpIHsKLSAg
ICAgICAgTlNSZWN0IHRpdGxlRnJhbWUgPSBbbV9wb3B1cC5nZXQoKSB0aXRsZVJlY3RGb3JCb3Vu
ZHM6cl07Ci0gICAgICAgIGlmICh0aXRsZUZyYW1lLnNpemUud2lkdGggPD0gMCB8fCB0aXRsZUZy
YW1lLnNpemUuaGVpZ2h0IDw9IDApCi0gICAgICAgICAgICB0aXRsZUZyYW1lID0gcjsKLSAgICAg
ICAgZmxvYXQgdmVydE9mZnNldCA9IHJvdW5kZigoTlNNYXhZKHIpIC0gTlNNYXhZKHRpdGxlRnJh
bWUpKSArIE5TSGVpZ2h0KHRpdGxlRnJhbWUpKTsKLSAgICAgICAgLy8gQWRqdXN0IGZvciBmb250
cyBvdGhlciB0aGFuIHRoZSBzeXN0ZW0gZm9udC4KLSAgICAgICAgTlNGb250KiBkZWZhdWx0Rm9u
dCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbZm9udCBwb2ludFNpemVdXTsKLSAgICAgICAg
dmVydE9mZnNldCArPSBbZm9udCBkZXNjZW5kZXJdIC0gW2RlZmF1bHRGb250IGRlc2NlbmRlcl07
Ci0gICAgICAgIHZlcnRPZmZzZXQgPSBmbWluZihOU0hlaWdodChyKSwgdmVydE9mZnNldCk7Ci0g
ICAgCi0gICAgICAgIGxvY2F0aW9uID0gTlNNYWtlUG9pbnQoTlNNaW5YKHIpICsgcG9wT3Zlckhv
cml6b250YWxBZGp1c3QsIE5TTWF4WShyKSAtIHZlcnRPZmZzZXQpOwotICAgIH0gZWxzZQotICAg
ICAgICBsb2NhdGlvbiA9IE5TTWFrZVBvaW50KE5TTWluWChyKSArIHBvcFVuZGVySG9yaXpvbnRh
bEFkanVzdCwgTlNNYXhZKHIpICsgcG9wVW5kZXJWZXJ0aWNhbEFkanVzdCk7ICAgIAotCi0gICAg
Ly8gU2F2ZSB0aGUgY3VycmVudCBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgcG9wdXAsIHNvIHdl
IGNhbiBjbGVhbiB1cCBvdXIgZXZlbnQKLSAgICAvLyBzdGF0ZSBhZnRlciB0aGUgTlNNZW51IGdv
ZXMgYXdheS4KLSAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gdi0+ZnJhbWUoKTsKLSAgICBOU0V2
ZW50KiBldmVudCA9IFtmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmN1cnJlbnROU0V2ZW50KCkgcmV0
YWluXTsKLSAgICAKLSAgICBSZWZQdHI8UG9wdXBNZW51PiBwcm90ZWN0b3IodGhpcyk7Ci0KLSAg
ICBSZXRhaW5QdHI8TlNWaWV3PiBkdW1teVZpZXcoQWRvcHROUywgW1tOU1ZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6cl0pOwotICAgIFt2aWV3IGFkZFN1YnZpZXc6ZHVtbXlWaWV3LmdldCgpXTsK
LSAgICBsb2NhdGlvbiA9IFtkdW1teVZpZXcuZ2V0KCkgY29udmVydFBvaW50OmxvY2F0aW9uIGZy
b21WaWV3OnZpZXddOwotICAgIAotICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkK
LSAgICAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT53aWxsUG9wVXBNZW51KG1lbnUpOwot
ICAgIHdrUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15
Vmlldy5nZXQoKSwgaW5kZXgsIGZvbnQpOwotCi0gICAgW21fcG9wdXAuZ2V0KCkgZGlzbWlzc1Bv
cFVwXTsKLSAgICBbZHVtbXlWaWV3LmdldCgpIHJlbW92ZUZyb21TdXBlcnZpZXddOwotCi0gICAg
aWYgKGNsaWVudCgpKSB7Ci0gICAgICAgIGludCBuZXdJbmRleCA9IFttX3BvcHVwLmdldCgpIGlu
ZGV4T2ZTZWxlY3RlZEl0ZW1dOwotICAgICAgICBjbGllbnQoKS0+cG9wdXBEaWRIaWRlKCk7Ci0K
LSAgICAgICAgLy8gQWRqdXN0IG5ld0luZGV4IGZvciBoaWRkZW4gZmlyc3QgaXRlbS4KLSAgICAg
ICAgaWYgKCFjbGllbnQoKS0+c2hvdWxkUG9wT3ZlcigpKQotICAgICAgICAgICAgbmV3SW5kZXgt
LTsKLQotICAgICAgICBpZiAoaW5kZXggIT0gbmV3SW5kZXggJiYgbmV3SW5kZXggPj0gMCkKLSAg
ICAgICAgICAgIGNsaWVudCgpLT52YWx1ZUNoYW5nZWQobmV3SW5kZXgpOwotCi0gICAgICAgIC8v
IEdpdmUgdGhlIGZyYW1lIGEgY2hhbmNlIHRvIGZpeCB1cCBpdHMgZXZlbnQgc3RhdGUsIHNpbmNl
IHRoZSBwb3B1cCBlYXRzIGFsbCB0aGUKLSAgICAgICAgLy8gZXZlbnRzIGR1cmluZyB0cmFja2lu
Zy4KLSAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kRmFrZUV2ZW50c0FmdGVyV2lk
Z2V0VHJhY2tpbmcoZXZlbnQpOwotICAgIH0KLQotICAgIFtldmVudCByZWxlYXNlXTsKLX0KLQot
dm9pZCBQb3B1cE1lbnU6OmhpZGUoKQotewotICAgIFttX3BvcHVwLmdldCgpIGRpc21pc3NQb3BV
cF07Ci19Ci0gICAgCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQotewotfQot
Ci1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAg
IHJldHVybiB0cnVlOwotfQotCi19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
ZWFyY2hQb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1l
bnVNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MjczNGQuLjAwMDAwMDAK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCisrKyAvZGV2
L251bGwKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlNlYXJjaFBvcHVwTWVu
dS5oIgotCi0jaW1wb3J0ICJBdG9taWNTdHJpbmcuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCi17Ci19Ci0KLXN0YXRpYyBOU1N0cmluZyogYXV0
b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBbQCJjb20uYXBwbGUu
V2ViS2l0LnNlYXJjaEZpZWxkOiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6bmFtZV07Ci19Ci0K
LWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKLXsKLSAgICBp
ZiAobmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBzaXplID0g
c2VhcmNoSXRlbXMuc2l6ZSgpOwotICAgIGlmIChzaXplID09IDApCi0gICAgICAgIFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHJlbW92ZU9iamVjdEZvcktleTphdXRvc2F2
ZUtleShuYW1lKV07Ci0gICAgZWxzZSB7Ci0gICAgICAgIE5TTXV0YWJsZUFycmF5KiBpdGVtcyA9
IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c2l6ZV07Ci0gICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICAgICAgW2l0ZW1zIGFk
ZE9iamVjdDpzZWFyY2hJdGVtc1tpXV07Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRh
cmRVc2VyRGVmYXVsdHNdIHNldE9iamVjdDppdGVtcyBmb3JLZXk6YXV0b3NhdmVLZXkobmFtZSld
OwotICAgICAgICBbaXRlbXMgcmVsZWFzZV07Ci0gICAgfQotfQotCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKQotewotICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgc2VhcmNoSXRlbXMuY2xlYXIoKTsKLSAgICBOU0FycmF5KiBpdGVt
cyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGFycmF5Rm9yS2V5OmF1
dG9zYXZlS2V5KG5hbWUpXTsKLSAgICBzaXplX3Qgc2l6ZSA9IFtpdGVtcyBjb3VudF07Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgTlNTdHJpbmcqIGl0
ZW0gPSBbaXRlbXMgb2JqZWN0QXRJbmRleDppXTsKLSAgICAgICAgaWYgKFtpdGVtIGlzS2luZE9m
Q2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgICAgICBzZWFyY2hJdGVtcy5hcHBlbmQo
aXRlbSk7Ci0gICAgfQotfQotCi19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bv
cHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTViODkxLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBA
QAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1cCBtZW51IGltcGxlbWVudGF0
aW9uIGZvciA8c2VsZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgotICoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgotICog
Q29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20gCi0g
KiBDb3lwcmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCi0KLSNp
bmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDaHJvbWVDbGllbnRRdC5oIgotI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgotI2luY2x1ZGUgIlFX
ZWJQYWdlQ2xpZW50LmgiCi0jaW5jbHVkZSAiUXRBYnN0cmFjdFdlYlBvcHVwLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpCi0gICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKLSAgICAsIG1fcG9wdXAoMCkKLXsK
LX0KLQotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKLXsKLSAgICBkZWxldGUgbV9wb3B1cDsKLX0K
LQotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2
aWV3LCBpbnQgaW5kZXgpCi17Ci0gICAgQ2hyb21lQ2xpZW50UXQqIGNocm9tZUNsaWVudCA9IHN0
YXRpY19jYXN0PENocm9tZUNsaWVudFF0Kj4oCi0gICAgICAgIHZpZXctPmZyYW1lKCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNsaWVudCgpKTsKLSAgICBBU1NFUlQoY2hyb21lQ2xpZW50KTsKLQotICAg
IGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IGNocm9tZUNsaWVudC0+Y3JlYXRlU2Vs
ZWN0UG9wdXAoKTsKLQotICAgIG1fcG9wdXAtPm1fcG9wdXBDbGllbnQgPSBtX3BvcHVwQ2xpZW50
OwotICAgIG1fcG9wdXAtPm1fY3VycmVudEluZGV4ID0gaW5kZXg7Ci0gICAgbV9wb3B1cC0+bV9w
YWdlQ2xpZW50ID0gY2hyb21lQ2xpZW50LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLQotICAgIFFS
ZWN0IGdlb21ldHJ5KHJlY3QpOwotICAgIGdlb21ldHJ5Lm1vdmVUb3BMZWZ0KHZpZXctPmNvbnRl
bnRzVG9XaW5kb3cocmVjdC50b3BMZWZ0KCkpKTsKLSAgICBtX3BvcHVwLT5tX2dlb21ldHJ5ID0g
Z2VvbWV0cnk7Ci0KLSAgICBtX3BvcHVwLT5zaG93KCk7Ci0KLX0KLQotdm9pZCBQb3B1cE1lbnU6
OmhpZGUoKQotewotICAgIG1fcG9wdXAtPmhpZGUoKTsKLX0KLQotdm9pZCBQb3B1cE1lbnU6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKLXsKLSAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9w
dXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7Ci19Ci0KLWJvb2wgUG9wdXBNZW51OjppdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19Ci0K
LS8vIHZpbTogdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0
QWJzdHJhY3RXZWJQb3B1cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxYWIyOGQuLjAwMDAwMDAK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAot
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUXRBYnN0cmFjdFdlYlBvcHVwLmgiCi0KLSNpbmNsdWRlICJQb3B1cE1l
bnVDbGllbnQuaCIKLQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVF0QWJzdHJhY3RXZWJQb3B1
cDo6UXRBYnN0cmFjdFdlYlBvcHVwKCkKLSAgICA6IG1fcG9wdXBDbGllbnQoMCkKLSAgICAsIG1f
cGFnZUNsaWVudCgwKQotICAgICwgbV9jdXJyZW50SW5kZXgoLTEpCi17Ci19Ci0KLVF0QWJzdHJh
Y3RXZWJQb3B1cDo6flF0QWJzdHJhY3RXZWJQb3B1cCgpCi17Ci19Ci0KLXZvaWQgUXRBYnN0cmFj
dFdlYlBvcHVwOjpwb3B1cERpZEhpZGUoKQotewotICAgIFFfQVNTRVJUKG1fcG9wdXBDbGllbnQp
OwotICAgIG1fcG9wdXBDbGllbnQtPnBvcHVwRGlkSGlkZSgpOwotfQotCi12b2lkIFF0QWJzdHJh
Y3RXZWJQb3B1cDo6dmFsdWVDaGFuZ2VkKGludCBpbmRleCkKLXsKLSAgICBRX0FTU0VSVChtX3Bv
cHVwQ2xpZW50KTsKLSAgICBtX3BvcHVwQ2xpZW50LT52YWx1ZUNoYW5nZWQoaW5kZXgpOwotfQot
Ci12b2lkIFF0QWJzdHJhY3RXZWJQb3B1cDo6c2VsZWN0SXRlbShpbnQgaW5kZXgsIGJvb2wgYWxs
b3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQpCi17Ci0jaWYgRU5BQkxFKE5PX0xJU1RC
T1hfUkVOREVSSU5HKQotICAgIExpc3RQb3B1cE1lbnVDbGllbnQqIGNsaWVudCA9IHN0YXRpY19j
YXN0PExpc3RQb3B1cE1lbnVDbGllbnQqPihtX3BvcHVwQ2xpZW50KTsKLSAgICBpZiAoY2xpZW50
KSB7Ci0gICAgICAgIGNsaWVudC0+bGlzdEJveFNlbGVjdEl0ZW0oaW5kZXgsIGFsbG93TXVsdGlw
bHlTZWxlY3Rpb25zLCBzaGlmdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLSAg
ICB2YWx1ZUNoYW5nZWQoaW5kZXgpOwotfQotCi1ib29sIFF0QWJzdHJhY3RXZWJQb3B1cDo6bXVs
dGlwbGUoKQotewotI2lmIEVOQUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKLSAgICBMaXN0UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQgPSBzdGF0aWNfY2FzdDxMaXN0UG9wdXBNZW51Q2xpZW50Kj4o
bV9wb3B1cENsaWVudCk7Ci0gICAgcmV0dXJuIGNsaWVudCAmJiBjbGllbnQtPm11bHRpcGxlKCk7
Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCi1RdEFic3RyYWN0V2ViUG9w
dXA6Okl0ZW1UeXBlIFF0QWJzdHJhY3RXZWJQb3B1cDo6aXRlbVR5cGUoaW50IGlkeCkgY29uc3QK
LXsKLSAgICBpZiAobV9wb3B1cENsaWVudC0+aXRlbUlzU2VwYXJhdG9yKGlkeCkpCi0gICAgICAg
IHJldHVybiBTZXBhcmF0b3I7Ci0gICAgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1Jc0xhYmVsKGlk
eCkpCi0gICAgICAgIHJldHVybiBHcm91cDsKLSAgICByZXR1cm4gT3B0aW9uOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJz
dHJhY3RXZWJQb3B1cC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFkNDk5Ny4uMDAwMDAwMAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0jaWZuZGVmIFF0QWJzdHJhY3RXZWJQb3B1
cF9oCi0jZGVmaW5lIFF0QWJzdHJhY3RXZWJQb3B1cF9oCi0KLSNpbmNsdWRlICJQb3B1cE1lbnVD
bGllbnQuaCIKLQotI2luY2x1ZGUgPFFGb250PgotI2luY2x1ZGUgPFFMaXN0PgotI2luY2x1ZGUg
PFFSZWN0PgotI2luY2x1ZGUgPFFXaWRnZXQ+Ci0KLWNsYXNzIFFXZWJQYWdlQ2xpZW50OwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cCB7Ci1wdWJsaWM6
Ci0gICAgZW51bSBJdGVtVHlwZSB7IE9wdGlvbiwgR3JvdXAsIFNlcGFyYXRvciB9OwotCi0gICAg
SXRlbVR5cGUgaXRlbVR5cGUoaW50KSBjb25zdDsKLSAgICBRU3RyaW5nIGl0ZW1UZXh0KGludCBp
ZHgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQtPml0ZW1UZXh0KGlkeCk7IH0KLSAgICBR
U3RyaW5nIGl0ZW1Ub29sVGlwKGludCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQt
Pml0ZW1Ub29sVGlwKGlkeCk7IH0KLSAgICBib29sIGl0ZW1Jc0VuYWJsZWQoaW50IGlkeCkgY29u
c3QgeyByZXR1cm4gbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxlZChpZHgpOyB9Ci0gICAgaW50
IGl0ZW1Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQtPmxpc3RTaXplKCk7IH0K
LSAgICBib29sIGl0ZW1Jc1NlbGVjdGVkKGludCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBD
bGllbnQtPml0ZW1Jc1NlbGVjdGVkKGlkeCk7IH0KLQotCi0gICAgUVdlYlBhZ2VDbGllbnQqIHBh
Z2VDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VDbGllbnQ7IH0KLSAgICBRUmVjdCBnZW9t
ZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnk7IH0KLSAgICBpbnQgY3VycmVudEluZGV4
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50SW5kZXg7IH0KLQotICAgIFF0QWJzdHJhY3RXZWJQ
b3B1cCgpOwotICAgIHZpcnR1YWwgflF0QWJzdHJhY3RXZWJQb3B1cCgpOwotCi0gICAgdmlydHVh
bCB2b2lkIHNob3coKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7Ci0KLSAgICB2
b2lkIHBvcHVwRGlkSGlkZSgpOwotICAgIHZvaWQgdmFsdWVDaGFuZ2VkKGludCBpbmRleCk7Ci0K
LSAgICB2b2lkIHNlbGVjdEl0ZW0oaW50IGluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rp
b25zLCBib29sIHNoaWZ0KTsKLSAgICBib29sIG11bHRpcGxlKCk7Ci0KLQotICAgIFFGb250IGZv
bnQoKSB7IHJldHVybiBtX3BvcHVwQ2xpZW50LT5tZW51U3R5bGUoKS5mb250KCkuZm9udCgpOyB9
Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFBvcHVwTWVudTsKLSAgICBQb3B1cE1lbnVD
bGllbnQqIG1fcG9wdXBDbGllbnQ7Ci0gICAgUVdlYlBhZ2VDbGllbnQqIG1fcGFnZUNsaWVudDsK
LSAgICBpbnQgbV9jdXJyZW50SW5kZXg7Ci0gICAgUVJlY3QgbV9nZW9tZXRyeTsKLX07Ci0KLX0K
LQotI2VuZGlmIC8vIFF0QWJzdHJhY3RXZWJQb3B1cF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2Vh
cmNoUG9wdXBNZW51UXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODdhNWRl
Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCBDIDIwMDYg
WmFjayBSdXNpbiA8emFja0BrZGUub3JnPgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
U2VhcmNoUG9wdXBNZW51LmgiCi0KLSNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCi17Ci19Ci0KLXZvaWQg
U2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mKQotewotfQotCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9h
ZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKLXsK
LX0KLQotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQotewotICAgIHJldHVybiB0cnVl
OwotfQotCi19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMTc3OTIxYy4u
OTc4MGVhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMjUsNyArMjUs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMzMsMTEgKzM1
LDExIEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9uRWxl
bWVudC5oIgogI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgogI2luY2x1ZGUgIlJlbmRlckJSLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTZWxlY3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1
c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtODgsOCArOTAsOSBAQCB2b2lkIFJlbmRlck1lbnVMaXN0
OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRp
bmdSaWdodChMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSgp
KSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdUb3AoTGVu
Z3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwog
ICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUo
KS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oc3R5bGUoKSksIEZpeGVkKSk7Ci0gICAgICAg
IAotICAgIGlmIChQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsK
KworICAgIFNlbGVjdFVJQ2xpZW50RmFjdG9yeSogZmFjdG9yeSA9IGRvY3VtZW50KCktPnBhZ2Uo
KS0+Y2hyb21lKCktPnNlbGVjdFVJQ2xpZW50RmFjdG9yeSgpOworICAgIGlmIChmYWN0b3J5ICYm
IGZhY3RvcnktPml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKICAgICAgICAgLy8g
SXRlbXMgaW4gdGhlIHBvcHVwIHdpbGwgbm90IHJlc3BlY3QgdGhlIENTUyB0ZXh0LWFsaWduIGFu
ZCBkaXJlY3Rpb24gcHJvcGVydGllcywKICAgICAgICAgLy8gc28gd2UgbXVzdCBhZGp1c3Qgb3Vy
IG93biBzdHlsZSB0byBtYXRjaC4KICAgICAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRU
ZXh0QWxpZ24oTEVGVCk7CkBAIC0yNzcsOCArMjgwLDExIEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6
OnNob3dQb3B1cCgpCiAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBvdGhlcndpc2Ug
d2UgbWlnaHQgdHJ5IHRvIGNyZWF0ZSBtX2lubmVyQmxvY2sKICAgICAvLyBpbnNpZGUgdGhlIHNo
b3dQb3B1cCBjYWxsIGFuZCBpdCB3b3VsZCBmYWlsLgogICAgIGNyZWF0ZUlubmVyQmxvY2soKTsK
LSAgICBpZiAoIW1fcG9wdXApCi0gICAgICAgIG1fcG9wdXAgPSBQb3B1cE1lbnU6OmNyZWF0ZSh0
aGlzKTsKKyAgICBpZiAoIW1fcG9wdXApIHsKKyAgICAgICAgU2VsZWN0VUlDbGllbnRGYWN0b3J5
KiBmYWN0b3J5ID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+c2VsZWN0VUlDbGllbnRG
YWN0b3J5KCk7CisgICAgICAgIEFTU0VSVChmYWN0b3J5KTsKKyAgICAgICAgbV9wb3B1cCA9IGZh
Y3RvcnktPmNyZWF0ZVNlbGVjdFVJQ2xpZW50KHRoaXMpOworICAgIH0KICAgICBTZWxlY3RFbGVt
ZW50KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUo
KSkpOwogICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaAppbmRleCBkNzJlMWE5Li5kNDdkMTU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBQ
b3B1cE1lbnU7CiBjbGFzcyBSZW5kZXJUZXh0OworY2xhc3MgU2VsZWN0VUlDbGllbnQ7CiAKICNp
ZiBFTkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcpCiBjbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1
YmxpYyBSZW5kZXJGbGV4aWJsZUJveCwgcHJpdmF0ZSBMaXN0UG9wdXBNZW51Q2xpZW50IHsKQEAg
LTEzMSw3ICsxMzEsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fbGFzdFNlbGVjdGVkSW5kZXg7
CiAKLSAgICBSZWZQdHI8UG9wdXBNZW51PiBtX3BvcHVwOworICAgIE93blB0cjxTZWxlY3RVSUNs
aWVudD4gbV9wb3B1cDsKICAgICBib29sIG1fcG9wdXBJc1Zpc2libGU7CiB9OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBk
MGFiMTA3Li43MzhhN2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKIAorI2luY2x1ZGUg
IkNocm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTM4LDcgKzM5LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAi
U2VsZWN0TWV0aG9kQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKQEAgLTYy
LDcgKzYzLDcgQEAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUoTm9kZSogbm9kZSwgYm9vbCBwbGFjZWgKIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSgpCiB7CiAgICAgaWYgKG1fc2Vh
cmNoUG9wdXApIHsKLSAgICAgICAgbV9zZWFyY2hQb3B1cC0+ZGlzY29ubmVjdENsaWVudCgpOwor
ICAgICAgICBtX3NlYXJjaFBvcHVwLT5zZWxlY3RVSUNsaWVudCgpLT5kaXNjb25uZWN0Q2xpZW50
KCk7CiAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSAwOwogICAgIH0KICAKQEAgLTEwNywxMSArMTA4
LDE4IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQo
KQogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAg
aWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBN
ZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBjcmVhdGVVSUNsaWVu
dCgpOwogCiAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVj
ZW50U2VhcmNoZXMpOwogfQogCitQYXNzT3duUHRyPFNlYXJjaFVJQ2xpZW50PiBSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OmNyZWF0ZVVJQ2xpZW50KCkKK3sKKyAgICBTZWxlY3RVSUNsaWVu
dEZhY3RvcnkqIGZhY3RvcnkgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5zZWxlY3RV
SUNsaWVudEZhY3RvcnkoKTsKKyAgICBBU1NFUlQoZmFjdG9yeSk7CisgICAgcmV0dXJuIGZhY3Rv
cnktPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KHRoaXMpOworfQorCiB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c3RvcFNlYXJjaEV2ZW50VGltZXIoKQogewogICAgIEFTU0VSVChub2Rl
KCktPmlzSFRNTEVsZW1lbnQoKSk7CkBAIC0xMjUsNyArMTMzLDcgQEAgdm9pZCBSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNlYXJjaFBvcHVwTWVu
dTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gY3JlYXRlVUlDbGllbnQo
KTsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0xNDUsMTQgKzE1MywxNCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5h
bWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3co
YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOwor
ICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPnNob3coYWJzb2x1dGVCb3VuZGlu
Z0JveFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgp
LT5pc0hUTUxFbGVtZW50KCkpOwogICAgIGlmIChtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3Nl
YXJjaFBvcHVwLT5oaWRlKCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50
KCktPmhpZGUoKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRy
ZWVIYXNDaGFuZ2VkKCkKQEAgLTY4NSw3ICs2OTMsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIH0KIAogICAgIGlmIChtX3NlYXJj
aFBvcHVwSXNWaXNpYmxlKQotICAgICAgICBtX3NlYXJjaFBvcHVwLT51cGRhdGVGcm9tRWxlbWVu
dCgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT5zZWxlY3RVSUNsaWVudCgpLT51cGRhdGVGcm9t
RWxlbWVudCgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2FjaGVT
ZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKQpAQCAtODgzLDcgKzg5MSw3IEBAIHZvaWQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4
LCBib29sIGZpcmVFdmVuCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBh
dXRvc2F2ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2Vh
cmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9zZWFyY2hQb3B1cCA9IGNyZWF0ZVVJQ2xpZW50KCk7CiAgICAgICAgICAgICAgICAg
bV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCmluZGV4IDkyZWNhZGQuLjFiYjgyMTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0zMiw3
ICszMiw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0
b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OwogY2xhc3Mg
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVudTsK
K2NsYXNzIFNlYXJjaFVJQ2xpZW50OwogY2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBU
ZXh0Q29udHJvbElubmVyRWxlbWVudDsKIApAQCAtMTU0LDggKzE1NCwxMCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBUaW1lcjxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+IG1fc2VhcmNo
RXZlbnRUaW1lcjsKLSAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBtX3NlYXJjaFBvcHVwOwor
ICAgIE93blB0cjxTZWFyY2hVSUNsaWVudD4gbV9zZWFyY2hQb3B1cDsKICAgICBWZWN0b3I8U3Ry
aW5nPiBtX3JlY2VudFNlYXJjaGVzOworCisgICAgUGFzc093blB0cjxTZWFyY2hVSUNsaWVudD4g
Y3JlYXRlVUlDbGllbnQoKTsKIH07CiAKIGlubGluZSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUqIHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKFJlbmRlck9iamVjdCogb2JqZWN0KQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L0NoYW5nZUxvZyBiL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2Uw
YzM3OS4uNjkxZjUwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDctMTkgIEx1aXogQWdvc3RpbmkgIDxs
dWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9u
IHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyNTkyCisKKyAgICAgICAgQ2xhc3MgUG9wdXBNZW51IGlzIG5vdyB1c2VkIHRvIHByb3Zp
ZGUgcG9wdXAgaW1wbGVtZW50YXRpb24gdG8gbWVudSBsaXN0cy4gSXQgaXMKKyAgICAgICAgaW1w
bGVtZW50ZWQgaW4gV2ViQ29yZS9wbGF0Zm9ybS4gQWxsIHBsYXRmb3JtcyBzaGFyZSB0aGUgc2Ft
ZSBoZWFkZXIgZmlsZSBhbmQgaW5jbHVkZQorICAgICAgICB0aGUgbmVlZGVkIGl0ZW1zIHRvIHRo
ZSBjbGFzcyB1c2luZyBwcmVwcm9jZXNzb3IgbWFjcm9zLiBUaGUgaW5zdGFuY2VzIG9mIHRoZSBj
bGFzcworICAgICAgICBQb3B1cE1lbnUgYXJlIGNyZWF0ZWQgYnkgYW4gc3RhdGljIG1ldGhvZC4g
Q2xhc3MgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gUG9wdXBNZW51LgorCisgICAgICAg
IFRoZSBpZGVhIGlzIHRvIHJlcGxhY2UgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudSBieSB0aGUgcHVyZSB2aXJ0dWFsIGNsYXNzZXMKKyAgICAgICAgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGFuZCB0byBjcmVhdGUgYSBuZXcgY2xhc3MgbmFtZWQgU2VsZWN0
VUlDbGllbnRGYWN0b3J5IHRvCisgICAgICAgIGJlIHVzZWQgdG8gcHJvdmlkZSBpbnN0YWNlcyBv
ZiB0aGUgVUkgY2xpZW50cy4KKworICAgICAgICBDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3b3Vs
ZCB0aGVuIGJlIHJlc3BvbnNpYmxlIHRvIHByb3ZpZGUgYW4gaW5zdGFuY2Ugb2YgY2xhc3MKKyAg
ICAgICAgU2VsZWN0VUlDbGllbnRGYWN0b3J5IHRvIGJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3Qg
YW5kIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS4gVGhpcworICAgICAgICB3YXkgdGhlIGlt
cGxlbWVudGF0aW9ucyBvZiBtZW51IGxpc3RzIHBvcHVwcyBtYXkgYmUgbW92ZWQgZnJvbSBXZWJD
b3JlIHRvIFdlYktpdCBsYXllci4KKworICAgICAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIHRoZSBj
aGFuZ2VzIGRlc2NyaWJlZCBhYm92ZSBhbmQsIGFzIGEgcHJvb2Ygb2YgY29uY2VwdCwgdGhpcyBw
YXRjaCBoYXMKKyAgICAgICAgY2hhbmdlZCBRdCBhbmQgTWFjIGltcGxlbWVudGF0aW9ucy4gQmVm
b3JlIHByb2NlZWRpbmcgSSB3b3VsZCBsaWtlIHRvIHJlY2VpdmUgc29tZSBmZWVkYmFjayBvZgor
ICAgICAgICBvdGhlciB3ZWJraXQgZGV2ZWxvcGVycy4KKworICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjM0YTQzMC4uNjc3YmRlNiAxMDA2NDQK
LS0tIGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ1LDYgKzM0NSwxMiBAQAog
CQlDMEM1QjNFRTExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEM1QjNFQzEx
NzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzBDNUIzRUYxMTc3QTRBMDAw
MkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVCM0VEMTE3N0E0QTAwMDJCMEFFRiAvKiBX
ZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0gKi87IH07CiAJCUNEOEVBQzczMTFDQUM5QTMwMDc3
NDA3NSAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDhFQUM3MjExQ0FDOUEzMDA3NzQwNzUgLyogSU9LaXQuZnJhbWV3
b3JrICovOyB9OworCQlEMzFBRTg2MDExRjRFRkIzMDA5MEYxQ0QgLyogUG9wdXBNZW51TWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzFBRTg1QTEx
RjRFRkIzMDA5MEYxQ0QgLyogUG9wdXBNZW51TWFjLmggKi87IH07CisJCUQzMUFFODYxMTFGNEVG
QjMwMDkwRjFDRCAvKiBQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMzFBRTg1QjExRjRFRkIzMDA5MEYxQ0QgLyogUG9wdXBNZW51
TWFjLm1tICovOyB9OworCQlEMzFBRTg2MjExRjRFRkIzMDA5MEYxQ0QgLyogU2VhcmNoUG9wdXBN
ZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
MzFBRTg1QzExRjRFRkIzMDA5MEYxQ0QgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IH07CisJ
CUQzMUFFODYzMTFGNEVGQjMwMDkwRjFDRCAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzFBRTg1RDExRjRFRkIz
MDA5MEYxQ0QgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9OworCQlEMzFBRTg2NDExRjRF
RkIzMDA5MEYxQ0QgLyogV2ViU2VsZWN0TWV0aG9kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzFBRTg1RTExRjRFRkIzMDA5MEYxQ0QgLyog
V2ViU2VsZWN0TWV0aG9kQ2xpZW50LmggKi87IH07CisJCUQzMUFFODY1MTFGNEVGQjMwMDkwRjFD
RCAvKiBXZWJTZWxlY3RNZXRob2RDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMzFBRTg1RjExRjRFRkIzMDA5MEYxQ0QgLyogV2ViU2VsZWN0
TWV0aG9kQ2xpZW50Lm1tICovOyB9OwogCQlERDdDREVFNzBBMjNCQTlFMDAwNjk5MjggLyogV2Vi
VHlwZXNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREQ3Q0RFRTYwQTIzQkE5RTAwMDY5OTI4IC8qIFdlYlR5cGVzSW50ZXJuYWwuaCAqLzsg
fTsKIAkJREQ4OTY4MjAwOUFBODcyNDAwOTdFN0YwIC8qIFdlYkVsZW1lbnREaWN0aW9uYXJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDg5NjgxRTA5
QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERpY3Rpb25hcnkuaCAqLzsgfTsKIAkJREQ4OTY4
MjEwOUFBODcyNDAwOTdFN0YwIC8qIFdlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQ4OTY4MUYwOUFBODcyNDAwOTdF
N0YwIC8qIFdlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tICovOyB9OwpAQCAtNjQ4LDYgKzY1NCwxMiBA
QAogCQlDMEM1QjNFQzExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJDb250ZW50VVJMUGF0
dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1QjNFRDExNzdBNEEwMDAy
QjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDhFQUM3MjExQ0FDOUEzMDA3NzQwNzUgLyogSU9LaXQu
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFi
c29sdXRlPiI7IH07CisJCUQzMUFFODVBMTFGNEVGQjMwMDkwRjFDRCAvKiBQb3B1cE1lbnVNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51TWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMUFFODVCMTFGNEVGQjMwMDkwRjFDRCAvKiBQb3B1
cE1lbnVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQb3B1
cE1lbnVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMUFFODVDMTFGNEVG
QjMwMDkwRjFDRCAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQzMUFFODVEMTFGNEVGQjMwMDkwRjFDRCAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMUFFODVFMTFGNEVGQjMwMDkw
RjFDRCAvKiBXZWJTZWxlY3RNZXRob2RDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2VsZWN0TWV0aG9kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUQzMUFFODVGMTFGNEVGQjMwMDkwRjFDRCAvKiBXZWJTZWxlY3RNZXRob2RDbGllbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTZWxlY3RNZXRo
b2RDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREN0NERUU2MEEyM0JB
OUUwMDA2OTkyOCAvKiBXZWJUeXBlc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlR5cGVzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREQ4OTY4MUUwOUFBODcyNDAwOTdFN0YwIC8qIFdlYkVsZW1lbnREaWN0aW9uYXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRWxlbWVu
dERpY3Rpb25hcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUREODk2ODFGMDlBQTg3MjQwMDk3RTdGMCAvKiBXZWJFbGVtZW50RGlj
dGlvbmFyeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViRWxlbWVudERpY3Rpb25hcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTIyOSw2ICsxMjQxLDEyIEBA
CiAJCUY1QjM2QjQwMDI4MURFODcwMTg2MzVDQiAvKiBXZWJDb3JlU3VwcG9ydCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRDMxQUU4NUExMUY0RUZCMzAw
OTBGMUNEIC8qIFBvcHVwTWVudU1hYy5oICovLAorCQkJCUQzMUFFODVCMTFGNEVGQjMwMDkwRjFD
RCAvKiBQb3B1cE1lbnVNYWMubW0gKi8sCisJCQkJRDMxQUU4NUMxMUY0RUZCMzAwOTBGMUNEIC8q
IFNlYXJjaFBvcHVwTWVudU1hYy5oICovLAorCQkJCUQzMUFFODVEMTFGNEVGQjMwMDkwRjFDRCAv
KiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gKi8sCisJCQkJRDMxQUU4NUUxMUY0RUZCMzAwOTBGMUNE
IC8qIFdlYlNlbGVjdE1ldGhvZENsaWVudC5oICovLAorCQkJCUQzMUFFODVGMTFGNEVGQjMwMDkw
RjFDRCAvKiBXZWJTZWxlY3RNZXRob2RDbGllbnQubW0gKi8sCiAJCQkJQjY4MDQ5NzEwRkZCQ0VD
MTAwOUY3RjYyIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUuaCAqLywKIAkJCQlCNjgwNDk3MjBGRkJD
RUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25DYWNoZS5tbSAqLywKIAkJCQk1MUNCRkNBQzBE
MTBFNkM1MDAyREJGNTEgLyogV2ViQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaCAqLywKQEAgLTE1
NTcsNiArMTU3NSw5IEBACiAJCQkJOTM5ODEwNzEwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQzQjBGODEwNzZDM0Y3MDAwMzlCOTYgLyog
V2ViV2luZG93QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUY0NDg0RjEwMzM4RThD
MDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzMUFF
ODYwMTFGNEVGQjMwMDkwRjFDRCAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUQzMUFFODYyMTFGNEVGQjMwMDkwRjFDRCAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUQzMUFFODY0MTFGNEVGQjMwMDkwRjFDRCAvKiBXZWJTZWxlY3RNZXRob2RD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTkxNiw2ICsxOTM3LDkgQEAKIAkJCQk5Mzk4MTBF
ODA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld0ZhY3RvcnkubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkwRkQzQjBGOTEwNzZDM0Y3MDAwMzlCOTYgLyogV2ViV2luZG93QW5pbWF0aW9uLm0gaW4gU291
cmNlcyAqLywKIAkJCQk0MUY0NDg1MDEwMzM4RThDMDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZh
dGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlEMzFBRTg2MTExRjRFRkIzMDA5MEYxQ0QgLyogUG9w
dXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRDMxQUU4NjMxMUY0RUZCMzAwOTBGMUNE
IC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUQzMUFFODY1MTFG
NEVGQjMwMDkwRjFDRCAvKiBXZWJTZWxlY3RNZXRob2RDbGllbnQubW0gaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggZmU4NDg3OS4uOWJiY2RmMCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxMC0wNy0xOSAg
THVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jp
bmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBDbGFzcyBQb3B1cE1lbnUgaXMg
bm93IHVzZWQgdG8gcHJvdmlkZSBwb3B1cCBpbXBsZW1lbnRhdGlvbiB0byBtZW51IGxpc3RzLiBJ
dCBpcworICAgICAgICBpbXBsZW1lbnRlZCBpbiBXZWJDb3JlL3BsYXRmb3JtLiBBbGwgcGxhdGZv
cm1zIHNoYXJlIHRoZSBzYW1lIGhlYWRlciBmaWxlIGFuZCBpbmNsdWRlCisgICAgICAgIHRoZSBu
ZWVkZWQgaXRlbXMgdG8gdGhlIGNsYXNzIHVzaW5nIHByZXByb2Nlc3NvciBtYWNyb3MuIFRoZSBp
bnN0YW5jZXMgb2YgdGhlIGNsYXNzCisgICAgICAgIFBvcHVwTWVudSBhcmUgY3JlYXRlZCBieSBh
biBzdGF0aWMgbWV0aG9kLiBDbGFzcyBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBQb3B1
cE1lbnUuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gcmVwbGFjZSBjbGFzc2VzIFBvcHVwTWVu
dSBhbmQgU2VhcmNoUG9wdXBNZW51IGJ5IHRoZSBwdXJlIHZpcnR1YWwgY2xhc3NlcworICAgICAg
ICBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgYW5kIHRvIGNyZWF0ZSBhIG5ldyBj
bGFzcyBuYW1lZCBTZWxlY3RVSUNsaWVudEZhY3RvcnkgdG8KKyAgICAgICAgYmUgdXNlZCB0byBw
cm92aWRlIGluc3RhY2VzIG9mIHRoZSBVSSBjbGllbnRzLgorCisgICAgICAgIENocm9tZSBhbmQg
Q2hyb21lQ2xpZW50IHdvdWxkIHRoZW4gYmUgcmVzcG9uc2libGUgdG8gcHJvdmlkZSBhbiBpbnN0
YW5jZSBvZiBjbGFzcworICAgICAgICBTZWxlY3RVSUNsaWVudEZhY3RvcnkgdG8gYmUgdXNlZCBi
eSBSZW5kZXJNZW51TGlzdCBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLiBUaGlzCisg
ICAgICAgIHdheSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIG1lbnUgbGlzdHMgcG9wdXBzIG1heSBi
ZSBtb3ZlZCBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0IGxheWVyLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggY29udGFpbnMgdGhlIGNoYW5nZXMgZGVzY3JpYmVkIGFib3ZlIGFuZCwgYXMgYSBwcm9vZiBv
ZiBjb25jZXB0LCB0aGlzIHBhdGNoIGhhcworICAgICAgICBjaGFuZ2VkIFF0IGFuZCBNYWMgaW1w
bGVtZW50YXRpb25zLiBCZWZvcmUgcHJvY2VlZGluZyBJIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBz
b21lIGZlZWRiYWNrIG9mCisgICAgICAgIG90aGVyIHdlYmtpdCBkZXZlbG9wZXJzLgorCisgICAg
ICAgIEZpbGVzIFBvcHVwTWVudU1hYy5tbSBhbmQgU2VhcmNoUG9wdXBNZW51TWFjLm1tIGhhdmUg
YmVlbiBtb3ZlZCBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0IGxheWVyLgorICAgICAgICBUaGV5IGp1
c3QgaGF2ZSBtaW5vciBjaGFuZ2VzLiBIZWFkZXJzIFBvcHVwTWVudU1hYy5oIGFuZCBTZWFyY2hQ
b3B1cE1lbnVNYWMuaCBoYXZlIGJlZW4gYWRkZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9Qb3B1cE1lbnVNYWMuaDogQWRkZWQuCisgICAgICAgIChQb3B1cE1lbnU6OmRpc2Nvbm5lY3RD
bGllbnQpOgorICAgICAgICAoUG9wdXBNZW51OjpjbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1BvcHVwTWVudU1hYy5tbTogQWRkZWQuCisgICAgICAgIChQb3B1cE1lbnU6OlBvcHVw
TWVudSk6CisgICAgICAgIChQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgorICAgICAgICAoUG9wdXBN
ZW51OjpjbGVhcik6CisgICAgICAgIChQb3B1cE1lbnU6OnBvcHVsYXRlKToKKyAgICAgICAgKFBv
cHVwTWVudTo6c2hvdyk6CisgICAgICAgIChQb3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAoUG9w
dXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChQb3B1cE1lbnU6Oml0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9TZWFyY2hQ
b3B1cE1lbnVNYWMuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9w
dXBNZW51TWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6
U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmF1dG9zYXZlS2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisKKyAgICAgICAgTWV0aG9k
IHNlbGVjdFVJQ2xpZW50RmFjdG9yeSBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgaW4gY2xhc3MgV2Vi
Q2hyb21lQ2xpZW50LgorICAgICAgICBJdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFz
cyBXZWJTZWxlY3RVSUNsaWVudEZhY3RvcnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0VUlDbGll
bnRGYWN0b3J5KToKKworICAgICAgICBDbGFzc2VzIFdlYlNlbGVjdFVJQ2xpZW50LCBXZWJTZWFy
Y2hVSUNsaWVudCBhbmQgV2ViU2VsZWN0VUlDbGllbnRGYWN0b3J5IGhhdmUgYmVlbgorICAgICAg
ICBpbXBsZW1lbnRlZC4gV2ViU2VsZWN0VUlDbGllbnQgYW5kIFdlYlNlYXJjaFVJQ2xpZW50IGFy
ZSBqdXN0IHVzZXJzIG9mIGNsYXNzZXMgUG9wdXBNZW51CisgICAgICAgIGFuZCBTZWFyY2hQb3B1
cE1lbnUgcmVzcGVjdGl2ZWxseS4gVGhlc2UgbGF0ZXN0IG9uZXMgaGF2ZSBqdXN0IGJlZW4gbW92
ZWQgZnJvbSBXZWJDb3JlIHRvCisgICAgICAgIFdlYktpdCBsYXllci4gCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJTZWxlY3RNZXRob2RDbGllbnQuaDogQWRkZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViU2VsZWN0TWV0aG9kQ2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYlNlbGVjdFVJQ2xpZW50OjpXZWJTZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJTZWxl
Y3RVSUNsaWVudDo6c2hvdyk6CisgICAgICAgIChXZWJTZWxlY3RVSUNsaWVudDo6aGlkZSk6Cisg
ICAgICAgIChXZWJTZWxlY3RVSUNsaWVudDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAo
V2ViU2VsZWN0VUlDbGllbnQ6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViU2VhcmNo
VUlDbGllbnQ6OldlYlNlYXJjaFVJQ2xpZW50KToKKyAgICAgICAgKFdlYlNlYXJjaFVJQ2xpZW50
OjpzZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJTZWFyY2hVSUNsaWVudDo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKyAgICAgICAgKFdlYlNlYXJjaFVJQ2xpZW50Ojpsb2FkUmVjZW50U2VhcmNo
ZXMpOgorICAgICAgICAoV2ViU2VhcmNoVUlDbGllbnQ6OmVuYWJsZWQpOgorICAgICAgICAoV2Vi
U2VsZWN0VUlDbGllbnRGYWN0b3J5OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6Cisg
ICAgICAgIChXZWJTZWxlY3RVSUNsaWVudEZhY3Rvcnk6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KyAgICAgICAgKFdlYlNlbGVjdFVJQ2xpZW50RmFjdG9yeTo6Y3JlYXRlU2VhcmNoVUlDbGllbnQp
OgorCiAyMDEwLTA3LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1BvcHVwTWVudU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZGM1
ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5oCkBAIC0wLDAgKzEsMzkgQEAKKyNpZm5kZWYgUG9wdXBNZW51TWFjX2gKKyNkZWZpbmUg
UG9wdXBNZW51TWFjX2gKKworI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvSW50UmVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnVDbGllbnQuaD4K
KyNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmVmQ291bnRlZC5oPgor
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7CisK
K2NsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVudT4geworcHVibGlj
OgorICAgIFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBN
ZW51KCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQgPSAw
OyB9CisKKyAgICB2b2lkIHNob3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OkZy
YW1lVmlldyosIGludCBpbmRleCk7CisgICAgdm9pZCBoaWRlKCk7CisKKyAgICB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCk7CisKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAgIHN0YXRpYyBib29sIGl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworCisgICAgdm9pZCBjbGVhcigpOworICAgIHZv
aWQgcG9wdWxhdGUoKTsKKworICAgIFJldGFpblB0cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1
cDsKKworfTsKKworI2VuZGlmIC8vIFBvcHVwTWVudU1hY19oCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvUG9wdXBNZW51TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmI5ODMyYmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudU1hYy5tbQpAQCAtMCwwICsxLDE5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKy8vI2ltcG9ydCAiV2ViQ29y
ZS9jb25maWcuaCIKKyNpbXBvcnQgIlBvcHVwTWVudU1hYy5oIgorCisjaW1wb3J0IDxXZWJDb3Jl
L0FYT2JqZWN0Q2FjaGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ2hyb21lLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0Nocm9tZUNsaWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKworUG9wdXBNZW51OjpQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwQ2xpZW50
KGNsaWVudCkKK3sKK30KKworUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK3sKKyAgICBpZiAobV9w
b3B1cCkKKyAgICAgICAgW21fcG9wdXAuZ2V0KCkgc2V0Q29udHJvbFZpZXc6bmlsXTsKK30KKwor
dm9pZCBQb3B1cE1lbnU6OmNsZWFyKCkKK3sKKyAgICBpZiAobV9wb3B1cCkKKyAgICAgICAgW21f
cG9wdXAuZ2V0KCkgcmVtb3ZlQWxsSXRlbXNdOworfQorCit2b2lkIFBvcHVwTWVudTo6cG9wdWxh
dGUoKQoreworICAgIGlmIChtX3BvcHVwKQorICAgICAgICBjbGVhcigpOworICAgIGVsc2Ugewor
ICAgICAgICBtX3BvcHVwID0gW1tOU1BvcFVwQnV0dG9uQ2VsbCBhbGxvY10gaW5pdFRleHRDZWxs
OkAiIiBwdWxsc0Rvd246IWNsaWVudCgpLT5zaG91bGRQb3BPdmVyKCldOworICAgICAgICBbbV9w
b3B1cC5nZXQoKSByZWxlYXNlXTsgLy8gcmVsZWFzZSBoZXJlIHNpbmNlIHRoZSBSZXRhaW5QdHIg
aGFzIHJldGFpbmVkIHRoZSBvYmplY3QgYWxyZWFkeQorICAgICAgICBbbV9wb3B1cC5nZXQoKSBz
ZXRVc2VzSXRlbUZyb21NZW51Ok5PXTsKKyAgICAgICAgW21fcG9wdXAuZ2V0KCkgc2V0QXV0b2Vu
YWJsZXNJdGVtczpOT107CisgICAgfQorCisgICAgQk9PTCBtZXNzYWdlc0VuYWJsZWQgPSBbW21f
cG9wdXAuZ2V0KCkgbWVudV0gbWVudUNoYW5nZWRNZXNzYWdlc0VuYWJsZWRdOworICAgIFtbbV9w
b3B1cC5nZXQoKSBtZW51XSBzZXRNZW51Q2hhbmdlZE1lc3NhZ2VzRW5hYmxlZDpOT107CisgICAg
CisgICAgLy8gRm9yIHB1bGxEb3duIG1lbnVzIHRoZSBmaXJzdCBpdGVtIGlzIGhpZGRlbi4KKyAg
ICBpZiAoIWNsaWVudCgpLT5zaG91bGRQb3BPdmVyKCkpCisgICAgICAgIFttX3BvcHVwLmdldCgp
IGFkZEl0ZW1XaXRoVGl0bGU6QCIiXTsKKworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaW50
IHNpemUgPSBjbGllbnQoKS0+bGlzdFNpemUoKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
c2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChjbGllbnQoKS0+aXRlbUlzU2VwYXJhdG9yKGkpKQor
ICAgICAgICAgICAgW1ttX3BvcHVwLmdldCgpIG1lbnVdIGFkZEl0ZW06W05TTWVudUl0ZW0gc2Vw
YXJhdG9ySXRlbV1dOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlIHN0eWxlID0gY2xpZW50KCktPml0ZW1TdHlsZShpKTsKKyAgICAgICAgICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkqIGF0dHJpYnV0ZXMgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxs
b2NdIGluaXRdOworICAgICAgICAgICAgaWYgKHN0eWxlLmZvbnQoKSAhPSBXZWJDb3JlOjpGb250
KCkpIHsKKyAgICAgICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBzdHlsZS5mb250KCkucHJpbWFy
eUZvbnQoKS0+Z2V0TlNGb250KCk7CisgICAgICAgICAgICAgICAgaWYgKCFmb250KSB7CisgICAg
ICAgICAgICAgICAgICAgIENHRmxvYXQgc2l6ZSA9IHN0eWxlLmZvbnQoKS5wcmltYXJ5Rm9udCgp
LT5wbGF0Zm9ybURhdGEoKS5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgIGZvbnQgPSBzdHls
ZS5mb250KCkud2VpZ2h0KCkgPCBXZWJDb3JlOjpGb250V2VpZ2h0Qm9sZCA/IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpzaXplXSA6IFtOU0ZvbnQgYm9sZFN5c3RlbUZvbnRPZlNpemU6c2l6ZV07
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVj
dDpmb250IGZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUgZm9yZWdyb3VuZCBh
bmQgYmFja2dyb3VuZCBjb2xvcnMuCisgICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0
byBjdXN0b21pemUgdGV4dCBjb2xvciB3aGVuIGFuIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQuCisgICAg
ICAgICAgICBOU0F0dHJpYnV0ZWRTdHJpbmcqIHN0cmluZyA9IFtbTlNBdHRyaWJ1dGVkU3RyaW5n
IGFsbG9jXSBpbml0V2l0aFN0cmluZzpjbGllbnQoKS0+aXRlbVRleHQoaSkgYXR0cmlidXRlczph
dHRyaWJ1dGVzXTsKKyAgICAgICAgICAgIFthdHRyaWJ1dGVzIHJlbGVhc2VdOworCisgICAgICAg
ICAgICBbbV9wb3B1cC5nZXQoKSBhZGRJdGVtV2l0aFRpdGxlOkAiIl07CisgICAgICAgICAgICBO
U01lbnVJdGVtKiBtZW51SXRlbSA9IFttX3BvcHVwLmdldCgpIGxhc3RJdGVtXTsKKyAgICAgICAg
ICAgIFttZW51SXRlbSBzZXRBdHRyaWJ1dGVkVGl0bGU6c3RyaW5nXTsKKyAgICAgICAgICAgIFtt
ZW51SXRlbSBzZXRFbmFibGVkOmNsaWVudCgpLT5pdGVtSXNFbmFibGVkKGkpXTsKKyAgICAgICAg
ICAgIFttZW51SXRlbSBzZXRUb29sVGlwOmNsaWVudCgpLT5pdGVtVG9vbFRpcChpKV07CisgICAg
ICAgICAgICBbc3RyaW5nIHJlbGVhc2VdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBB
bGxvdyB0aGUgYWNjZXNzaWJsZSB0ZXh0IG9mIHRoZSBpdGVtIHRvIGJlIG92ZXJyaWRlbiBpZiBu
ZWNlc3NhcnkuCisgICAgICAgICAgICBpZiAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICphY2Nlc3NpYmls
aXR5T3ZlcnJpZGUgPSBjbGllbnQoKS0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0KGkpOworICAgICAg
ICAgICAgICAgIGlmIChbYWNjZXNzaWJpbGl0eU92ZXJyaWRlIGxlbmd0aF0pCisgICAgICAgICAg
ICAgICAgICAgIFttZW51SXRlbSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTphY2Nlc3Np
YmlsaXR5T3ZlcnJpZGUgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0
cmlidXRlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIFtbbV9wb3B1
cC5nZXQoKSBtZW51XSBzZXRNZW51Q2hhbmdlZE1lc3NhZ2VzRW5hYmxlZDptZXNzYWdlc0VuYWJs
ZWRdOworfQorCit2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBy
LCBXZWJDb3JlOjpGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKK3sKKyAgICBwb3B1bGF0ZSgpOwor
ICAgIGludCBudW1JdGVtcyA9IFttX3BvcHVwLmdldCgpIG51bWJlck9mSXRlbXNdOworICAgIGlm
IChudW1JdGVtcyA8PSAwKSB7CisgICAgICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgICAgIGNs
aWVudCgpLT5wb3B1cERpZEhpZGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBBU1NF
UlQobnVtSXRlbXMgPiBpbmRleCk7CisKKyAgICAvLyBXb3JrYXJvdW5kIGZvciBjcmF6eSBidWcg
d2hlcmUgYSBzZWxlY3RlZCBpbmRleCBvZiAtMSBmb3IgYSBtZW51IHdpdGggb25seSAxIGl0ZW0g
d2lsbCBjYXVzZSBhIGJsYW5rIG1lbnUuCisgICAgaWYgKGluZGV4ID09IC0xICYmIG51bUl0ZW1z
ID09IDIgJiYgIWNsaWVudCgpLT5zaG91bGRQb3BPdmVyKCkgJiYgIVtbbV9wb3B1cC5nZXQoKSBp
dGVtQXRJbmRleDoxXSBpc0VuYWJsZWRdKQorICAgICAgICBpbmRleCA9IDA7CisKKyAgICBOU1Zp
ZXcqIHZpZXcgPSB2LT5kb2N1bWVudFZpZXcoKTsKKworICAgIFttX3BvcHVwLmdldCgpIGF0dGFj
aFBvcFVwV2l0aEZyYW1lOnIgaW5WaWV3OnZpZXddOworICAgIFttX3BvcHVwLmdldCgpIHNlbGVj
dEl0ZW1BdEluZGV4OmluZGV4XTsKKworICAgIE5TTWVudSogbWVudSA9IFttX3BvcHVwLmdldCgp
IG1lbnVdOworICAgIAorICAgIE5TUG9pbnQgbG9jYXRpb247CisgICAgTlNGb250KiBmb250ID0g
Y2xpZW50KCktPm1lbnVTdHlsZSgpLmZvbnQoKS5wcmltYXJ5Rm9udCgpLT5nZXROU0ZvbnQoKTsK
KworICAgIC8vIFRoZXNlIHZhbHVlcyB3ZXJlIGJvcnJvd2VkIGZyb20gQXBwS2l0IHRvIG1hdGNo
IHRoZWlyIHBsYWNlbWVudCBvZiB0aGUgbWVudS4KKyAgICBjb25zdCBpbnQgcG9wT3Zlckhvcml6
b250YWxBZGp1c3QgPSAtMTA7CisgICAgY29uc3QgaW50IHBvcFVuZGVySG9yaXpvbnRhbEFkanVz
dCA9IDY7CisgICAgY29uc3QgaW50IHBvcFVuZGVyVmVydGljYWxBZGp1c3QgPSA2OworICAgIGlm
IChjbGllbnQoKS0+c2hvdWxkUG9wT3ZlcigpKSB7CisgICAgICAgIE5TUmVjdCB0aXRsZUZyYW1l
ID0gW21fcG9wdXAuZ2V0KCkgdGl0bGVSZWN0Rm9yQm91bmRzOnJdOworICAgICAgICBpZiAodGl0
bGVGcmFtZS5zaXplLndpZHRoIDw9IDAgfHwgdGl0bGVGcmFtZS5zaXplLmhlaWdodCA8PSAwKQor
ICAgICAgICAgICAgdGl0bGVGcmFtZSA9IHI7CisgICAgICAgIGZsb2F0IHZlcnRPZmZzZXQgPSBy
b3VuZGYoKE5TTWF4WShyKSAtIE5TTWF4WSh0aXRsZUZyYW1lKSkgKyBOU0hlaWdodCh0aXRsZUZy
YW1lKSk7CisgICAgICAgIC8vIEFkanVzdCBmb3IgZm9udHMgb3RoZXIgdGhhbiB0aGUgc3lzdGVt
IGZvbnQuCisgICAgICAgIE5TRm9udCogZGVmYXVsdEZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRP
ZlNpemU6W2ZvbnQgcG9pbnRTaXplXV07CisgICAgICAgIHZlcnRPZmZzZXQgKz0gW2ZvbnQgZGVz
Y2VuZGVyXSAtIFtkZWZhdWx0Rm9udCBkZXNjZW5kZXJdOworICAgICAgICB2ZXJ0T2Zmc2V0ID0g
Zm1pbmYoTlNIZWlnaHQociksIHZlcnRPZmZzZXQpOworICAgIAorICAgICAgICBsb2NhdGlvbiA9
IE5TTWFrZVBvaW50KE5TTWluWChyKSArIHBvcE92ZXJIb3Jpem9udGFsQWRqdXN0LCBOU01heFko
cikgLSB2ZXJ0T2Zmc2V0KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbG9jYXRpb24gPSBOU01ha2VQ
b2ludChOU01pblgocikgKyBwb3BVbmRlckhvcml6b250YWxBZGp1c3QsIE5TTWF4WShyKSArIHBv
cFVuZGVyVmVydGljYWxBZGp1c3QpOyAgICAKKworICAgIC8vIFNhdmUgdGhlIGN1cnJlbnQgZXZl
bnQgdGhhdCB0cmlnZ2VyZWQgdGhlIHBvcHVwLCBzbyB3ZSBjYW4gY2xlYW4gdXAgb3VyIGV2ZW50
CisgICAgLy8gc3RhdGUgYWZ0ZXIgdGhlIE5TTWVudSBnb2VzIGF3YXkuCisgICAgUmVmUHRyPFdl
YkNvcmU6OkZyYW1lPiBmcmFtZSA9IHYtPmZyYW1lKCk7CisgICAgTlNFdmVudCogZXZlbnQgPSBb
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5jdXJyZW50TlNFdmVudCgpIHJldGFpbl07CisgICAgCisg
ICAgUmVmUHRyPFBvcHVwTWVudT4gcHJvdGVjdG9yKHRoaXMpOworCisgICAgUmV0YWluUHRyPE5T
Vmlldz4gZHVtbXlWaWV3KEFkb3B0TlMsIFtbTlNWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJd
KTsKKyAgICBbdmlldyBhZGRTdWJ2aWV3OmR1bW15Vmlldy5nZXQoKV07CisgICAgbG9jYXRpb24g
PSBbZHVtbXlWaWV3LmdldCgpIGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzp2aWV3XTsK
KyAgICAKKyAgICBpZiAoV2ViQ29yZTo6UGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCisgICAg
ICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+d2lsbFBvcFVwTWVudShtZW51KTsKKyAgICB3
a1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcu
Z2V0KCksIGluZGV4LCBmb250KTsKKworICAgIFttX3BvcHVwLmdldCgpIGRpc21pc3NQb3BVcF07
CisgICAgW2R1bW15Vmlldy5nZXQoKSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKworICAgIGlmIChj
bGllbnQoKSkgeworICAgICAgICBpbnQgbmV3SW5kZXggPSBbbV9wb3B1cC5nZXQoKSBpbmRleE9m
U2VsZWN0ZWRJdGVtXTsKKyAgICAgICAgY2xpZW50KCktPnBvcHVwRGlkSGlkZSgpOworCisgICAg
ICAgIC8vIEFkanVzdCBuZXdJbmRleCBmb3IgaGlkZGVuIGZpcnN0IGl0ZW0uCisgICAgICAgIGlm
ICghY2xpZW50KCktPnNob3VsZFBvcE92ZXIoKSkKKyAgICAgICAgICAgIG5ld0luZGV4LS07CisK
KyAgICAgICAgaWYgKGluZGV4ICE9IG5ld0luZGV4ICYmIG5ld0luZGV4ID49IDApCisgICAgICAg
ICAgICBjbGllbnQoKS0+dmFsdWVDaGFuZ2VkKG5ld0luZGV4KTsKKworICAgICAgICAvLyBHaXZl
IHRoZSBmcmFtZSBhIGNoYW5jZSB0byBmaXggdXAgaXRzIGV2ZW50IHN0YXRlLCBzaW5jZSB0aGUg
cG9wdXAgZWF0cyBhbGwgdGhlCisgICAgICAgIC8vIGV2ZW50cyBkdXJpbmcgdHJhY2tpbmcuCisg
ICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRy
YWNraW5nKGV2ZW50KTsKKyAgICB9CisKKyAgICBbZXZlbnQgcmVsZWFzZV07Cit9CisKK3ZvaWQg
UG9wdXBNZW51OjpoaWRlKCkKK3sKKyAgICBbbV9wb3B1cC5nZXQoKSBkaXNtaXNzUG9wVXBdOwor
fQorICAgIAordm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKK30KKworYm9v
bCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1
cm4gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNo
UG9wdXBNZW51TWFjLmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVu
dU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZTIyMjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudU1h
Yy5oCkBAIC0wLDAgKzEsMjQgQEAKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51TWFjX2gKKyNkZWZp
bmUgU2VhcmNoUG9wdXBNZW51TWFjX2gKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBBdG9taWNTdHJpbmc7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAg
U2VhcmNoUG9wdXBNZW51KCk7CisKKyAgICB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Cisg
ICAgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworCisgICAgYm9vbCBlbmFibGVkKCk7CisKK307CisK
K30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudU1hY19oCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudU1hYy5tbSBiL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmZkZDBjYjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudU1hYy5tbQpAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbXBvcnQgIlNlYXJjaFBv
cHVwTWVudU1hYy5oIgorCisjaW1wb3J0IDxXZWJDb3JlL0F0b21pY1N0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1NlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KCkKK3sK
K30KKworc3RhdGljIE5TU3RyaW5nKiBhdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCit7
CisgICAgcmV0dXJuIFtAImNvbS5hcHBsZS5XZWJLaXQuc2VhcmNoRmllbGQ6IiBzdHJpbmdCeUFw
cGVuZGluZ1N0cmluZzpuYW1lXTsKK30KKworYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQo
KQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQoreworICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2l6ZV90IHNpemUgPSBzZWFyY2hJdGVtcy5zaXplKCk7CisgICAgaWYgKHNp
emUgPT0gMCkKKyAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
cmVtb3ZlT2JqZWN0Rm9yS2V5OmF1dG9zYXZlS2V5KG5hbWUpXTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgTlNNdXRhYmxlQXJyYXkqIGl0ZW1zID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdp
dGhDYXBhY2l0eTpzaXplXTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpCisgICAgICAgICAgICBbaXRlbXMgYWRkT2JqZWN0OnNlYXJjaEl0ZW1zW2ldXTsKKyAgICAg
ICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0T2JqZWN0Oml0ZW1z
IGZvcktleTphdXRvc2F2ZUtleShuYW1lKV07CisgICAgICAgIFtpdGVtcyByZWxlYXNlXTsKKyAg
ICB9Cit9CisKK3ZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit7CisgICAg
aWYgKG5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWFyY2hJdGVtcy5j
bGVhcigpOworICAgIE5TQXJyYXkqIGl0ZW1zID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYXJyYXlGb3JLZXk6YXV0b3NhdmVLZXkobmFtZSldOworICAgIHNpemVfdCBz
aXplID0gW2l0ZW1zIGNvdW50XTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBOU1N0cmluZyogaXRlbSA9IFtpdGVtcyBvYmplY3RBdEluZGV4OmldOwor
ICAgICAgICBpZiAoW2l0ZW0gaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKKyAgICAg
ICAgICAgIHNlYXJjaEl0ZW1zLmFwcGVuZChpdGVtKTsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdp
dCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDcwN2QwODAuLjJjZGU0
ZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAt
MjksNiArMjksNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0Nocm9tZUNsaWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgorI2ltcG9ydCAiV2ViU2VsZWN0TWV0aG9kQ2xp
ZW50LmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogCiBAY2xhc3MgV2ViVmlldzsKQEAgLTg4
LDYgKzg5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKKworICAg
IHZpcnR1YWwgV2ViQ29yZTo6U2VsZWN0VUlDbGllbnRGYWN0b3J5KiBzZWxlY3RVSUNsaWVudEZh
Y3RvcnkoKSB7IHJldHVybiAmbV9zZWxlY3RGYWN0b3J5OyB9CiAgICAgCiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKQEAgLTE2OSw0ICsx
NzIsNSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OworICAg
IFdlYlNlbGVjdFVJQ2xpZW50RmFjdG9yeSBtX3NlbGVjdEZhY3Rvcnk7CiB9OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTZWxlY3RNZXRob2RDbGllbnQuaCBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU2VsZWN0TWV0aG9kQ2xpZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRlMDc1YwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU2VsZWN0TWV0aG9kQ2xpZW50LmgKQEAgLTAsMCAr
MSw0MCBAQAorI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCisjaW1wb3J0ICJTZWFyY2hQb3B1cE1l
bnVNYWMuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvU2VsZWN0TWV0aG9kQ2xpZW50Lmg+CisKK2NsYXNzIFdlYlNlbGVjdFVJQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJTZWxl
Y3RVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6RnJhbWVWaWV3
KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50
KCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFBvcHVwTWVudT4gbV9tZW51OworfTsKKworY2xh
c3MgV2ViU2VhcmNoVUlDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6U2VhcmNoVUlDbGllbnQgewor
cHVibGljOgorICAgIFdlYlNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCog
Y2xpZW50KTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2VsZWN0VUlDbGllbnQqIHNlbGVjdFVJ
Q2xpZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJD
b3JlOjpBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBz
ZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBX
ZWJDb3JlOjpBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBzZWFy
Y2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBX
ZWJTZWxlY3RVSUNsaWVudCBtX3NlbGVjdFVJQ2xpZW50OworICAgIFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudSBtX3NlYXJjaDsKK307CisKK2NsYXNzIFdlYlNlbGVjdFVJQ2xpZW50RmFjdG9yeSA6
IHB1YmxpYyBXZWJDb3JlOjpTZWxlY3RVSUNsaWVudEZhY3RvcnkgeworcHVibGljOgorICAgIHZp
cnR1YWwgYm9vbCBpdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwg
UGFzc093blB0cjxXZWJDb3JlOjpTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzT3duUHRy
PFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKworfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VsZWN0TWV0aG9kQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWxlY3RNZXRob2RDbGllbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTU4ZTY2MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViU2VsZWN0TWV0aG9kQ2xpZW50Lm1tCkBAIC0wLDAgKzEsNjggQEAKKyNpbXBv
cnQgIldlYlNlbGVjdE1ldGhvZENsaWVudC5oIgorCitXZWJTZWxlY3RVSUNsaWVudDo6V2ViU2Vs
ZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX21l
bnUoYWRvcHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKSkKK3sKK30KKwordm9pZCBXZWJTZWxl
Y3RVSUNsaWVudDo6c2hvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXZWJDb3JlOjpG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3sKKyAgICBtX21lbnUtPnNob3cocmVjdCwgdmll
dywgaW5kZXgpOworfQorCit2b2lkIFdlYlNlbGVjdFVJQ2xpZW50OjpoaWRlKCkKK3sKKyAgICBt
X21lbnUtPmhpZGUoKTsKK30KKwordm9pZCBXZWJTZWxlY3RVSUNsaWVudDo6dXBkYXRlRnJvbUVs
ZW1lbnQoKQoreworICAgIG1fbWVudS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKK30KKwordm9pZCBX
ZWJTZWxlY3RVSUNsaWVudDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9tZW51LT5kaXNj
b25uZWN0Q2xpZW50KCk7Cit9CisKK1dlYlNlYXJjaFVJQ2xpZW50OjpXZWJTZWFyY2hVSUNsaWVu
dChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fc2VsZWN0VUlDbGll
bnQoY2xpZW50KQoreworfQorCitXZWJDb3JlOjpTZWxlY3RVSUNsaWVudCogV2ViU2VhcmNoVUlD
bGllbnQ6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fc2VsZWN0VUlDbGllbnQ7
Cit9CisKK3ZvaWQgV2ViU2VhcmNoVUlDbGllbnQ6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBX
ZWJDb3JlOjpBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+
JiBzZWFyY2hJdGVtcykKK3sKKyAgICBtX3NlYXJjaC5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwg
c2VhcmNoSXRlbXMpOworfQorCit2b2lkIFdlYlNlYXJjaFVJQ2xpZW50Ojpsb2FkUmVjZW50U2Vh
cmNoZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8V2ViQ29yZTo6
U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit7CisgICAgbV9zZWFyY2gubG9hZFJlY2VudFNlYXJjaGVz
KG5hbWUsIHNlYXJjaEl0ZW1zKTsKK30KKworYm9vbCBXZWJTZWFyY2hVSUNsaWVudDo6ZW5hYmxl
ZCgpCit7CisgICAgcmV0dXJuIG1fc2VhcmNoLmVuYWJsZWQoKTsKK30KKworLy8gV2ViU2VsZWN0
VUlDbGllbnRGYWN0b3J5CisKK2Jvb2wgV2ViU2VsZWN0VUlDbGllbnRGYWN0b3J5OjppdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIFBvcHVwTWVudTo6aXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKK30KKworUGFzc093blB0cjxXZWJDb3JlOjpTZWxl
Y3RVSUNsaWVudD4gV2ViU2VsZWN0VUlDbGllbnRGYWN0b3J5OjpjcmVhdGVTZWxlY3RVSUNsaWVu
dChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFdlYlNlbGVjdFVJQ2xpZW50KGNsaWVudCkpOworfQorCitQYXNzT3duUHRy
PFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBXZWJTZWxlY3RVSUNsaWVudEZhY3Rvcnk6OmNyZWF0
ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
eworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU2VhcmNoVUlDbGllbnQoY2xpZW50KSk7Cit9
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCBhNmMxN2YwLi5lZjIwYzZmIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NiBAQAorMjAxMC0wNy0xOSAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jpbmcg
aW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBDbGFzcyBQb3B1cE1lbnUgaXMgbm93
IHVzZWQgdG8gcHJvdmlkZSBwb3B1cCBpbXBsZW1lbnRhdGlvbiB0byBtZW51IGxpc3RzLiBJdCBp
cworICAgICAgICBpbXBsZW1lbnRlZCBpbiBXZWJDb3JlL3BsYXRmb3JtLiBBbGwgcGxhdGZvcm1z
IHNoYXJlIHRoZSBzYW1lIGhlYWRlciBmaWxlIGFuZCBpbmNsdWRlCisgICAgICAgIHRoZSBuZWVk
ZWQgaXRlbXMgdG8gdGhlIGNsYXNzIHVzaW5nIHByZXByb2Nlc3NvciBtYWNyb3MuIFRoZSBpbnN0
YW5jZXMgb2YgdGhlIGNsYXNzCisgICAgICAgIFBvcHVwTWVudSBhcmUgY3JlYXRlZCBieSBhbiBz
dGF0aWMgbWV0aG9kLiBDbGFzcyBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBQb3B1cE1l
bnUuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gcmVwbGFjZSBjbGFzc2VzIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51IGJ5IHRoZSBwdXJlIHZpcnR1YWwgY2xhc3NlcworICAgICAgICBT
ZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgYW5kIHRvIGNyZWF0ZSBhIG5ldyBjbGFz
cyBuYW1lZCBTZWxlY3RVSUNsaWVudEZhY3RvcnkgdG8KKyAgICAgICAgYmUgdXNlZCB0byBwcm92
aWRlIGluc3RhY2VzIG9mIHRoZSBVSSBjbGllbnRzLgorCisgICAgICAgIENocm9tZSBhbmQgQ2hy
b21lQ2xpZW50IHdvdWxkIHRoZW4gYmUgcmVzcG9uc2libGUgdG8gcHJvdmlkZSBhbiBpbnN0YW5j
ZSBvZiBjbGFzcworICAgICAgICBTZWxlY3RVSUNsaWVudEZhY3RvcnkgdG8gYmUgdXNlZCBieSBS
ZW5kZXJNZW51TGlzdCBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLiBUaGlzCisgICAg
ICAgIHdheSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIG1lbnUgbGlzdHMgcG9wdXBzIG1heSBiZSBt
b3ZlZCBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0IGxheWVyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y29udGFpbnMgdGhlIGNoYW5nZXMgZGVzY3JpYmVkIGFib3ZlIGFuZCwgYXMgYSBwcm9vZiBvZiBj
b25jZXB0LCB0aGlzIHBhdGNoIGhhcworICAgICAgICBjaGFuZ2VkIFF0IGFuZCBNYWMgaW1wbGVt
ZW50YXRpb25zLiBCZWZvcmUgcHJvY2VlZGluZyBJIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBzb21l
IGZlZWRiYWNrIG9mCisgICAgICAgIG90aGVyIHdlYmtpdCBkZXZlbG9wZXJzLgorCisgICAgICAg
IE1ldGhvZCBzZWxlY3RVSUNsaWVudEZhY3RvcnkgaGF2ZSBiZWVuIGltcGxlbWVudGVkIGluIGNs
YXNzIENocm9tZUNsaWVudFF0LgorICAgICAgICBJdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRo
ZSBjbGFzcyBRdFNlbGVjdFVJQ2xpZW50RmFjdG9yeS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0
OjpzZWxlY3RVSUNsaWVudEZhY3RvcnkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0Lmg6CisKKyAgICAgICAgUXRBYnN0cmFjdFdlYlBvcHVwIGhhdmUgYmVlbiBtb3Zl
ZCBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0IGxheWVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvUXRBYnN0cmFjdFdlYlBvcHVwLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvcGxhdGZvcm0v
cXQvUXRBYnN0cmFjdFdlYlBvcHVwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlF0QWJzdHJhY3RX
ZWJQb3B1cDo6UXRBYnN0cmFjdFdlYlBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlF0QWJzdHJh
Y3RXZWJQb3B1cDo6flF0QWJzdHJhY3RXZWJQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpRdEFi
c3RyYWN0V2ViUG9wdXA6OnBvcHVwRGlkSGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpRdEFic3Ry
YWN0V2ViUG9wdXA6OnZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpRdEFic3RyYWN0
V2ViUG9wdXA6OnNlbGVjdEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6UXRBYnN0cmFjdFdlYlBv
cHVwOjptdWx0aXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6Oml0
ZW1UeXBlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RdEFic3RyYWN0V2ViUG9wdXAuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6Oik6CisgICAgICAg
IChXZWJDb3JlOjpRdEFic3RyYWN0V2ViUG9wdXA6Oml0ZW1UZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OlF0QWJzdHJhY3RXZWJQb3B1cDo6aXRlbVRvb2xUaXApOgorICAgICAgICAoV2ViQ29yZTo6
UXRBYnN0cmFjdFdlYlBvcHVwOjppdGVtSXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlF0
QWJzdHJhY3RXZWJQb3B1cDo6aXRlbUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlF0QWJzdHJh
Y3RXZWJQb3B1cDo6aXRlbUlzU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UXRBYnN0cmFj
dFdlYlBvcHVwOjpwYWdlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlF0QWJzdHJhY3RXZWJQ
b3B1cDo6Z2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjpj
dXJyZW50SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6UXRBYnN0cmFjdFdlYlBvcHVwOjpmb250
KToKKworICAgICAgICBDbGFzc2VzIFF0U2VsZWN0VUlDbGllbnQsIFF0U2VhcmNoVUlDbGllbnQg
YW5kIFF0U2VsZWN0VUlDbGllbnRGYWN0b3J5IGhhdmUgYmVlbgorICAgICAgICBpbXBsZW1lbnRl
ZC4gUXRTZWxlY3RVSUNsaWVudCBhbmQgUXRTZWFyY2hVSUNsaWVudCBoYXZlIHRoZSBjb2RlIHRo
YXQgd2VyZSBpbiBjbGFzc2VzIFBvcHVwTWVudSAgIAorICAgICAgICBhbmQgU2VhcmNoUG9wdXBN
ZW51IHJlc3BlY3RpdmVsbHkuIFRoZXNlIGxhdGVzdCBvbmVzIGhhdmUganVzdCBiZWVuIGRlbGV0
ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RdFNlbGVjdE1ldGhvZENsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UXRTZWxlY3RVSUNsaWVudDo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpRdFNlbGVjdFVJQ2xpZW50OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlF0U2VsZWN0VUlDbGllbnQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlF0U2VsZWN0VUlDbGllbnQ6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UXRTZWFyY2hVSUNsaWVudDo6c2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UXRT
ZWFyY2hVSUNsaWVudDo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlF0
U2VhcmNoVUlDbGllbnQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpR
dFNlYXJjaFVJQ2xpZW50OjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlF0U2VsZWN0VUlD
bGllbnRGYWN0b3J5OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpRdFNlbGVjdFVJQ2xpZW50RmFjdG9yeTo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UXRTZWxlY3RVSUNsaWVudEZhY3Rvcnk6OmNyZWF0ZVNlYXJjaFVJ
Q2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RdFNlbGVjdE1ldGhvZENsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlF0U2VsZWN0VUlDbGllbnQ6OlF0U2VsZWN0VUlD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UXRTZWFyY2hVSUNsaWVudDo6UXRTZWFyY2hVSUNs
aWVudCk6CisKIDIwMTAtMDctMTggIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggMmM2NGE3OC4uNTBlMzIwMCAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAor
KysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC01OTgs
NiArNTk4LDExIEBAIFF0QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNl
bGVjdFBvcHVwKCkKICNlbmRpZgogfQogCitTZWxlY3RVSUNsaWVudEZhY3RvcnkqIENocm9tZUNs
aWVudFF0OjpzZWxlY3RVSUNsaWVudEZhY3RvcnkoKQoreworICAgIHJldHVybiAmbV9zZWxlY3RG
YWN0b3J5OworfQorCiAjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKIGJvb2wgQ2hyb21l
Q2xpZW50UXQ6OmlzV2luZG93ZWQoKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaAppbmRleCA3MGI0YTI1Li44NjU4ZmM1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlF0UGxhdGZvcm1QbHVn
aW4uaCIKKyNpbmNsdWRlICJRdFNlbGVjdE1ldGhvZENsaWVudC5oIgogCiBRVF9CRUdJTl9OQU1F
U1BBQ0UKIGNsYXNzIFFFdmVudExvb3A7CkBAIC0xMDUsNiArMTA2LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmlu
ZyYgcmVzdWx0KTsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3Jp
cHQoKTsKIAorCisgICAgICAgIHZpcnR1YWwgU2VsZWN0VUlDbGllbnRGYWN0b3J5KiBzZWxlY3RV
SUNsaWVudEZhY3RvcnkoKTsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4
dChjb25zdCBTdHJpbmcmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBj
b25zdDsKQEAgLTE5MSw2ICsxOTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFFF
dmVudExvb3AqIG1fZXZlbnRMb29wOwogCiAgICAgICAgIFF0UGxhdGZvcm1QbHVnaW4gbV9wbGF0
Zm9ybVBsdWdpbjsKKyAgICAgICAgUXRTZWxlY3RVSUNsaWVudEZhY3RvcnkgbV9zZWxlY3RGYWN0
b3J5OwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
dEFic3RyYWN0V2ViUG9wdXAuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0QWJzdHJh
Y3RXZWJQb3B1cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFhYjI4
ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEFic3RyYWN0
V2ViUG9wdXAuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlF0QWJzdHJhY3RXZWJQb3B1cC5oIgorCisjaW5jbHVkZSAi
UG9wdXBNZW51Q2xpZW50LmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitRdEFic3RyYWN0
V2ViUG9wdXA6OlF0QWJzdHJhY3RXZWJQb3B1cCgpCisgICAgOiBtX3BvcHVwQ2xpZW50KDApCisg
ICAgLCBtX3BhZ2VDbGllbnQoMCkKKyAgICAsIG1fY3VycmVudEluZGV4KC0xKQoreworfQorCitR
dEFic3RyYWN0V2ViUG9wdXA6On5RdEFic3RyYWN0V2ViUG9wdXAoKQoreworfQorCit2b2lkIFF0
QWJzdHJhY3RXZWJQb3B1cDo6cG9wdXBEaWRIaWRlKCkKK3sKKyAgICBRX0FTU0VSVChtX3BvcHVw
Q2xpZW50KTsKKyAgICBtX3BvcHVwQ2xpZW50LT5wb3B1cERpZEhpZGUoKTsKK30KKwordm9pZCBR
dEFic3RyYWN0V2ViUG9wdXA6OnZhbHVlQ2hhbmdlZChpbnQgaW5kZXgpCit7CisgICAgUV9BU1NF
UlQobV9wb3B1cENsaWVudCk7CisgICAgbV9wb3B1cENsaWVudC0+dmFsdWVDaGFuZ2VkKGluZGV4
KTsKK30KKwordm9pZCBRdEFic3RyYWN0V2ViUG9wdXA6OnNlbGVjdEl0ZW0oaW50IGluZGV4LCBi
b29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0KQoreworI2lmIEVOQUJMRShO
T19MSVNUQk9YX1JFTkRFUklORykKKyAgICBMaXN0UG9wdXBNZW51Q2xpZW50KiBjbGllbnQgPSBz
dGF0aWNfY2FzdDxMaXN0UG9wdXBNZW51Q2xpZW50Kj4obV9wb3B1cENsaWVudCk7CisgICAgaWYg
KGNsaWVudCkgeworICAgICAgICBjbGllbnQtPmxpc3RCb3hTZWxlY3RJdGVtKGluZGV4LCBhbGxv
d011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQpOworICAgICAgICByZXR1cm47CisgICAgfQorI2Vu
ZGlmCisgICAgdmFsdWVDaGFuZ2VkKGluZGV4KTsKK30KKworYm9vbCBRdEFic3RyYWN0V2ViUG9w
dXA6Om11bHRpcGxlKCkKK3sKKyNpZiBFTkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcpCisgICAg
TGlzdFBvcHVwTWVudUNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8TGlzdFBvcHVwTWVudUNs
aWVudCo+KG1fcG9wdXBDbGllbnQpOworICAgIHJldHVybiBjbGllbnQgJiYgY2xpZW50LT5tdWx0
aXBsZSgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworUXRBYnN0cmFj
dFdlYlBvcHVwOjpJdGVtVHlwZSBRdEFic3RyYWN0V2ViUG9wdXA6Oml0ZW1UeXBlKGludCBpZHgp
IGNvbnN0Cit7CisgICAgaWYgKG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlcGFyYXRvcihpZHgpKQor
ICAgICAgICByZXR1cm4gU2VwYXJhdG9yOworICAgIGlmIChtX3BvcHVwQ2xpZW50LT5pdGVtSXNM
YWJlbChpZHgpKQorICAgICAgICByZXR1cm4gR3JvdXA7CisgICAgcmV0dXJuIE9wdGlvbjsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0
QWJzdHJhY3RXZWJQb3B1cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYw
MjExYjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRBYnN0
cmFjdFdlYlBvcHVwLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisjaWZuZGVm
IFF0QWJzdHJhY3RXZWJQb3B1cF9oCisjZGVmaW5lIFF0QWJzdHJhY3RXZWJQb3B1cF9oCisKKyNp
bmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKworI2luY2x1ZGUgPFFGb250PgorI2luY2x1ZGUg
PFFMaXN0PgorI2luY2x1ZGUgPFFSZWN0PgorI2luY2x1ZGUgPFFXaWRnZXQ+CisKK2NsYXNzIFFX
ZWJQYWdlQ2xpZW50OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFF0QWJzdHJhY3RX
ZWJQb3B1cCB7CitwdWJsaWM6CisgICAgZW51bSBJdGVtVHlwZSB7IE9wdGlvbiwgR3JvdXAsIFNl
cGFyYXRvciB9OworCisgICAgSXRlbVR5cGUgaXRlbVR5cGUoaW50KSBjb25zdDsKKyAgICBRU3Ry
aW5nIGl0ZW1UZXh0KGludCBpZHgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQtPml0ZW1U
ZXh0KGlkeCk7IH0KKyAgICBRU3RyaW5nIGl0ZW1Ub29sVGlwKGludCBpZHgpIGNvbnN0IHsgcmV0
dXJuIG1fcG9wdXBDbGllbnQtPml0ZW1Ub29sVGlwKGlkeCk7IH0KKyAgICBib29sIGl0ZW1Jc0Vu
YWJsZWQoaW50IGlkeCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxl
ZChpZHgpOyB9CisgICAgaW50IGl0ZW1Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGll
bnQtPmxpc3RTaXplKCk7IH0KKyAgICBib29sIGl0ZW1Jc1NlbGVjdGVkKGludCBpZHgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQtPml0ZW1Jc1NlbGVjdGVkKGlkeCk7IH0KKworCisgICAg
UVdlYlBhZ2VDbGllbnQqIHBhZ2VDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VDbGllbnQ7
IH0KKyAgICBRUmVjdCBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnk7IH0KKyAg
ICBpbnQgY3VycmVudEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50SW5kZXg7IH0KKwor
ICAgIFF0QWJzdHJhY3RXZWJQb3B1cCgpOworICAgIHZpcnR1YWwgflF0QWJzdHJhY3RXZWJQb3B1
cCgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhp
ZGUoKSA9IDA7CisKKyAgICB2b2lkIHBvcHVwRGlkSGlkZSgpOworICAgIHZvaWQgdmFsdWVDaGFu
Z2VkKGludCBpbmRleCk7CisKKyAgICB2b2lkIHNlbGVjdEl0ZW0oaW50IGluZGV4LCBib29sIGFs
bG93TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0KTsKKyAgICBib29sIG11bHRpcGxlKCk7
CisKKworICAgIFFGb250IGZvbnQoKSB7IHJldHVybiBtX3BvcHVwQ2xpZW50LT5tZW51U3R5bGUo
KS5mb250KCkuZm9udCgpOyB9CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFF0U2VsZWN0
VUlDbGllbnQ7CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIFFXZWJQ
YWdlQ2xpZW50KiBtX3BhZ2VDbGllbnQ7CisgICAgaW50IG1fY3VycmVudEluZGV4OworICAgIFFS
ZWN0IG1fZ2VvbWV0cnk7Cit9OworCit9CisKKyNlbmRpZiAvLyBRdEFic3RyYWN0V2ViUG9wdXBf
aApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0U2VsZWN0TWV0aG9kQ2xp
ZW50LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFNlbGVjdE1ldGhvZENsaWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFhYzBjOAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFNlbGVjdE1ldGhvZENsaWVudC5j
cHAKQEAgLTAsMCArMSw4OSBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlF0U2Vs
ZWN0TWV0aG9kQ2xpZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJv
bWVDbGllbnRRdC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBvcHVwTWVu
dUNsaWVudC5oIgorI2luY2x1ZGUgIlF0QWJzdHJhY3RXZWJQb3B1cC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIFF0U2VsZWN0VUlDbGllbnQKKwordm9pZCBRdFNlbGVjdFVJQ2xpZW50
OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQor
eworICAgIEFTU0VSVChtX2NsaWVudCk7CisgICAgQ2hyb21lQ2xpZW50UXQqIGNocm9tZUNsaWVu
dCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudFF0Kj4oCisgICAgICAgIHZpZXctPmZyYW1lKCkt
PnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKKyAgICBBU1NFUlQoY2hyb21lQ2xpZW50KTsK
KworICAgIGlmICghbV9wb3B1cCkKKyAgICAgICAgbV9wb3B1cCA9IGFkb3B0UHRyKGNocm9tZUNs
aWVudC0+Y3JlYXRlU2VsZWN0UG9wdXAoKSk7CisKKyAgICBtX3BvcHVwLT5tX3BvcHVwQ2xpZW50
ID0gbV9jbGllbnQ7CisgICAgbV9wb3B1cC0+bV9jdXJyZW50SW5kZXggPSBpbmRleDsKKyAgICBt
X3BvcHVwLT5tX3BhZ2VDbGllbnQgPSBjaHJvbWVDbGllbnQtPnBsYXRmb3JtUGFnZUNsaWVudCgp
OworCisgICAgUVJlY3QgZ2VvbWV0cnkocmVjdCk7CisgICAgZ2VvbWV0cnkubW92ZVRvcExlZnQo
dmlldy0+Y29udGVudHNUb1dpbmRvdyhyZWN0LnRvcExlZnQoKSkpOworICAgIG1fcG9wdXAtPm1f
Z2VvbWV0cnkgPSBnZW9tZXRyeTsKKworICAgIG1fcG9wdXAtPnNob3coKTsKK30KKwordm9pZCBR
dFNlbGVjdFVJQ2xpZW50OjpoaWRlKCkKK3sKKyAgICBBU1NFUlQobV9wb3B1cCk7CisgICAgbV9w
b3B1cC0+aGlkZSgpOworfQorCit2b2lkIFF0U2VsZWN0VUlDbGllbnQ6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworICAgIG1fY2xpZW50LT5zZXRUZXh0RnJv
bUl0ZW0obV9jbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7Cit9CisKK3ZvaWQgUXRTZWxlY3RVSUNs
aWVudDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9jbGllbnQgPSAwOworfQorCisvLyBR
dFNlYXJjaFVJQ2xpZW50CisKK1NlbGVjdFVJQ2xpZW50KiBRdFNlYXJjaFVJQ2xpZW50OjpzZWxl
Y3RVSUNsaWVudCgpCit7CisgICAgcmV0dXJuICZtX3NlbGVjdENsaWVudDsKK30KKwordm9pZCBR
dFNlYXJjaFVJQ2xpZW50OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit7Cit9CisKK3ZvaWQgUXRT
ZWFyY2hVSUNsaWVudDo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQoreworfQorCitib29sIFF0U2VhcmNoVUlD
bGllbnQ6OmVuYWJsZWQoKQoreworICAgIHJldHVybiB0cnVlOworfQorCisvLyBRdFNlbGVjdFVJ
Q2xpZW50RmFjdG9yeQorCitib29sIFF0U2VsZWN0VUlDbGllbnRGYWN0b3J5OjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzT3du
UHRyPFNlbGVjdFVJQ2xpZW50PiBRdFNlbGVjdFVJQ2xpZW50RmFjdG9yeTo6Y3JlYXRlU2VsZWN0
VUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBRdFNlbGVjdFVJQ2xpZW50KGNsaWVudCkpOworfQorCitQYXNzT3duUHRyPFNl
YXJjaFVJQ2xpZW50PiBRdFNlbGVjdFVJQ2xpZW50RmFjdG9yeTo6Y3JlYXRlU2VhcmNoVUlDbGll
bnQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBRdFNlYXJjaFVJQ2xpZW50KGNsaWVudCkpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRTZWxlY3RNZXRob2RDbGllbnQuaCBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9RdFNlbGVjdE1ldGhvZENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmI4ZGVhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUXRTZWxlY3RNZXRob2RDbGllbnQuaApAQCAtMCwwICsxLDQ5IEBACisjaWZu
ZGVmIFF0U2VsZWN0TWV0aG9kQ2xpZW50X2gKKyNkZWZpbmUgUXRTZWxlY3RNZXRob2RDbGllbnRf
aAorCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworY2xhc3MgUXRB
YnN0cmFjdFdlYlBvcHVwOworCitjbGFzcyBRdFNlbGVjdFVJQ2xpZW50IDogcHVibGljIFNlbGVj
dFVJQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBRdFNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSA6IG1fY2xpZW50KGNsaWVudCkge30KKworICAgIHZpcnR1YWwgdm9pZCBzaG93
KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9p
ZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmly
dHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8UXRB
YnN0cmFjdFdlYlBvcHVwPiBtX3BvcHVwOworICAgIFBvcHVwTWVudUNsaWVudCogbV9jbGllbnQ7
Cit9OworCitjbGFzcyBRdFNlYXJjaFVJQ2xpZW50IDogcHVibGljIFNlYXJjaFVJQ2xpZW50IHsK
K3B1YmxpYzoKKyAgICBRdFNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSA6
IG1fc2VsZWN0Q2xpZW50KGNsaWVudCkge30KKworICAgIHZpcnR1YWwgU2VsZWN0VUlDbGllbnQq
IHNlbGVjdFVJQ2xpZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29s
IGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBRdFNlbGVjdFVJQ2xpZW50IG1fc2VsZWN0Q2xp
ZW50OworfTsKKworY2xhc3MgUXRTZWxlY3RVSUNsaWVudEZhY3RvcnkgOiBwdWJsaWMgU2VsZWN0
VUlDbGllbnRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2VsZWN0VUlDbGll
bnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZp
cnR1YWwgUGFzc093blB0cjxTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7CisKK307CisKK30KKworI2VuZGlmIC8vIFF0U2VsZWN0TWV0
aG9kQ2xpZW50X2gKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62449</attachid>
            <date>2010-07-23 11:01:18 -0700</date>
            <delta_ts>2010-07-23 12:47:36 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>71226</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBjMGZiY2VkZWRlZDMwNzBhMTExMjVjZDhiMjYzODllMzRhOTVhM2I4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjMgSnVsIDIwMTAgMTQ6NTE6NDcgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFy
Y2hQb3B1cE1lbnUuClBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCgpDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KCldlYkNvcmU6CgpOZXcgSW50ZXJmYWNlcyBTZWxlY3RNZXRob2RDbGllbnQg
YW5kIFNlYXJjaE1ldGhvZENsaWVudAoKKiBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50Ojp+U2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6
U2VhcmNoVUlDbGllbnQ6On5TZWFyY2hVSUNsaWVudCk6CgpSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGNoYW5nZWQgdG8gdXNlIG5ldyBpbnRlcmZhY2VzIGFu
ZCB0byBvYnRhaW4KaW5zdGFuY2VzIG9mIHRoZW0gZnJvbSBDaHJvbWU6CgoqIHJlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJT
dHlsZSk6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaDoKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNob3dQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21F
bGVtZW50KToKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFu
Z2VkKToKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQgZnJvbSBTZWxlY3RNZXRo
b2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudApyZXNwZWN0aXZlbHkuIENocm9tZSBhbmQg
Q2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBpbnN0YW5jZXMgb2YgdGhvc2UgY2xhc3Nl
cy4KCiogcGxhdGZvcm0vUG9wdXBNZW51Lmg6CiogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6
CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVu
dCk6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpRdCBp
bXBsZW1lbnRhdGlvbiBpZiBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSBmaWxlClBvcHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaC4g
RnVydGhlciBRdCBjb2RlIGNsZWFuaW5nIGFyZSBjb21pbmcgaW4gZnV0dXJlIHBhdGNoZXMuCgoq
IFdlYkNvcmUucHJvOgoqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlBv
cHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuaDogQWRkZWQuCiogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CiogcGxh
dGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxl
Y3RVSUNsaWVudCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJj
aGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgoqIHBsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0Lmg6IEFkZGVkLgoKbWFjCgoqIFdlYkNvcmUuZXhwLmluOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1t
OgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLm1tOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6Cgpj
aHJvbWl1bQoKKiBXZWJDb3JlLmd5cGk6CiogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6
OnNlbGVjdFVJQ2xpZW50KToKCmd0awoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6
CiogcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNl
bGVjdFVJQ2xpZW50KToKCndpbgoKKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKiBw
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29u
bmVjdENsaWVudCk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHA6CihXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKCldlYktpdC9jaHJvbWl1bToKCiogc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwOgooV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0
ZVNlbGVjdFVJQ2xpZW50KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNo
VUlDbGllbnQpOgoqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CgpXZWJLaXQvZ3RrOgoKKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CihXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlU2Vh
cmNoVUlDbGllbnQpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgoKV2ViS2l0
L21hYzoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgoKV2ViS2l0L3F0
OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CihXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKFdlYkNvcmU6OkNocm9tZUNs
aWVudFF0OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaDoKCldlYktpdC93aW46CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CihXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTEyICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29y
ZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dl
YkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgICA0ICsKIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAgNiAr
LQogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggICAgICAgICAgICAgICAgICAgICAgfCAg
ICA1ICsKIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNyArKystCiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDcgKysKIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgNyArKwogV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5o
ICAgICAgICAgICAgICAgICAgfCAgIDU3ICsrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vUG9w
dXBNZW51LmggICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArKy0tLS0KIFdlYkNvcmUvcGxh
dGZvcm0vU2VhcmNoUG9wdXBNZW51LmggICAgICAgICAgICAgICAgIHwgICAxNyArKy0tCiBXZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCAgICB8ICAgMTEgKy0K
IC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAgIHwgICAg
OCArKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgICAgICAgICAgICAg
IHwgICAxMSArLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCAg
ICAgICAgfCAgIDEwICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tICAg
ICAgICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1l
bnVNYWMubW0gICAgICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51
UXQuY3BwICAgICAgICAgICAgICAgIHwgICAyNSArKystLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
b3B1cE1lbnVRdC5oICAgICAgICAgICAgICAgICAgfCAgIDUwICsrKysrKysrKwogV2ViQ29yZS9w
bGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCAgICAgICAgICAgfCAgICAyICstCiBXZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCAgICAgICAgICB8ICAgMjAgKyst
LQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oICAgICAgICAgICAgfCAg
IDQ0ICsrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwICAgICAg
ICAgICAgICB8ICAgMTEgKy0KIFdlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdp
bi5jcHAgICAgICAgIHwgICAgOCArKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcCAgICAgICAgICAgICAgIHwgICAgOSArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaCAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwICB8ICAgMTggKystLQogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggICAgfCAgICA1ICstCiBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKwogV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCAgICAgICAgICAgfCAgIDIwICsr
KysKIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgICAgICAgIHwg
ICAgNyArKwogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDIxICsrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcCAgICAgIHwgICAxOCArKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmggICAgICAgIHwgICAgNiArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCAgICAgICAgfCAgICA1ICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAxNyArKysKIFdlYktpdC9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAgMTggKysrCiBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDUg
KwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIxICsrKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAg
ICAgIHwgICAxOSArKysrCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oICAgICAgICB8ICAgIDYgKwogNDYgZmlsZXMgY2hhbmdlZCwgNjUxIGluc2VydGlvbnMoKyks
IDkyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGFnZS9TZWxlY3RN
ZXRob2RDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vcXQvUG9w
dXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggOTVhMTFkNi4uNzhhYTQ3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTUgQEAKKzIwMTAtMDct
MjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFj
dG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVh
bCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBS
ZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGlu
c3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAg
UG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1
cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xp
ZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5k
IFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQg
Y2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50
IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1
cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICBOZXcgSW50ZXJmYWNlcyBTZWxl
Y3RNZXRob2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudAorCisgICAgICAgICogcGFnZS9T
ZWxlY3RNZXRob2RDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RVSUNs
aWVudDo6flNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50
Ojp+U2VhcmNoVUlDbGllbnQpOgorCisgICAgICAgIFJlbmRlck1lbnVMaXN0IGFuZCBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUgY2hhbmdlZCB0byB1c2UgbmV3IGludGVyZmFjZXMgYW5kIHRv
IG9idGFpbgorICAgICAgICBpbnN0YW5jZXMgb2YgdGhlbSBmcm9tIENocm9tZToKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKKworICAg
ICAgICBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQgZnJv
bSBTZWxlY3RNZXRob2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudAorICAgICAgICByZXNw
ZWN0aXZlbHkuIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBpbnN0
YW5jZXMgb2YgdGhvc2UgY2xhc3Nlcy4KKworICAgICAgICAqIHBsYXRmb3JtL1BvcHVwTWVudS5o
OgorICAgICAgICAqIHBsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZTo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNo
VUlDbGllbnQpOgorCisgICAgICAgIFF0IGltcGxlbWVudGF0aW9uIGlmIFNlbGVjdFVJQ2xpZW50
IGFuZCBTZWFyY2hVSUNsaWVudCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIGZpbGUKKyAgICAgICAg
UG9wdXBNZW51LmggYW5kIFNlYXJjaFBvcHVwTWVudS5oLiBGdXJ0aGVyIFF0IGNvZGUgY2xlYW5p
bmcgYXJlIGNvbWluZyBpbiBmdXR1cmUgcGF0Y2hlcy4KKworICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVRdDo6flBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNj
b25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpzaG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9w
dXBNZW51UXQuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBv
cHVwLmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxlY3RVSUNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0Lmg6IEFkZGVkLgorCisgICAgICAgIG1hYwor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKKworICAgICAgICBjaHJvbWl1bQorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVw
TWVudUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVj
dENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1
cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVu
dCk6CisKKyAgICAgICAgZ3RrCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NlYXJjaFBv
cHVwTWVudUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJj
aFBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJ
Q2xpZW50KToKKworICAgICAgICB3aW4KKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQpOgorCiAyMDEwLTA3LTIzICBBbGV4IE1pbG93c2tp
ICA8YWxleEBtaWxvd3NraS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQppbmRleCBhZTIzZmNlLi41Yjc5MDNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE4MjIsNiArMTgyMiw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBc
CiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggXAogCVdlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbkhhc2guaCBcCisJV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIFwKIAlX
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBcCiAJ
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzODk5YmY1Li5l
N2EyNGExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTEzNCw2ICsxMzQsNyBAQCBfX1o0Y29yZVAyMkRPTUNTU1N0eWxl
RGVjbGFyYXRpb24KIF9fWjRjb3JlUDdET01Ob2RlCiBfX1o0Y29yZVA4RE9NUmFuZ2UKIF9fWk4z
SlNDOEJpbmRpbmdzOEluc3RhbmNlMTZuZXdSdW50aW1lT2JqZWN0RVBOU185RXhlY1N0YXRlRQor
X19aTjdXZWJDb3JlOVBvcHVwTWVudUMxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2Vi
Q29yZTEwTW91c2VFdmVudEMxRVJLTlNfMTJBdG9taWNTdHJpbmdFYmJOM1dURjEwUGFzc1JlZlB0
cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9J
TlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2ZVNj
cm9sbGJhcnNFYgogX19aTjdXZWJDb3JlMTBTdHJpbmdJbXBsMTRjcmVhdGVDRlN0cmluZ0V2CkBA
IC0zNTIsNiArMzUzLDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHREMUV2CiBfX1pO
N1dlYkNvcmUxNUpTRE9NV2luZG93QmFzZTE4Y29tbW9uSlNHbG9iYWxEYXRhRXYKIF9fWk43V2Vi
Q29yZTE1U2Nyb2xsQWxpZ25tZW50MTdhbGlnbkNlbnRlckFsd2F5c0UKIF9fWk43V2ViQ29yZTE1
U2Nyb2xsQWxpZ25tZW50MTlhbGlnblRvRWRnZUlmTmVlZGVkRQorX19aTjdXZWJDb3JlMTVTZWFy
Y2hQb3B1cE1lbnVDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxNVN0cmlu
Z1RydW5jYXRvcjEzcmlnaHRUcnVuY2F0ZUVSS05TXzZTdHJpbmdFZlJLTlNfNEZvbnRFYgogX19a
TjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3IxNGNlbnRlclRydW5jYXRlRVJLTlNfNlN0cmluZ0Vm
UktOU180Rm9udEViCiBfX1pON1dlYkNvcmUxNVN0cmluZ1RydW5jYXRvcjV3aWR0aEVSS05TXzZT
dHJpbmdFUktOU180Rm9udEViCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGY1M2Y0NTYuLjdmMjI0MjIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDMyLDYg
KzIwMzIsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwJywKICAgICAg
ICAgICAgICdwYWdlL1NlY3VyaXR5T3JpZ2luLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU2VjdXJp
dHlPcmlnaW5IYXNoLmgnLAorICAgICAgICAgICAgJ3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50Lmgn
LAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGluZ3MuY3BwJywKICAgICAgICAgICAgICdwYWdlL1Nl
dHRpbmdzLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCcsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAw
OTA1NDIyLi41ZGVjNmZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE2MDgsNiArMTYwOCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IHBhZ2UvUHJpbnRDb250ZXh0LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXAogICAgIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uaCBcCisgICAgcGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaCBcCiAgICAgcGFn
ZS9TZXR0aW5ncy5oIFwKICAgICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggXAogICAgIHBhZ2Uv
U3BlZWNoSW5wdXQuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0
NDc5MTgyLi4wOGVhM2YyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTIyNDczLDYgKzIyNDczLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU2V0dGluZ3MuY3Bw
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYWUyZGIxMy4uNWQ2NDZhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyLDcgKzQyLDcgQEAKIAkJMDY1QUQ0RjUwQjBDMkVE
QTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4
dE1lbnVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFE
NEYzMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovOyB9Owog
CQkwNjVBRDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGNDBCMEMy
RURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUw
IC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICovOyB9OworCQkw
NjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAgLyog
UG9wdXBNZW51LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDY2OEUxOTAwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhFMThFMEFERDk2NDAw
MDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCTA2NkM3NzJCMEFCNjAzQjcwMDIz
OENDNCAvKiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2Qzc3MkQw
QUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8qIEZp
bGVDaG9vc2VyTWFjLm1tICovOyB9OwpAQCAtMzU4NCwxMiArMzU4NCwxMiBAQAogCQlBQjRDQjRF
QjBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI0Q0I0RUEwQjhCREEzRDAw
OUY0MEIwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCAqLzsgfTsKIAkJQUI2N0QxQTgw
OTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAv
KiBSZW5kZXJUZXh0Q29udHJvbC5jcHAgKi87IH07CiAJCUFCNjdEMUE5MDk3RjNBRTMwMEY5Mzky
RSAvKiBSZW5kZXJUZXh0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250
cm9sLmggKi87IH07Ci0JCUFCNzE3MDg5MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1l
bnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3
MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQUI3MTcw
ODkwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8q
IFNlYXJjaFBvcHVwTWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUFCNzE3MEEwMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnVN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcx
NzA5RjBCMzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQlB
QkFGMjIwODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJBRjIyMDcwQzAzQjFDNzAwQjBCQ0YwIC8q
IENocm9tZU1hYy5tbSAqLzsgfTsKIAkJQUJCNTQxOUUwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRl
ckxpc3RCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUJCNTQxOUMwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guY3BwICovOyB9Owog
CQlBQkI1NDE5RjBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJCNTQxOUQwQUNEREZFNDAwMjgy
MEVCIC8qIFJlbmRlckxpc3RCb3guaCAqLzsgfTsKLQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1
IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5o
ICovOyB9OworCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3NjBC
MzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUJEREZFNzkwQTVDNkU3MDAwQTNFMTFEIC8q
IFJlbmRlck1lbnVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFCRERGRTczMEE1QzZFNkYwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5jcHAg
Ki87IH07CiAJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzQwQTVD
NkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggKi87IH07CiAJCUFCRkU3RTEyMEQzMkZB
RjYwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkZFN0UxMDBEMzJGQUY1MDA2NkY0RDIgLyog
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwICovOyB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5
OTM4YmJjLi41OGM0OTg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMSw2ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKICAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MDgsNiArMTA5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFBy
b21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQo
KSB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0IHsgcmV0dXJuIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+KCk7IH0KKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIFBhc3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+
KCk7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYp
IHsgfQogCiAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKaW5kZXggMGM2NjkyNS4uZDlkMzBhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTEsNiArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzE4LDYgKzMxOCwyMSBAQCBib29sIENocm9tZTo6c2hvdWxkSW50ZXJy
dXB0SmF2YVNjcmlwdCgpCiAgICAgcmV0dXJuIG1fY2xpZW50LT5zaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KCk7CiB9CiAKK2Jvb2wgQ2hyb21lOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOworfQorCitQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBDaHJvbWU6
OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorewor
ICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlU2VsZWN0VUlDbGllbnQoY2xpZW50KTsKK30KKwor
UGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gQ2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVudChQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmNy
ZWF0ZVNlYXJjaFVJQ2xpZW50KGNsaWVudCk7Cit9CisKIEludFJlY3QgQ2hyb21lOjp3aW5kb3dS
ZXNpemVyUmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50LT53aW5kb3dSZXNpemVy
UmVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCmluZGV4IDUzNzQ2OGEuLmI3MmE1YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZvY3VzRGly
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhv
ZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCkBAIC00NCw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJ
bnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5nOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQogICAgIGNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsKQEAgLTEyMiw2ICsxMjUsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUq
LCBjb25zdCBTdHJpbmcmKTsKICAgICAgICAgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
KCk7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gY3Jl
YXRlU2VsZWN0VUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisKICAgICAgICAgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgp
IGNvbnN0OwogCiAgICAgICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0
VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IDc5NWIyNWMuLjhkYTEzY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlLCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNyw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlclF1aXJrcy5oIgogI2luY2x1ZGUgIkhvc3RX
aW5kb3cuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhv
ZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Myw2ICs1NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5n
OwogICAgIGNsYXNzIFdpZGdldDsKIApAQCAtMTI1LDYgKzEyOCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkg
PSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCA9IDA7CiAKKyAg
ICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkg
PSAwOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNl
bGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1l
bnVDbGllbnQqKSBjb25zdCA9IDA7CisKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jl
c2l6ZXJSZWN0KCkgY29uc3QgPSAwOwogCiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0
V2luZG93LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIGIv
V2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjhlZDU0YjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU2Vs
ZWN0TWV0aG9kQ2xpZW50LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBzZWxlY3QgZWxlbWVudCByZW5kZXJlciBpbiBXZWJDb3JlLgorICoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaWZuZGVmIFNlbGVjdE1ldGhvZENsaWVudF9oCisjZGVmaW5lIFNlbGVjdE1l
dGhvZENsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdG9taWNTdHJpbmc7CitjbGFzcyBGcmFtZVZpZXc7CitjbGFz
cyBJbnRSZWN0OworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFzcyBTZWxlY3RVSUNsaWVu
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlbGVjdFVJQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+U2VsZWN0VUlDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IElu
dFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGlk
ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSA9IDA7Cit9OworCitjbGFzcyBTZWFyY2hV
SUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlYXJjaFVJQ2xpZW50PiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+U2VhcmNoVUlDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgU2VsZWN0VUlDbGll
bnQqIHNlbGVjdFVJQ2xpZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWxl
Y3RNZXRob2RDbGllbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKaW5kZXggZDlkMjc0MC4uNTQ5NjU3NiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9k
Q2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogCkBAIC00MCwxMCArNDIsNiBAQCBjbGFzcyBOU1BvcFVwQnV0dG9uQ2VsbDsK
IHR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKIHR5cGVkZWYgc3RydWN0IEhEQ19fKiBIREM7
CiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShRVCkK
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKLX0KICNlbGlm
IFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7CiB0eXBlZGVm
IHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07CkBAIC03MSw3ICs2OSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIFNjcm9sbGJhcjsKIAotY2xh
c3MgUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PgorY2xhc3MgUG9wdXBN
ZW51IDogcHVibGljIFNlbGVjdFVJQ2xpZW50CiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICAg
ICAgICAgICwgcHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQKICNlbmRpZgpAQCAtODAsMjAgKzc4LDE2
IEBAIGNsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVudT4KICNlbmRp
ZgogewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlKFBv
cHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51KGNs
aWVudCkpOyB9CisgICAgUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOwogICAgIH5Qb3B1cE1l
bnUoKTsKLSAgICAKLSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQg
PSAwOyB9CiAKLSAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBp
bmRleCk7Ci0gICAgdm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBp
bmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
RnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwogICAg
IAogICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENs
aWVudDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KTsKLQogI2lmIFBMQVRGT1JNKFdJTikKICAgICBTY3JvbGxiYXIqIHNjcm9sbGJhcigpIGNvbnN0
IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CiAKQEAgLTEzNCw5ICsxMjgsNiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7IH0KICAgICB2b2lkIHNldFNjcm9sbGJhckNhcHR1cmlu
Z01vdXNlKGJvb2wgYikgeyBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlID0gYjsgfQogI2VuZGlm
Ci0KLXByb3RlY3RlZDoKLSAgICBQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CiAgICAgCiBw
cml2YXRlOgogICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKQEAgLTE0Niw4ICsx
MzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9wdWxhdGUoKTsKIAogICAgIFJldGFpblB0cjxO
U1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIFF0QWJz
dHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAvLyBTY3Jv
bGxCYXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9sbGJhciopOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKaW5kZXggNDI4NWNkZi4uOGUxMjllZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiwyMyArMjMsMjMgQEAKICNkZWZpbmUgU2Vh
cmNoUG9wdXBNZW51X2gKIAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlbGVj
dE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBBdG9taWNTdHJpbmc7CiAKLWNsYXNzIFNlYXJjaFBvcHVwTWVudSA6
IHB1YmxpYyBQb3B1cE1lbnUgeworY2xhc3MgU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFNlYXJj
aFVJQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IFNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsgfQotCi0gICAgdm9pZCBzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpOwotICAgIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLQotICAgIGJvb2wgZW5hYmxlZCgp
OworICAgIFNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB2aXJ0dWFsIFNl
bGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CiAgICAgCiBwcml2YXRlOgotICAgIFNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICBQb3B1cE1lbnUgbV9wb3B1cDsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKaW5k
ZXggNDcwMWE3NS4uMGQyODE2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChj
KSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMzQxLDYgKzEzNDIs
MTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICBoaWRlKCk7CiB9CiAKK3ZvaWQgUG9w
dXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30K
KwogLy8gVGhlIE1hYyBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24gZXh0ZXJuYWwg
Y29udHJvbCAoYSBDb2NvYSBjb250cm9sKQogLy8gdG8gZGlzcGxheSwgaGFuZGxlIHRoZSBpbnB1
dCB0cmFja2luZyBhbmQgbWVudSBpdGVtIHNlbGVjdGlvbiBmb3IgdGhlIHBvcHVwLgogLy8gV2lu
ZG93cyBhbmQgTGludXggQ2hyb21pdW0gbGV0IG91ciBXZWJLaXQgcG9ydCBoYW5kbGUgdGhlIGRp
c3BsYXksIHdoaWxlCkBAIC0xMzY3LDkgKzEzNzMsNCBAQCB2b2lkIFBvcHVwTWVudTo6dXBkYXRl
RnJvbUVsZW1lbnQoKQogICAgIHAucG9wdXAtPmxpc3RCb3goKS0+dXBkYXRlRnJvbUVsZW1lbnQo
KTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkg
Ci17IAotICAgIHJldHVybiBmYWxzZTsgCi19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21p
dW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHAKaW5kZXggODliZmRkZC4uNjgzZDNiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0zNywxMCArMzgsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2VhcmNoUG9w
dXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQ
b3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKK1NlbGVjdFVJ
Q2xpZW50KiBTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4g
Jm1fcG9wdXA7Cit9CisKIGJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVH
dGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcAppbmRleCBiZjhj
ZmI0Li4yMWYzZDZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVH
dGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKQEAgLTQs
NiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwg
bWlrZS5lbW1lbEBnbWFpbC5jb20KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDcsNiArNDgsMTEgQEAgUG9w
dXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICB9CiB9CiAKK3ZvaWQgUG9wdXBNZW51OjpkaXNjb25u
ZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwogdm9pZCBQb3B1cE1l
bnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgp
CiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKQEAgLTEyMSwxMSArMTI3LDYgQEAgdm9pZCBQb3B1
cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVt
KGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lk
IFBvcHVwTWVudTo6bWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVu
dSogdGhhdCkKIHsKICAgICBBU1NFUlQodGhhdC0+Y2xpZW50KCkpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKaW5kZXggZmJhYTUyNy4uYzJiNjIwZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCkBAIC0xLDQgKzEs
NiBAQAogLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0y
MiwxMSArMjQsMTcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUo
Y2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAorU2VsZWN0VUlDbGllbnQqIFNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQoKQor
eworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKworCiB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2
ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUG9wdXBNZW51TWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFj
Lm1tCmluZGV4IDZjMDY3YjkuLjIyNzMwMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BvcHVwTWVudU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVN
YWMubW0KQEAgLTQ5LDYgKzQ5LDExIEBAIFBvcHVwTWVudTo6flBvcHVwTWVudSgpCiAgICAgICAg
IFttX3BvcHVwLmdldCgpIHNldENvbnRyb2xWaWV3Om5pbF07CiB9CiAKK3ZvaWQgUG9wdXBNZW51
OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwogdm9p
ZCBQb3B1cE1lbnU6OmNsZWFyKCkKIHsKICAgICBpZiAobV9wb3B1cCkKQEAgLTIwMyw5ICsyMDgs
NCBAQCB2b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogfQogCi1ib29sIFBv
cHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiB0
cnVlOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1
cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0K
aW5kZXggMjYyNzM0ZC4uZjdjMjZkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBv
cHVwTWVudU1hYy5tbQpAQCAtMjUsMTAgKzI1LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQog
CitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCgpCit7Cisg
ICAgcmV0dXJuICZtX3BvcHVwOworfQorCiBzdGF0aWMgTlNTdHJpbmcqIGF1dG9zYXZlS2V5KGNv
bnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICByZXR1cm4gW0AiY29tLmFwcGxlLldlYktpdC5zZWFy
Y2hGaWVsZDoiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOm5hbWVdOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bv
cHVwTWVudVF0LmNwcAppbmRleCAzMTViODkxLi41NTkwNTU2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bv
cHVwTWVudVF0LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVRdC5oIgogCiAj
aW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKQEAgLTM1LDE4
ICszNSwyNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51UXQ6OlBvcHVwTWVudVF0KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBt
X3BvcHVwKDApCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVRdDo6
flBvcHVwTWVudVF0KCkKIHsKICAgICBkZWxldGUgbV9wb3B1cDsKIH0KIAotdm9pZCBQb3B1cE1l
bnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgp
CisKK3ZvaWQgUG9wdXBNZW51UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBD
bGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVudVF0OjpzaG93KGNvbnN0IEludFJlY3QmIHJl
Y3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIENocm9tZUNsaWVudFF0KiBj
aHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRRdCo+KAogICAgICAgICB2aWV3
LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC02NywxOSArNzMsMTQg
QEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2
aWV3LCBpbnQgaW5kZXgpCiAKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1
cE1lbnVRdDo6aGlkZSgpCiB7CiAgICAgbV9wb3B1cC0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVw
TWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQotewotICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0
ZW0obV9wb3B1cENsaWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKLX0KLQotYm9vbCBQb3B1cE1lbnU6
Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OnVwZGF0
ZUZyb21FbGVtZW50KCkKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9wb3B1cENsaWVudC0+
c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5kMzg3NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVw
TWVudVF0X2gKKyNkZWZpbmUgUG9wdXBNZW51UXRfaAorCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9k
Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xh
c3MgUXRBYnN0cmFjdFdlYlBvcHVwOworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBQb3B1cE1l
bnVRdCA6IHB1YmxpYyBTZWxlY3RVSUNsaWVudCB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51UXQo
UG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVF0KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0
dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKKy8vICAgIFBvcHVwTWVudUNs
aWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCitwcml2YXRl
OgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBRdEFic3RyYWN0V2Vi
UG9wdXAqIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVRdF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAppbmRleCBkYWQ0OTk3Li41ZjZmNjE5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHVibGljOgogICAgIFFGb250IGZvbnQoKSB7IHJldHVybiBtX3BvcHVwQ2xpZW50LT5t
ZW51U3R5bGUoKS5mb250KCkuZm9udCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNz
IFBvcHVwTWVudTsKKyAgICBmcmllbmQgY2xhc3MgUG9wdXBNZW51UXQ7CiAgICAgUG9wdXBNZW51
Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwogICAgIFFXZWJQYWdlQ2xpZW50KiBtX3BhZ2VDbGllbnQ7
CiAgICAgaW50IG1fY3VycmVudEluZGV4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVw
TWVudVF0LmNwcAppbmRleCAxODdhNWRlLi5jOWUxZWIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0
L1NlYXJjaFBvcHVwTWVudVF0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
QyAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTE4LDI2ICsxOSwyOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLQotI2luY2x1ZGUgIkF0b21pY1N0cmluZy5o
IgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51UXQ6OlNlYXJjaFBv
cHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQp
Cit7Cit9CisKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnVRdDo6c2VsZWN0VUlDbGll
bnQoKQogeworICAgIHJldHVybiAmbV9wb3B1cDsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6
OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi12b2lkIFNlYXJj
aFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiB9CiAKLWJvb2wgU2VhcmNo
UG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQoKQog
ewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9T
ZWFyY2hQb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVR
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMDcxMDcKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmgKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudVF0
X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51UXRfaAorCisjaW5jbHVkZSAiUG9wdXBNZW51UXQu
aCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVRdCA6IHB1YmxpYyBTZWFyY2hVSUNsaWVudCB7Citw
dWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2
aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVudCgpOworICAgIHZpcnR1YWwgdm9p
ZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRl
bXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAgCitwcml2YXRlOgorICAgIFBv
cHVwTWVudVF0IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVR
dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAppbmRleCA0NDE0MWYyLi5kYmZh
NDEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAgLTEsNiArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSBJ
bmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMTksNiArMTIwLDExIEBA
IExQQ1RTVFIgUG9wdXBNZW51Ojpwb3B1cENsYXNzTmFtZSgpCiAgICAgcmV0dXJuIGtQb3B1cFdp
bmRvd0NsYXNzTmFtZTsKIH0KIAordm9pZCBQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQoKQor
eworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCiB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25z
dCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBjYWxjdWxh
dGVQb3NpdGlvbkFuZFNpemUociwgdmlldyk7CkBAIC01NDcsMTEgKzU1Myw2IEBAIHZvaWQgUG9w
dXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIDo6VXBkYXRlV2luZG93KG1fcG9w
dXApOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KSAKLXsgCi0gICAgcmV0dXJuIHRydWU7IAotfQotCiBjb25zdCBpbnQgc2VwYXJhdG9yUGFkZGlu
ZyA9IDQ7CiBjb25zdCBpbnQgc2VwYXJhdG9ySGVpZ2h0ID0gMTsKIHZvaWQgUG9wdXBNZW51Ojpw
YWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKaW5kZXggZjI3MDliYi4uNDFhNzY5NyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiwxMCArMjcsMTUgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGll
bnQpCiB7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xp
ZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIGJvb2wgU2VhcmNoUG9wdXBNZW51
OjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcAppbmRleCAxNzc5MjFjLi4xNzZmNzNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIK
IAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNs
dWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKQEAgLTMzLDExICszNCwxMSBAQAogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHls
ZS5oIgogI2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJPcHRpb25Hcm91cEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJSZW5kZXJCUi5oIgog
I2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAj
aW5jbHVkZSAiU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5o
IgogI2luY2x1ZGUgPG1hdGguaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTg4LDggKzg5
LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSgpCiAgICAgbV9pbm5l
ckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50
ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7CiAgICAgbV9pbm5lckJsb2NrLT5z
dHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGlu
Z1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBh
ZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKHN0
eWxlKCkpLCBGaXhlZCkpOwotICAgICAgICAKLSAgICBpZiAoUG9wdXBNZW51OjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CisKKyAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpLT5j
aHJvbWUoKS0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkgewogICAgICAg
ICAvLyBJdGVtcyBpbiB0aGUgcG9wdXAgd2lsbCBub3QgcmVzcGVjdCB0aGUgQ1NTIHRleHQtYWxp
Z24gYW5kIGRpcmVjdGlvbiBwcm9wZXJ0aWVzLAogICAgICAgICAvLyBzbyB3ZSBtdXN0IGFkanVz
dCBvdXIgb3duIHN0eWxlIHRvIG1hdGNoLgogICAgICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCkt
PnNldFRleHRBbGlnbihMRUZUKTsKQEAgLTI3OCw3ICsyNzksNyBAQCB2b2lkIFJlbmRlck1lbnVM
aXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUgc2hvd1BvcHVwIGNhbGwgYW5kIGl0
IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygpOwogICAgIGlmICghbV9wb3B1cCkK
LSAgICAgICAgbV9wb3B1cCA9IFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3Bv
cHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VsZWN0VUlDbGllbnQo
dGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggZDcyZTFhOS4uM2YwMWUzMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zNSw4ICszNSw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9wdXBNZW51OwogY2xhc3MgUmVuZGVyVGV4dDsKK2NsYXNz
IFNlbGVjdFVJQ2xpZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQogY2xh
c3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3gsIHByaXZhdGUgTGlz
dFBvcHVwTWVudUNsaWVudCB7CkBAIC0xMzEsNyArMTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGlu
dCBtX2xhc3RTZWxlY3RlZEluZGV4OwogCi0gICAgUmVmUHRyPFBvcHVwTWVudT4gbV9wb3B1cDsK
KyAgICBSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IG1fcG9wdXA7CiAgICAgYm9vbCBtX3BvcHVwSXNW
aXNpYmxlOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5jcHAKaW5kZXggZDBhYjEwNy4uYzVlYTliZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0yLDYgKzIsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKSAKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogCisjaW5jbHVk
ZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzgsNyArNDAsNyBAQAogI2luY2x1
ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRl
ICJTZWxlY3RNZXRob2RDbGllbnQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgpAQCAt
NjIsNyArNjQsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNlaAogUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKCkKIHsKICAgICBpZiAobV9z
ZWFyY2hQb3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVwLT5kaXNjb25uZWN0Q2xpZW50KCk7
CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPmRpc2Nvbm5lY3RDbGll
bnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IDA7CiAgICAgfQogIApAQCAtMTA3LDcgKzEw
OSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQo
KQogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAg
aWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBN
ZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5w
YWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVudCh0aGlzKTsKIAogICAgIG1fc2Vh
cmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKIH0K
QEAgLTEyNSw3ICsxMjcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hv
d1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAg
ICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAg
ICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVT
ZWFyY2hVSUNsaWVudCh0aGlzKTsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgp
KQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMTQgKzE0NywxNCBAQCB2b2lkIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2
ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1f
c2VhcmNoUG9wdXAtPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRvY3VtZW50
KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPnNo
b3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEp
OwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKCkKIHsK
ICAgICBBU1NFUlQobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpOwogICAgIGlmIChtX3NlYXJjaFBv
cHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwLT5oaWRlKCk7CisgICAgICAgIG1fc2VhcmNoUG9w
dXAtPnNlbGVjdFVJQ2xpZW50KCktPmhpZGUoKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKQEAgLTY4NSw3ICs2ODcsNyBAQCB2b2lk
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIH0K
IAogICAgIGlmIChtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKQotICAgICAgICBtX3NlYXJjaFBvcHVw
LT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT5zZWxlY3RVSUNs
aWVudCgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKQpAQCAtODgzLDcg
Kzg4NSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQo
dW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVuCiAgICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAg
ICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlz
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KHRoaXMpOwogICAgICAgICAgICAgICAg
IG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVz
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA5MmVjYWRkLi5jYjJhY2JjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmls
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8p
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMiw3ICszMyw3IEBAIGNsYXNz
IElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OwogY2xh
c3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRSZXN1
bHRzQnV0dG9uRWxlbWVudDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVudTsKK2NsYXNzIFNlYXJjaFVJ
Q2xpZW50OwogY2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBUZXh0Q29udHJvbElubmVy
RWxlbWVudDsKIApAQCAtMTU0LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFRp
bWVyPFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4gbV9zZWFyY2hFdmVudFRpbWVyOwotICAg
IFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IG1fc2VhcmNoUG9wdXA7CisgICAgUmVmUHRyPFNlYXJj
aFVJQ2xpZW50PiBtX3NlYXJjaFBvcHVwOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fcmVjZW50U2Vh
cmNoZXM7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmM2IzMWFlLi5hMjA4MWQzIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdv
c3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2Vi
S2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1
OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5k
IFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20g
U2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJ
Q2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9y
IHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgor
ICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhh
dmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5ldworICAgICAgICBtZXRob2RzIGFu
ZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51Lgor
CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQp
OgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisKIDIwMTAtMDctMjMgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwCmluZGV4IGQ0M2Q4OGEuLmM2ZWQwYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01NCw4ICs1NSwxMCBAQAogI2lu
Y2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVw
TWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUg
IlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZS5oIgog
I2lmIFVTRShWOCkKICNpbmNsdWRlICJWOFByb3h5LmgiCkBAIC04MSw2ICs4NCw3IEBACiAjaW5j
bHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNzY1LDQgKzc2OSwyMCBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmV4aXRGdWxsc2NyZWVu
Rm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgp
LT5leGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViTm9kZShub2RlKSk7CiB9CiAKK2Jvb2wgQ2hyb21l
Q2xpZW50SW1wbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWxlY3RVSUNsaWVudD4g
Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3Jl
OjpQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlD
bGllbnQ+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOworfQorCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCBlODI0Mzgx
Li4xMzRiMDJiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0zMiw2ICszMyw4IEBACiAjZGVmaW5lIENocm9tZUNsaWVudEltcGxfaAogCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKKyNpbXBvcnQgIlNlbGVjdE1ldGhvZENsaWVu
dC5oIgorCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7
CkBAIC0xNjUsNiArMTY4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBX
ZWJDdXJzb3JJbmZvJiBjdXJzb3IpOwogICAgIHZvaWQgc2V0Q3Vyc29yRm9yUGx1Z2luKGNvbnN0
IFdlYkN1cnNvckluZm8mIGN1cnNvcik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hV
SUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBv
cHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDgwM2JmMTIuLjQ0ZTIw
ZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6
LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRv
IFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50
IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAgICBh
bmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBm
cm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFy
Y2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxl
IGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNl
cy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3Jt
cyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9k
cyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVu
dS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVu
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMTAt
MDctMTYgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAppbmRleCA4ODQ0MGJhLi44M2E1ZDYwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0
IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxh
bHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgPGduc0Bnbm9tZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAt
MzEsNiArMzIsOCBAQAogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUu
aCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCiAjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAgLTYxNiw0ICs2MTks
MTkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnIKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
d2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5jZWxsZWQiLCB3ZWJGcmFt
ZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6
U2VsZWN0VUlDbGllbnQ+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJDb3JlOjpQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoVUlDbGllbnQ+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IGNlNWM1YTcuLjJm
OGYzN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIz
LDcgQEAKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNp
bXBvcnQgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vi
VmlldyBXZWJLaXRXZWJWaWV3OwogCkBAIC0xMjIsNiArMTI0LDEwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKKyAgICAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlD
bGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAg
ICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgICAgIFdlYkNvcmU6OktVUkwgbV9ob3Zl
cmVkTGlua1VSTDsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggN2JkNmI0Ny4uNWM1MTkzYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMC0wNy0yMyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1l
bnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVy
ZSB2aXJ0dWFsIGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1
c2VkIGJ5IFJlbmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUgaW5zdGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51Lgor
ICAgICAgICBQb3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNl
YXJjaFBvcHVwTWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENo
cm9tZSBjbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNs
aWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQg
ZGVyaXZlZCBjbGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBp
bXBsZW1lbnQgdGhlIG5ldworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2Vz
IG9mIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNl
bGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlD
bGllbnQpOgorCiAyMDEwLTA3LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDdkMDgwLi4yNWUyMTEyIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2ltcG9ydCA8V2ViQ29yZS9DaHJvbWVDbGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2VsZWN0TWV0aG9kQ2xpZW50Lmg+
CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogCiBAY2xhc3MgV2ViVmlldzsKQEAgLTE2Nyw2ICsx
NjgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIHsgfQogCisgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNs
aWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1f
d2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCmluZGV4IGViNTYyNDAuLjU2ZGY2ZTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC02MCw5ICs2MCwxMSBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9JY29uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2luZG93RmVhdHVyZXMuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC03MjQs
NiArNzI2LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlkQmx1cihjb25zdCBXZWJD
b3JlOjpOb2RlKiBub2RlKQogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9y
KHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUq
Pihub2RlKSkpOwogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWxlY3RVSUNsaWVudD4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RV
SUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvcmU6OlBvcHVwTWVudShjbGllbnQpKTsKK30KKworUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudShjbGllbnQp
KTsKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllcikKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDMyMjkyMzQuLjBiYzQyZDMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEwLTA3LTIzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBv
cHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIE5l
dyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQg
YXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKKyAgICAgICAgYW5kIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1l
bnUuCisgICAgICAgIFBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCisKKyAgICAg
ICAgQ2hyb21lIGNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFNlbGVj
dFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBpbnN0YW5jZXMuCisgICAgICAgIENocm9tZUNs
aWVudCBkZXJpdmVkIGNsYXNzZXMgb2YgY29yZSBwbGF0Zm9ybXMgaGF2ZSBiZWVuIG1vZGlmaWVk
IHRvIGltcGxlbWVudCB0aGUgbmV3CisgICAgICAgIG1ldGhvZHMgYW5kIHRvIHJldHVybiBpbnN0
YW5jZXMgb2YgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0wNy0yMyAgRGF2aWQg
Qm9kZGllICA8ZGJvZGRpZUB0cm9sbHRlY2guY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHAKaW5kZXggMmM2NGE3OC4uMDYxMjcxNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDUsNiArNDYsNyBAQAogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVRdC5o
IgogI2lmIGRlZmluZWQoUV9XU19NQUVNT181KQogI2luY2x1ZGUgIlF0TWFlbW9XZWJQb3B1cC5o
IgogI2Vsc2UKQEAgLTUyLDYgKzU0LDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIlFXZWJQYWdlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnVRdC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVmlld3Bv
cnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgpAQCAtNjQ0LDQgKzY0
NywxOSBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMo
RnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyZwogICAgIGVtaXQgbV93ZWJQYWdlLT52aWV3
cG9ydENoYW5nZVJlcXVlc3RlZChoaW50cyk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50UXQ6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK1Bhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IENocm9tZUNsaWVudFF0OjpjcmVhdGVT
ZWxlY3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVF0KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNl
YXJjaFVJQ2xpZW50PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFy
Y2hQb3B1cE1lbnVRdChjbGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCA3MGI0YTI1Li5iZTAw
ODQ1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUu
b3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTEx
MCw2ICsxMTEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
dGFic1RvTGlua3MoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6
ZXJSZWN0KCkgY29uc3Q7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWxlY3RV
SUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Cisg
ICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlD
bGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3Qg
SW50UmVjdCYsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCBjZWM0MWM3Li4yY2I2YThjIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEwLTA3LTIzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBv
cHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIE5l
dyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQg
YXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKKyAgICAgICAgYW5kIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1l
bnUuCisgICAgICAgIFBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCisKKyAgICAg
ICAgQ2hyb21lIGNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFNlbGVj
dFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBpbnN0YW5jZXMuCisgICAgICAgIENocm9tZUNs
aWVudCBkZXJpdmVkIGNsYXNzZXMgb2YgY29yZSBwbGF0Zm9ybXMgaGF2ZSBiZWVuIG1vZGlmaWVk
IHRvIGltcGxlbWVudCB0aGUgbmV3CisgICAgICAgIG1ldGhvZHMgYW5kIHRvIHJldHVybiBpbnN0
YW5jZXMgb2YgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorCiAyMDEwLTA3LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNzM1MzJhNi4uNmUzNzhk
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsOSArNTYsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xv
Y2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2luZG93RmVhdHVyZXMuaD4KICNwcmFnbWEgd2FybmluZyhwb3ApCiAKKwogI2luY2x1ZGUgPHRj
aGFyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODY4LDMgKzg3MiwxOCBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKQogCiAjZW5k
aWYKIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpT
ZWxlY3RVSUNsaWVudD4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVudChXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkNvcmU6OlBvcHVwTWVudShjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJD
b3JlOjpTZWFyY2hVSUNsaWVudD4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVu
dChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsKK30KKwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZTc4NDVhOS4u
NWU1MmEyOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VsZWN0TWV0aG9kQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogCkBAIC0xMTIsNiArMTE0LDEwIEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogCisgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNsaWVudChXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIHZpcnR1YWwg
dm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3Jl
OjpTdHJpbmcmKTsKICNlbmRpZgotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62455</attachid>
            <date>2010-07-23 12:47:36 -0700</date>
            <delta_ts>2010-07-23 14:28:09 -0700</delta_ts>
            <desc>patch 3</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>74721</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA0ODBkZDBmZDBlODE4MTQ0MjliMTg3NmNlYWYwOGM2YjJiNWJiNzI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjMgSnVsIDIwMTAgMTQ6NTE6NDcgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFy
Y2hQb3B1cE1lbnUuClBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCgpDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KCldlYkNvcmU6CgpOZXcgSW50ZXJmYWNlcyBTZWxlY3RNZXRob2RDbGllbnQg
YW5kIFNlYXJjaE1ldGhvZENsaWVudAoKKiBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50Ojp+U2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6
U2VhcmNoVUlDbGllbnQ6On5TZWFyY2hVSUNsaWVudCk6CgpSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGNoYW5nZWQgdG8gdXNlIG5ldyBpbnRlcmZhY2VzIGFu
ZCB0byBvYnRhaW4KaW5zdGFuY2VzIG9mIHRoZW0gZnJvbSBDaHJvbWU6CgoqIHJlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJT
dHlsZSk6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaDoKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNob3dQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21F
bGVtZW50KToKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFu
Z2VkKToKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQgZnJvbSBTZWxlY3RNZXRo
b2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudApyZXNwZWN0aXZlbHkuIENocm9tZSBhbmQg
Q2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBpbnN0YW5jZXMgb2YgdGhvc2UgY2xhc3Nl
cy4KCiogcGxhdGZvcm0vUG9wdXBNZW51Lmg6CiogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6
CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVu
dCk6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpRdCBp
bXBsZW1lbnRhdGlvbiBpZiBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSBmaWxlClBvcHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaC4g
RnVydGhlciBRdCBjb2RlIGNsZWFuaW5nIGFyZSBjb21pbmcgaW4gZnV0dXJlIHBhdGNoZXMuCgoq
IFdlYkNvcmUucHJvOgoqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlBv
cHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuaDogQWRkZWQuCiogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CiogcGxh
dGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxl
Y3RVSUNsaWVudCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJj
aGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgoqIHBsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0Lmg6IEFkZGVkLgoKbWFjCgoqIFdlYkNvcmUuZXhwLmluOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1t
OgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLm1tOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6Cgpj
aHJvbWl1bQoKKiBXZWJDb3JlLmd5cGk6CiogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6
OnNlbGVjdFVJQ2xpZW50KToKCmd0awoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6
CiogcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNl
bGVjdFVJQ2xpZW50KToKCndpbgoKKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKiBw
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29u
bmVjdENsaWVudCk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHA6CihXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKCldlYktpdC9jaHJvbWl1bToKCiogc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwOgooV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0
ZVNlbGVjdFVJQ2xpZW50KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNo
VUlDbGllbnQpOgoqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CgpXZWJLaXQvZ3RrOgoKKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CihXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlU2Vh
cmNoVUlDbGllbnQpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgoKV2ViS2l0
L21hYzoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgoKV2ViS2l0L3F0
OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CihXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKFdlYkNvcmU6OkNocm9tZUNs
aWVudFF0OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaDoKCldlYktpdC93aW46CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CihXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTEyICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29y
ZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dl
YkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgICA0ICsKIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxMCAr
Ky0KIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNSArCiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTcgKysrLQogV2ViQ29yZS9wYWdlL0Nocm9tZS5oICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA3ICsrCiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDcgKysKIFdlYkNvcmUvcGFnZS9TZWxlY3RNZXRob2RDbGllbnQu
aCAgICAgICAgICAgICAgICAgIHwgICA1NiArKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL1Bv
cHVwTWVudS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKystLS0tCiBXZWJDb3JlL3Bs
YXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oICAgICAgICAgICAgICAgICB8ICAgMTcgKystLQogV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgICAgfCAgIDExICst
CiAuLi4vcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwICB8ICAg
IDggKystCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwICAgICAgICAgICAg
ICB8ICAgMTEgKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAg
ICAgICAgIHwgICAxMCArKy0KIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSAg
ICAgICAgICAgICAgIHwgICAxMCArLQogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBN
ZW51TWFjLm1tICAgICAgICAgfCAgICA3ICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVu
dVF0LmNwcCAgICAgICAgICAgICAgICB8ICAgMjUgKysrLS0KIFdlYkNvcmUvcGxhdGZvcm0vcXQv
UG9wdXBNZW51UXQuaCAgICAgICAgICAgICAgICAgIHwgICA1MSArKysrKysrKysKIFdlYkNvcmUv
cGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggICAgICAgICAgIHwgICAgMiArLQogV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgICAgICAgICAgfCAgIDIwICsr
LS0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaCAgICAgICAgICAgIHwg
ICA0NiArKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCAgICAg
ICAgICAgICAgfCAgIDExICstCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVX
aW4uY3BwICAgICAgICB8ICAgIDggKystCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAgICAgICAgICAgICAgICB8ICAgIDkgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmggICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCAgfCAgIDE4ICsrLS0KIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oICAgIHwgICAgNSArLQogV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgICAgICAgICAgIHwgICAyMCAr
KysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCAgICAgICAgICAgICB8
ICAgIDggKysKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAyMSArKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHAgICAgICB8ICAgMTggKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5oICAgICAgICB8ICAgIDggKysKIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oICAgICAgICB8ICAgIDYgKwogV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gICAgICAgfCAgIDE3ICsrKwogV2ViS2l0L3F0L0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAxOCArKysK
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAgICAgICAgIHwgICAg
NSArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMjEgKysrKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
ICAgICAgfCAgIDE5ICsrKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggICAgICAgIHwgICAgNyArKwogNDYgZmlsZXMgY2hhbmdlZCwgNjYyIGluc2VydGlvbnMo
KyksIDkyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGFnZS9TZWxl
Y3RNZXRob2RDbGllbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vcXQv
UG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vcXQvU2Vh
cmNoUG9wdXBNZW51UXQuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggOTVhMTFkNi4uNzhhYTQ3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTUgQEAKKzIwMTAt
MDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJl
ZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmly
dHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBi
eSBSZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
IGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAg
ICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQ
b3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2
ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVt
ZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQ
b3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICBOZXcgSW50ZXJmYWNlcyBT
ZWxlY3RNZXRob2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudAorCisgICAgICAgICogcGFn
ZS9TZWxlY3RNZXRob2RDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RV
SUNsaWVudDo6flNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFVJQ2xp
ZW50Ojp+U2VhcmNoVUlDbGllbnQpOgorCisgICAgICAgIFJlbmRlck1lbnVMaXN0IGFuZCBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgY2hhbmdlZCB0byB1c2UgbmV3IGludGVyZmFjZXMgYW5k
IHRvIG9idGFpbgorICAgICAgICBpbnN0YW5jZXMgb2YgdGhlbSBmcm9tIENocm9tZToKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKKwor
ICAgICAgICBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQg
ZnJvbSBTZWxlY3RNZXRob2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudAorICAgICAgICBy
ZXNwZWN0aXZlbHkuIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBp
bnN0YW5jZXMgb2YgdGhvc2UgY2xhc3Nlcy4KKworICAgICAgICAqIHBsYXRmb3JtL1BvcHVwTWVu
dS5oOgorICAgICAgICAqIHBsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RV
SUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2Vh
cmNoVUlDbGllbnQpOgorCisgICAgICAgIFF0IGltcGxlbWVudGF0aW9uIGlmIFNlbGVjdFVJQ2xp
ZW50IGFuZCBTZWFyY2hVSUNsaWVudCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIGZpbGUKKyAgICAg
ICAgUG9wdXBNZW51LmggYW5kIFNlYXJjaFBvcHVwTWVudS5oLiBGdXJ0aGVyIFF0IGNvZGUgY2xl
YW5pbmcgYXJlIGNvbWluZyBpbiBmdXR1cmUgcGF0Y2hlcy4KKworICAgICAgICAqIFdlYkNvcmUu
cHJvOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVRdDo6flBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0Ojpk
aXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpzaG93KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQv
UG9wdXBNZW51UXQuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdl
YlBvcHVwLmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxlY3RVSUNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0Lmg6IEFkZGVkLgorCisgICAgICAgIG1h
YworCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKKworICAgICAgICBjaHJvbWl1bQor
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29u
bmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNs
aWVudCk6CisKKyAgICAgICAgZ3RrCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NlYXJj
aFBvcHVwTWVudUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNl
YXJjaFBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNlbGVj
dFVJQ2xpZW50KToKKworICAgICAgICB3aW4KKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQpOgorCiAyMDEwLTA3LTIzICBBbGV4IE1pbG93
c2tpICA8YWxleEBtaWxvd3NraS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCBhZTIzZmNlLi41Yjc5MDNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE4MjIsNiArMTgyMiw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNw
cCBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggXAogCVdlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbkhhc2guaCBcCisJV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIFwK
IAlXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBc
CiAJV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzODk5YmY1
Li5lN2EyNGExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTEzNCw2ICsxMzQsNyBAQCBfX1o0Y29yZVAyMkRPTUNTU1N0
eWxlRGVjbGFyYXRpb24KIF9fWjRjb3JlUDdET01Ob2RlCiBfX1o0Y29yZVA4RE9NUmFuZ2UKIF9f
Wk4zSlNDOEJpbmRpbmdzOEluc3RhbmNlMTZuZXdSdW50aW1lT2JqZWN0RVBOU185RXhlY1N0YXRl
RQorX19aTjdXZWJDb3JlOVBvcHVwTWVudUMxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43
V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTlNfMTJBdG9taWNTdHJpbmdFYmJOM1dURjEwUGFzc1Jl
ZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5T
NV9JTlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2
ZVNjcm9sbGJhcnNFYgogX19aTjdXZWJDb3JlMTBTdHJpbmdJbXBsMTRjcmVhdGVDRlN0cmluZ0V2
CkBAIC0zNTIsNiArMzUzLDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHREMUV2CiBf
X1pON1dlYkNvcmUxNUpTRE9NV2luZG93QmFzZTE4Y29tbW9uSlNHbG9iYWxEYXRhRXYKIF9fWk43
V2ViQ29yZTE1U2Nyb2xsQWxpZ25tZW50MTdhbGlnbkNlbnRlckFsd2F5c0UKIF9fWk43V2ViQ29y
ZTE1U2Nyb2xsQWxpZ25tZW50MTlhbGlnblRvRWRnZUlmTmVlZGVkRQorX19aTjdXZWJDb3JlMTVT
ZWFyY2hQb3B1cE1lbnVDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxNVN0
cmluZ1RydW5jYXRvcjEzcmlnaHRUcnVuY2F0ZUVSS05TXzZTdHJpbmdFZlJLTlNfNEZvbnRFYgog
X19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3IxNGNlbnRlclRydW5jYXRlRVJLTlNfNlN0cmlu
Z0VmUktOU180Rm9udEViCiBfX1pON1dlYkNvcmUxNVN0cmluZ1RydW5jYXRvcjV3aWR0aEVSS05T
XzZTdHJpbmdFUktOU180Rm9udEViCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGY1M2Y0NTYuLjdmMjI0MjIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDMy
LDYgKzIwMzIsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwJywKICAg
ICAgICAgICAgICdwYWdlL1NlY3VyaXR5T3JpZ2luLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU2Vj
dXJpdHlPcmlnaW5IYXNoLmgnLAorICAgICAgICAgICAgJ3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGluZ3MuY3BwJywKICAgICAgICAgICAgICdwYWdl
L1NldHRpbmdzLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCcsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCAwOTA1NDIyLi41ZGVjNmZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE2MDgsNiArMTYwOCw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBhZ2UvUHJpbnRDb250ZXh0LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXAogICAgIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uaCBcCisgICAgcGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaCBcCiAgICAg
cGFnZS9TZXR0aW5ncy5oIFwKICAgICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggXAogICAgIHBh
Z2UvU3BlZWNoSW5wdXQuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCA0NDc5MTgyLi4wOGVhM2YyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTIyNDczLDYgKzIyNDczLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU2V0dGluZ3Mu
Y3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYWUyZGIxMy4uNGQ0YjA2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyLDcgKzQyLDcgQEAKIAkJMDY1QUQ0RjUwQjBD
MkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMjBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2
NUFENEYzMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovOyB9
OwogCQkwNjVBRDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGNDBC
MEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDY2OEUxOEIwQUREOTYyNDAwNDEy
OEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICovOyB9Owor
CQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAg
LyogUG9wdXBNZW51LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDY2OEUxOTAwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhFMThFMEFERDk2
NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCTA2NkM3NzJCMEFCNjAzQjcw
MDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2Qzc3
MkQwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8q
IEZpbGVDaG9vc2VyTWFjLm1tICovOyB9OwpAQCAtMzU4NCwxMiArMzU4NCwxMiBAQAogCQlBQjRD
QjRFQjBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI0Q0I0RUEwQjhCREEz
RDAwOUY0MEIwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCAqLzsgfTsKIAkJQUI2N0Qx
QTgwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdEMUE2MDk3RjNBRTMwMEY5Mzky
RSAvKiBSZW5kZXJUZXh0Q29udHJvbC5jcHAgKi87IH07CiAJCUFCNjdEMUE5MDk3RjNBRTMwMEY5
MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRD
b250cm9sLmggKi87IH07Ci0JCUFCNzE3MDg5MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFC
NzE3MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQUI3
MTcwODkwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNF
IC8qIFNlYXJjaFBvcHVwTWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUFCNzE3MEEwMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1l
bnVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
QjcxNzA5RjBCMzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9Owog
CQlBQkFGMjIwODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJBRjIyMDcwQzAzQjFDNzAwQjBCQ0Yw
IC8qIENocm9tZU1hYy5tbSAqLzsgfTsKIAkJQUJCNTQxOUUwQUNEREZFNDAwMjgyMEVCIC8qIFJl
bmRlckxpc3RCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUJCNTQxOUMwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guY3BwICovOyB9
OwogCQlBQkI1NDE5RjBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJCNTQxOUQwQUNEREZFNDAw
MjgyMEVCIC8qIFJlbmRlckxpc3RCb3guaCAqLzsgfTsKLQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5
M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVu
dC5oICovOyB9OworCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3
NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUJEREZFNzkwQTVDNkU3MDAwQTNFMTFE
IC8qIFJlbmRlck1lbnVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFCRERGRTczMEE1QzZFNkYwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5j
cHAgKi87IH07CiAJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzQw
QTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggKi87IH07CiAJCUFCRkU3RTEyMEQz
MkZBRjYwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkZFN0UxMDBEMzJGQUY1MDA2NkY0RDIg
LyogTWVkaWFDb250cm9sRWxlbWVudHMuY3BwICovOyB9OwpAQCAtNTAxMCw2ICs1MDEwLDcgQEAK
IAkJRDIzQ0E1NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTVDMEFCMEVBQUUw
MDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQyM0NBNTVGMEFCMEVBQjYw
MDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1Jhbmdl
RXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJRDIzQ0E1NkMwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdl
RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKKwkJ
RDM5RDAwQzkxMUZBMjI5NzAwNjA0MUYyIC8qIFNlbGVjdE1ldGhvZENsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwQzgxMUZBMjI5NzAw
NjA0MUYyIC8qIFNlbGVjdE1ldGhvZENsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29r
aWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYx
NTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21t
YW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRl
bnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsg
fTsKQEAgLTEwNjgxLDYgKzEwNjgyLDcgQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8q
IEpTUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NUUw
QUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzOUQwMEM4MTFGQTIyOTcwMDYwNDFGMiAv
KiBTZWxlY3RNZXRob2RDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VsZWN0TWV0aG9kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYx
NTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
ZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM3
Nyw2ICsxMjM3OSw3IEBACiAJCQkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5
T3JpZ2luLmNwcCAqLywKIAkJCQlCQ0QwRTBGODBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlP
cmlnaW4uaCAqLywKIAkJCQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmln
aW5IYXNoLmggKi8sCisJCQkJRDM5RDAwQzgxMUZBMjI5NzAwNjA0MUYyIC8qIFNlbGVjdE1ldGhv
ZENsaWVudC5oICovLAogCQkJCTE0QzlBNUU5MEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5j
cHAgKi8sCiAJCQkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8sCiAJ
CQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywK
QEAgLTE5ODU2LDYgKzE5ODU5LDcgQEAKIAkJCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyog
U2NoZW1lUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREYzMTdDMTFGOEQ2ODMwMDND
NUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEY3MDdBOUExMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlEMzlEMDBDOTExRkEyMjk3MDA2MDQxRjIgLyogU2VsZWN0TWV0
aG9kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTkzOGJi
Yy4uNThjNDk4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysr
IGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4LDYg
KzEwOSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQo
RnJhbWUqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgeyBy
ZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBj
b25zdCB7IHJldHVybiBQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PigpOyB9CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1l
bnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBQYXNzUmVmUHRyPFNlYXJjaFVJQ2xpZW50PigpOyB9
CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSB7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCmluZGV4IDBjNjY5MjUuLmQ5ZDMwYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTMxOCw2ICszMTgsMjEgQEAgYm9vbCBDaHJvbWU6OnNob3VsZEludGVycnVwdEph
dmFTY3JpcHQoKQogICAgIHJldHVybiBtX2NsaWVudC0+c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dCgpOwogfQogCitib29sIENocm9tZTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQoreworICAgIHJldHVybiBtX2NsaWVudC0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKK30KKworUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gQ2hyb21lOjpjcmVh
dGVTZWxlY3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVNlbGVjdFVJQ2xpZW50KGNsaWVudCk7Cit9CisKK1Bhc3NS
ZWZQdHI8U2VhcmNoVUlDbGllbnQ+IENocm9tZTo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVT
ZWFyY2hVSUNsaWVudChjbGllbnQpOworfQorCiBJbnRSZWN0IENocm9tZTo6d2luZG93UmVzaXpl
clJlY3QoKSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudC0+d2luZG93UmVzaXplclJlY3Qo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaAppbmRleCA1Mzc0NjhhLi5iNzJhNWJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNCw2ICsy
NSw3IEBACiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlv
bi5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IApAQCAtNDQsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVj
dDsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUG9wdXBNZW51
Q2xpZW50OwogICAgIGNsYXNzIFN0cmluZzsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAg
ICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CkBAIC0xMjIsNiArMTI1LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29u
c3QgU3RyaW5nJik7CiAgICAgICAgIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpOwog
CisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNl
bGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0OworCiAgICAgICAgIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25z
dDsKIAogICAgICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3OTVi
MjVjLi44ZGExM2NhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysr
IGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjcsNiArMjgs
NyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJRdWlya3MuaCIKICNpbmNsdWRlICJIb3N0V2luZG93
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTMsNiArNTUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNz
IFBhZ2U7CisgICAgY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogICAgIGNsYXNzIFN0cmluZzsKICAg
ICBjbGFzcyBXaWRnZXQ7CiAKQEAgLTEyNSw2ICsxMjgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpID0gMDsK
ICAgICAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3QgPSAwOwogCisgICAgICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpID0gMDsK
KyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RV
SUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3QgPSAwOworCiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVy
UmVjdCgpIGNvbnN0ID0gMDsKIAogICAgICAgICAvLyBNZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRv
dy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaCBiL1dlYkNv
cmUvcGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45ZjgyMGM2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NlbGVjdE1l
dGhvZENsaWVudC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgc2VsZWN0IGVsZW1lbnQgcmVuZGVyZXIgaW4gV2ViQ29yZS4KKyAqCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBTZWxlY3RNZXRob2RDbGllbnRfaAorI2RlZmluZSBTZWxlY3RNZXRob2RD
bGllbnRfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQXRvbWljU3RyaW5nOworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgSW50
UmVjdDsKKworY2xhc3MgU2VsZWN0VUlDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxTZWxlY3RV
SUNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflNlbGVjdFVJQ2xpZW50KCkge30KKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUZyb21FbGVtZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50
KCkgPSAwOworfTsKKworY2xhc3MgU2VhcmNoVUlDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxT
ZWFyY2hVSUNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflNlYXJjaFVJQ2xpZW50KCkg
e30KKyAgICB2aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVudCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgPSAw
OworfTsKKworfQorCisjZW5kaWYgLy8gU2VsZWN0TWV0aG9kQ2xpZW50X2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmggYi9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dS5oCmluZGV4IGQ5ZDI3NDAuLjU0OTY1NzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
UG9wdXBNZW51LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiAr
MjQsNyBAQAogCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVu
dC5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNDAsMTAgKzQyLDYg
QEAgY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7CiB0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7
CiB0eXBlZGVmIHN0cnVjdCBIRENfXyogSERDOwogdHlwZWRlZiBzdHJ1Y3QgSEJJVE1BUF9fKiBI
QklUTUFQOwotI2VsaWYgUExBVEZPUk0oUVQpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBR
dEFic3RyYWN0V2ViUG9wdXA7Ci19CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVj
dCBfR3RrTWVudSBHdGtNZW51OwogdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJ
dGVtOwpAQCAtNzEsNyArNjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGcmFtZVZp
ZXc7CiBjbGFzcyBTY3JvbGxiYXI7CiAKLWNsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFBvcHVwTWVudT4KK2NsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBTZWxlY3RVSUNsaWVudAog
I2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgICAgICAgICAsIHByaXZhdGUgU2Nyb2xsYmFyQ2xp
ZW50CiAjZW5kaWYKQEAgLTgwLDIwICs3OCwxNiBAQCBjbGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMg
UmVmQ291bnRlZDxQb3B1cE1lbnU+CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKTsgfQorICAgIFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKTsKICAgICB+UG9wdXBNZW51KCk7Ci0gICAgCi0gICAgdm9pZCBkaXNjb25u
ZWN0Q2xpZW50KCkgeyBtX3BvcHVwQ2xpZW50ID0gMDsgfQogCi0gICAgdm9pZCBzaG93KGNvbnN0
IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOwotICAgIHZvaWQgaGlkZSgpOwotCi0g
ICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0
IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRl
KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2
b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAKICAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KIAotICAgIHN0YXRpYyBib29sIGl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0KICNpZiBQTEFURk9STShXSU4pCiAgICAg
U2Nyb2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhci5nZXQoKTsg
fQogCkBAIC0xMzQsOSArMTI4LDYgQEAgcHVibGljOgogICAgIGJvb2wgc2Nyb2xsYmFyQ2FwdHVy
aW5nTW91c2UoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOyB9CiAg
ICAgdm9pZCBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29sIGIpIHsgbV9zY3JvbGxiYXJD
YXB0dXJpbmdNb3VzZSA9IGI7IH0KICNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopOwogICAgIAogcHJpdmF0ZToKICAgICBQb3B1cE1lbnVDbGllbnQq
IG1fcG9wdXBDbGllbnQ7CkBAIC0xNDYsOCArMTM3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBv
cHVsYXRlKCk7CiAKICAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7Ci0j
ZWxpZiBQTEFURk9STShRVCkKLSAgICBRdEFic3RyYWN0V2ViUG9wdXAqIG1fcG9wdXA7CiAjZWxp
ZiBQTEFURk9STShXSU4pCiAgICAgLy8gU2Nyb2xsQmFyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lk
IHZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
U2VhcmNoUG9wdXBNZW51LmggYi9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCmlu
ZGV4IDQyODVjZGYuLjhlMTI5ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNo
UG9wdXBNZW51LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjIsMjMgKzIzLDIzIEBACiAjZGVmaW5lIFNlYXJjaFBvcHVwTWVudV9oCiAKICNpbmNsdWRlICJQ
b3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXRvbWljU3RyaW5n
OwogCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKK2NsYXNzIFNl
YXJjaFBvcHVwTWVudSA6IHB1YmxpYyBTZWFyY2hVSUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGUoUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7IH0K
LQotICAgIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2b2lkIGxvYWRSZWNlbnRT
ZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcyk7Ci0KLSAgICBib29sIGVuYWJsZWQoKTsKKyAgICBTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50Kik7CisgICAgdmlydHVhbCBTZWxlY3RVSUNsaWVudCogc2VsZWN0VUlDbGllbnQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwogICAg
IAogcHJpdmF0ZToKLSAgICBTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CisgICAg
UG9wdXBNZW51IG1fcG9wdXA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDQ3MDFhNzUuLjBkMjgxNjkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMTM0MSw2ICsxMzQyLDExIEBAIFBvcHVwTWVudTo6flBvcHVwTWVudSgp
CiAgICAgaGlkZSgpOwogfQogCit2b2lkIFBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7
CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKIC8vIFRoZSBNYWMgQ2hyb21pdW0gaW1wbGVt
ZW50YXRpb24gcmVsaWVzIG9uIGV4dGVybmFsIGNvbnRyb2wgKGEgQ29jb2EgY29udHJvbCkKIC8v
IHRvIGRpc3BsYXksIGhhbmRsZSB0aGUgaW5wdXQgdHJhY2tpbmcgYW5kIG1lbnUgaXRlbSBzZWxl
Y3Rpb24gZm9yIHRoZSBwb3B1cC4KIC8vIFdpbmRvd3MgYW5kIExpbnV4IENocm9taXVtIGxldCBv
dXIgV2ViS2l0IHBvcnQgaGFuZGxlIHRoZSBkaXNwbGF5LCB3aGlsZQpAQCAtMTM2Nyw5ICsxMzcz
LDQgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBwLnBvcHVwLT5s
aXN0Qm94KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIAoteyAKLSAgICByZXR1cm4gZmFsc2U7IAotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDg5YmZkZGQuLjY4M2QzYjEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwg
MjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzcsMTAgKzM4LDE1IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKKyAgICA6IG1fcG9w
dXAoY2xpZW50KQogewogfQogCitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9wdXBNZW51OjpzZWxl
Y3RVSUNsaWVudCgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCiBib29sIFNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAKaW5kZXggYmY4Y2ZiNC4uMjFmM2Q2ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuY3BwCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQ3LDYgKzQ4LDExIEBAIFBvcHVwTWVudTo6flBvcHVwTWVudSgpCiAgICAgfQog
fQogCit2b2lkIFBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENs
aWVudCA9IDA7Cit9CisKIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3Qs
IEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CkBA
IC0xMjEsMTEgKzEyNyw2IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAg
ICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsK
IH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBQb3B1cE1lbnU6Om1lbnVJdGVtQWN0aXZhdGVk
KEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnUqIHRoYXQpCiB7CiAgICAgQVNTRVJUKHRoYXQt
PmNsaWVudCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVw
TWVudUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3Bw
CmluZGV4IGZiYWE1MjcuLmMyYjYyMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNo
UG9wdXBNZW51R3RrLmNwcApAQCAtMSw0ICsxLDYgQEAKIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwogICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMjIsMTEgKzI0LDE3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisK
Kwogdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSBiL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQppbmRleCA2YzA2N2I5Li4yMjczMDA0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCkBAIC00OSw2ICs0OSwxMSBAQCBQb3B1
cE1lbnU6On5Qb3B1cE1lbnUoKQogICAgICAgICBbbV9wb3B1cC5nZXQoKSBzZXRDb250cm9sVmll
dzpuaWxdOwogfQogCit2b2lkIFBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAg
bV9wb3B1cENsaWVudCA9IDA7Cit9CisKIHZvaWQgUG9wdXBNZW51OjpjbGVhcigpCiB7CiAgICAg
aWYgKG1fcG9wdXApCkBAIC0yMDMsOSArMjA4LDQgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZy
b21FbGVtZW50KCkKIHsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCmluZGV4IDI2MjczNGQuLmY3YzI2ZGEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KQEAgLTI1LDEwICsyNSwx
NSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCisg
ICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIAorU2VsZWN0VUlDbGllbnQqIFNlYXJjaFBvcHVw
TWVudTo6c2VsZWN0VUlDbGllbnQoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwogc3Rh
dGljIE5TU3RyaW5nKiBhdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgcmV0
dXJuIFtAImNvbS5hcHBsZS5XZWJLaXQuc2VhcmNoRmllbGQ6IiBzdHJpbmdCeUFwcGVuZGluZ1N0
cmluZzpuYW1lXTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKaW5kZXggMzE1Yjg5MS4u
NTU5MDU1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKQEAgLTI0LDcgKzI0LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkNocm9tZUNsaWVudFF0LmgiCkBAIC0zNSwxOCArMzUsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1Bv
cHVwTWVudVF0OjpQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1f
cG9wdXBDbGllbnQoY2xpZW50KQogICAgICwgbV9wb3B1cCgwKQogewogfQogCi1Qb3B1cE1lbnU6
On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51UXQ6On5Qb3B1cE1lbnVRdCgpCiB7CiAgICAgZGVsZXRl
IG1fcG9wdXA7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3Qs
IEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQorCit2b2lkIFBvcHVwTWVudVF0OjpkaXNjb25u
ZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1l
bnVRdDo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKIHsKICAgICBDaHJvbWVDbGllbnRRdCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hy
b21lQ2xpZW50UXQqPigKICAgICAgICAgdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCkpOwpAQCAtNjcsMTkgKzczLDE0IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0
IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogCiB9CiAKLXZvaWQg
UG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OmhpZGUoKQogewogICAgIG1fcG9w
dXAtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKLXsK
LSAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5k
ZXgoKSk7Ci19Ci0KLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCit2b2lkIFBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIG1fcG9wdXBDbGllbnQtPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50
LT5zZWxlY3RlZEluZGV4KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1BvcHVwTWVudVF0LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBjOWEzZQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVRdF9oCisjZGVmaW5lIFBvcHVwTWVudVF0
X2gKKworI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKK2NsYXNz
IFNjcm9sbGJhcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51UXQg
OiBwdWJsaWMgU2VsZWN0VUlDbGllbnQgeworcHVibGljOgorICAgIFBvcHVwTWVudVF0KFBvcHVw
TWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVRdCgpOworCisgICAgdmlydHVhbCB2b2lkIHNo
b3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2
b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCisvLyAgICBQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworcHJpdmF0ZToKKyAg
ICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgUXRBYnN0cmFjdFdlYlBvcHVw
KiBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51UXRfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKaW5kZXggZGFkNDk5Ny4uNWY2ZjYxOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCkBAIC02Myw3ICs2Myw3IEBA
IHB1YmxpYzoKICAgICBRRm9udCBmb250KCkgeyByZXR1cm4gbV9wb3B1cENsaWVudC0+bWVudVN0
eWxlKCkuZm9udCgpLmZvbnQoKTsgfQogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQb3B1
cE1lbnU7CisgICAgZnJpZW5kIGNsYXNzIFBvcHVwTWVudVF0OwogICAgIFBvcHVwTWVudUNsaWVu
dCogbV9wb3B1cENsaWVudDsKICAgICBRV2ViUGFnZUNsaWVudCogbV9wYWdlQ2xpZW50OwogICAg
IGludCBtX2N1cnJlbnRJbmRleDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2Vh
cmNoUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVR
dC5jcHAKaW5kZXggMTg3YTVkZS4uYzllMWViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFy
Y2hQb3B1cE1lbnVRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IEMgMjAw
NiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0xOCwyNiArMTksMjkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLSNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnVRdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNl
YXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQot
ICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1l
bnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQorewor
fQorCitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9wdXBNZW51UXQ6OnNlbGVjdFVJQ2xpZW50KCkK
IHsKKyAgICByZXR1cm4gJm1fcG9wdXA7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
KQordm9pZCBTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3Ry
aW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi1ib29sIFNlYXJjaFBvcHVw
TWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudVF0OjplbmFibGVkKCkKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTMwMTNkCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVRdF9oCisj
ZGVmaW5lIFNlYXJjaFBvcHVwTWVudVF0X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCisj
aW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVRdCA6IHB1Ymxp
YyBTZWFyY2hVSUNsaWVudCB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51UXQoUG9wdXBN
ZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVu
dCgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1
YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7Cisg
ICAgCitwcml2YXRlOgorICAgIFBvcHVwTWVudVF0IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBTZWFyY2hQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cAppbmRleCA0NDE0MWYyLi5kYmZhNDEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
Ny0yMDA5IFRvcmNoIE1vYmlsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0xMTksNiArMTIwLDExIEBAIExQQ1RTVFIgUG9wdXBNZW51Ojpwb3B1cENsYXNzTmFtZSgp
CiAgICAgcmV0dXJuIGtQb3B1cFdpbmRvd0NsYXNzTmFtZTsKIH0KIAordm9pZCBQb3B1cE1lbnU6
OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCiB2b2lk
IFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBp
bmRleCkKIHsKICAgICBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUociwgdmlldyk7CkBAIC01NDcs
MTEgKzU1Myw2IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAg
IDo6VXBkYXRlV2luZG93KG1fcG9wdXApOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAgcmV0dXJuIHRydWU7IAotfQotCiBjb25z
dCBpbnQgc2VwYXJhdG9yUGFkZGluZyA9IDQ7CiBjb25zdCBpbnQgc2VwYXJhdG9ySGVpZ2h0ID0g
MTsKIHZvaWQgUG9wdXBNZW51OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMg
aGRjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2lu
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKaW5kZXgg
ZjI3MDliYi4uNDFhNzY5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNo
UG9wdXBNZW51V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1l
bnVXaW4uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiwxMCAr
MjcsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisK
IGJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxNzc5MjFjLi4xNzZmNzNkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyTWVudUxpc3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTMzLDExICszNCwxMSBAQAogI2lu
Y2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIKICNp
bmNsdWRlICJPcHRpb25Hcm91cEVsZW1lbnQuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNp
bmNsdWRlICJSZW5kZXJCUi5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1
ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPG1hdGguaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKQEAgLTg4LDggKzg5LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5u
ZXJTdHlsZSgpCiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVu
Z3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7
CiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgp
LT5wb3B1cEludGVybmFsUGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVy
QmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50
ZXJuYWxQYWRkaW5nQm90dG9tKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgICAgICAKLSAgICBpZiAo
UG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CisKKyAgICBpZiAo
ZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKSkgewogICAgICAgICAvLyBJdGVtcyBpbiB0aGUgcG9wdXAgd2lsbCBub3QgcmVz
cGVjdCB0aGUgQ1NTIHRleHQtYWxpZ24gYW5kIGRpcmVjdGlvbiBwcm9wZXJ0aWVzLAogICAgICAg
ICAvLyBzbyB3ZSBtdXN0IGFkanVzdCBvdXIgb3duIHN0eWxlIHRvIG1hdGNoLgogICAgICAgICBt
X2lubmVyQmxvY2stPnN0eWxlKCktPnNldFRleHRBbGlnbihMRUZUKTsKQEAgLTI3OCw3ICsyNzks
NyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUg
c2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygp
OwogICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IFBvcHVwTWVudTo6Y3JlYXRl
KHRoaXMpOworICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y3JlYXRlU2VsZWN0VUlDbGllbnQodGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0g
dG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3Bv
cHVwSXNWaXNpYmxlID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXgg
ZDcyZTFhOS4uM2YwMWUzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zNSw4
ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9wdXBNZW51OwogY2xh
c3MgUmVuZGVyVGV4dDsKK2NsYXNzIFNlbGVjdFVJQ2xpZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJ
U1RCT1hfUkVOREVSSU5HKQogY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxl
eGlibGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CkBAIC0xMzEsNyArMTMxLDcg
QEAgcHJpdmF0ZToKIAogICAgIGludCBtX2xhc3RTZWxlY3RlZEluZGV4OwogCi0gICAgUmVmUHRy
PFBvcHVwTWVudT4gbV9wb3B1cDsKKyAgICBSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IG1fcG9wdXA7
CiAgICAgYm9vbCBtX3BvcHVwSXNWaXNpYmxlOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZDBhYjEwNy4uYzVlYTli
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBU
b3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1v
YmlsZS5jb20vKSAKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxl
Y3Rvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAt
MzgsNyArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQ
b3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKICNpbmNsdWRlICJT
ZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJT
aW1wbGVGb250RGF0YS5oIgpAQCAtNjIsNyArNjQsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNl
aAogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVw
LT5kaXNjb25uZWN0Q2xpZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xp
ZW50KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IDA7CiAg
ICAgfQogIApAQCAtMTA3LDcgKzEwOSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0g
YXV0b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJj
aFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNo
UG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVu
dCh0aGlzKTsKIAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBt
X3JlY2VudFNlYXJjaGVzKTsKIH0KQEAgLTEyNSw3ICsxMjcsNyBAQCB2b2lkIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdl
KCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVudCh0aGlzKTsKIAogICAgIGlmICghbV9z
ZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMTQgKzE0Nywx
NCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAg
ICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNo
ZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3coYWJzb2x1dGVCb3VuZGluZ0Jv
eFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAt
PnNlbGVjdFVJQ2xpZW50KCktPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRv
Y3VtZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6aGlkZVBvcHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkp
OwogICAgIGlmIChtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwLT5oaWRlKCk7
CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPmhpZGUoKTsKIH0KIAog
dm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKQEAg
LTY4NSw3ICs2ODcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRl
RnJvbUVsZW1lbnQoKQogICAgIH0KIAogICAgIGlmIChtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKQot
ICAgICAgICBtX3NlYXJjaFBvcHVwLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICBtX3Nl
YXJjaFBvcHVwLT5zZWxlY3RVSUNsaWVudCgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2
b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0
LCBpbnQgZW5kKQpAQCAtODgzLDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVuCiAg
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAg
ICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1f
c2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQ
b3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1
cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KHRo
aXMpOwogICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhu
YW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA5MmVj
YWRkLi5jYjJhY2JjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8v
d3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMiw3ICszMyw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0RmllbGRTcGVl
Y2hCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50Owog
Y2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKLWNsYXNzIFNlYXJjaFBvcHVw
TWVudTsKK2NsYXNzIFNlYXJjaFVJQ2xpZW50OwogY2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBj
bGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudDsKIApAQCAtMTU0LDcgKzE1NSw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIFRpbWVyPFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4gbV9z
ZWFyY2hFdmVudFRpbWVyOwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IG1fc2VhcmNoUG9w
dXA7CisgICAgUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBtX3NlYXJjaFBvcHVwOwogICAgIFZlY3Rv
cjxTdHJpbmc+IG1fcmVjZW50U2VhcmNoZXM7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmM2IzMWFl
Li5hMjA4MWQzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jpbmcg
aW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNz
ZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1l
bnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBv
ZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1l
bnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBp
bmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNo
VUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2Vz
IG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5l
dworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNy
ZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisKIDIwMTAtMDctMjMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGQ0M2Q4OGEuLmM2ZWQwYWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC01NCw4ICs1NSwxMCBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJOb3RpZmljYXRp
b25QcmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBvcHVwTWVu
dS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYkdl
b2xvY2F0aW9uU2VydmljZS5oIgogI2lmIFVTRShWOCkKICNpbmNsdWRlICJWOFByb3h5LmgiCkBA
IC04MSw2ICs4NCw3IEBACiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJX
cmFwcGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzY1LDQgKzc2OSwyMCBAQCB2b2lkIENocm9tZUNsaWVu
dEltcGw6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAg
ICBtX3dlYlZpZXctPmNsaWVudCgpLT5leGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViTm9kZShub2Rl
KSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxXZWJD
b3JlOjpTZWxlY3RVSUNsaWVudD4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VsZWN0VUlDbGll
bnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQ
dHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJj
aFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOwor
fQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuaAppbmRleCBlODI0MzgxLi4yM2VhOWJjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMiw2ICszMyw5IEBACiAjZGVmaW5lIENocm9t
ZUNsaWVudEltcGxfaAogCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKKyNpbmNs
dWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIK
KwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwpAQCAt
MTY1LDYgKzE2OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ3Vy
c29ySW5mbyYgY3Vyc29yKTsKICAgICB2b2lkIHNldEN1cnNvckZvclBsdWdpbihjb25zdCBXZWJD
dXJzb3JJbmZvJiBjdXJzb3IpOwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
bGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGll
bnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0
OworCiBwcml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENv
bnRhaW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MDNiZjEyLi40NGUyMGY5IDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA3LTIzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29z
dGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJL
aXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5
MgorCisgICAgICAgIE5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBhbmQg
U2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKKyAgICAgICAgYW5kIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCisgICAgICAgIFBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBT
ZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlD
bGllbnQuCisKKyAgICAgICAgQ2hyb21lIGNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3Ig
cHJvdmlkaW5nIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBpbnN0YW5jZXMuCisg
ICAgICAgIENocm9tZUNsaWVudCBkZXJpdmVkIGNsYXNzZXMgb2YgY29yZSBwbGF0Zm9ybXMgaGF2
ZSBiZWVuIG1vZGlmaWVkIHRvIGltcGxlbWVudCB0aGUgbmV3CisgICAgICAgIG1ldGhvZHMgYW5k
IHRvIHJldHVybiBpbnN0YW5jZXMgb2YgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTE2
ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKaW5kZXggODg0NDBiYS4uODNhNWQ2MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwOCBOdWFudGkgTHRkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxn
bnNAZ25vbWUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYg
KzMyLDggQEAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgog
I2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCkBAIC02MTYsNCArNjE5LDE5IEBA
IHZvaWQgQ2hyb21lQ2xpZW50OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWUqIGZyCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZp
ZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwgd2ViRnJhbWUpOwog
fQogCitib29sIENocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQoreworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVj
dFVJQ2xpZW50PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
YXJjaFVJQ2xpZW50PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBjZTVjNWE3Li5iMjAxNmE2
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMyw5IEBA
CiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisK
IAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsKIApAQCAtMTIy
LDYgKzEyNiwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNv
cmU6Okdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9s
b2NhdGlvbiopOwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vs
ZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlD
bGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNv
bnN0OworCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3Owog
ICAgICAgICBXZWJDb3JlOjpLVVJMIG1faG92ZXJlZExpbmtVUkw7CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDdiZDZiNDcuLjVj
NTE5M2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxs
dWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9u
IHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xp
ZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAg
ICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1
cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0
cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBT
ZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNp
YmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3Rh
bmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRm
b3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0
aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToKKwogMjAxMC0wNy0yMiAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFj
aG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggNzA3ZDA4MC4uNWYzZDNjOCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvQ2hyb21l
Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZWxlY3RNZXRob2RD
bGllbnQuaD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAKIEBjbGFzcyBXZWJWaWV3OwpAQCAt
MTY3LDYgKzE2OSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CiAK
KyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNl
bGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGll
bnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV2Vi
VmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggZWI1NjI0MC4uNTZkZjZlMiAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTYwLDkgKzYwLDExIEBACiAjaW1wb3J0
IDxXZWJDb3JlL0ljb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmlu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4K
QEAgLTcyNCw2ICs3MjYsMjEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvcm1EaWRCbHVyKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBA
c2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KG5vZGUpKSk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOwor
fQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
KGNsaWVudCkpOworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzIyOTIzNC4uMGJjNDJkMyAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAg
ICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hV
SUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJ
Q2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4K
KworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAg
Q2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4g
bW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0
dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDEwLTA3LTIz
ICBEYXZpZCBCb2RkaWUgIDxkYm9kZGllQHRyb2xsdGVjaC5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcAppbmRleCAyYzY0YTc4Li4wNjEyNzE0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC00NSw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50
ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRRdC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudVF0LmgiCiAjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCiAjaW5jbHVkZSAiUXRNYWVtb1dl
YlBvcHVwLmgiCiAjZWxzZQpAQCAtNTIsNiArNTQsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiUVdl
YlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudVF0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCkBAIC02
NDQsNCArNjQ3LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmRpZFJlY2VpdmVWaWV3cG9ydEFy
Z3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJnCiAgICAgZW1pdCBtX3dlYlBh
Z2UtPnZpZXdwb3J0Q2hhbmdlUmVxdWVzdGVkKGhpbnRzKTsKIH0KIAorYm9vbCBDaHJvbWVDbGll
bnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gQ2hyb21lQ2xpZW50UXQ6
OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51UXQoY2xpZW50KSk7Cit9CisKK1Bhc3NS
ZWZQdHI8U2VhcmNoVUlDbGllbnQ+IENocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFyY2hVSUNsaWVu
dChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlYXJjaFBvcHVwTWVudVF0KGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRh
MjUuLmJlMDA4NDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6
YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgpAQCAtMTEwLDYgKzExMSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2lu
ZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBjcmVhdGVT
ZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogICAgICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYsIGJv
b2wpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGNlYzQxYzcuLjJjYjZhOGMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAg
ICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hV
SUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJ
Q2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4K
KworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAg
Q2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4g
bW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0
dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDctMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3MzUzMmE2
Li42ZTM3OGRmIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw5ICs1NiwxMiBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVw
TWVudS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIAorCiAjaW5j
bHVkZSA8dGNoYXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04NjgsMyArODcy
LDE4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSop
CiAKICNlbmRpZgogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFdl
YkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJj
aFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOwor
fQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBl
Nzg0NWE5Li41NmYwYWExIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDcgKzI4LDkgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0TWV0aG9kQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCkBAIC0xMTIsNiArMTE1LDEw
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwog
CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBjcmVhdGVT
ZWxlY3RVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xp
ZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAjaWYgRU5BQkxFKERBVEFC
QVNFKQogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKICNlbmRpZgotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62461</attachid>
            <date>2010-07-23 14:28:09 -0700</date>
            <delta_ts>2010-07-23 20:09:35 -0700</delta_ts>
            <desc>patch 4</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>81135</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA0NzgxNGQ4NmQ4M2IxNmVhYWQ3ZTM2MzBjNzRmZmM0ZDE3MmM2MzVlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjMgSnVsIDIwMTAgMTQ6NTE6NDcgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFy
Y2hQb3B1cE1lbnUuClBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCgpDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KCldlYkNvcmU6CgpOZXcgSW50ZXJmYWNlcyBTZWxlY3RNZXRob2RDbGllbnQg
YW5kIFNlYXJjaE1ldGhvZENsaWVudAoKKiBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50Ojp+U2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6
U2VhcmNoVUlDbGllbnQ6On5TZWFyY2hVSUNsaWVudCk6CgpSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGNoYW5nZWQgdG8gdXNlIG5ldyBpbnRlcmZhY2VzIGFu
ZCB0byBvYnRhaW4KaW5zdGFuY2VzIG9mIHRoZW0gZnJvbSBDaHJvbWU6CgoqIHJlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJT
dHlsZSk6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaDoKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNob3dQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21F
bGVtZW50KToKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFu
Z2VkKToKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQgZnJvbSBTZWxlY3RNZXRo
b2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudApyZXNwZWN0aXZlbHkuIENocm9tZSBhbmQg
Q2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBpbnN0YW5jZXMgb2YgdGhvc2UgY2xhc3Nl
cy4KCiogcGxhdGZvcm0vUG9wdXBNZW51Lmg6CiogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6
CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVu
dCk6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpRdCBp
bXBsZW1lbnRhdGlvbiBpZiBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSBmaWxlClBvcHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaC4g
RnVydGhlciBRdCBjb2RlIGNsZWFuaW5nIGFyZSBjb21pbmcgaW4gZnV0dXJlIHBhdGNoZXMuCgoq
IFdlYkNvcmUucHJvOgoqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlBv
cHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuaDogQWRkZWQuCiogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CiogcGxh
dGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxl
Y3RVSUNsaWVudCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJj
aGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgoqIHBsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0Lmg6IEFkZGVkLgoKbWFjCgoqIFdlYkNvcmUuZXhwLmluOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1t
OgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLm1tOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6Cgpj
aHJvbWl1bQoKKiBXZWJDb3JlLmd5cGk6CiogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6
OnNlbGVjdFVJQ2xpZW50KToKCmd0awoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6
CiogcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNl
bGVjdFVJQ2xpZW50KToKCndpbgoKKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKiBw
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29u
bmVjdENsaWVudCk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHA6CihXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKCmVmbAoKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51
RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dTo6U2VhcmNoUG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgoo
V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6Ciogc3JjL0No
cm9tZUNsaWVudEltcGwuaDoKCldlYktpdC9ndGs6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CgpXZWJLaXQvbWFjOgoKKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW06CihXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJj
aFVJQ2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgoKV2ViS2l0L3dp
bjoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYkNocm9tZUNsaWVu
dDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJ
Q2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMjEgKysrKysr
KysrKysrKysrKysrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKwogV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKy0KIFdlYkNv
cmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBX
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg
KwogV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oICAgICAgICAgICAgICAgICAgfCAg
IDU2ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDI3ICsrLS0tCiBXZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5o
ICAgICAgICAgICAgICAgICB8ICAgMTcgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5jcHAgICAgfCAgIDExICstCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0v
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwICB8ICAgIDggKy0KIFdlYkNvcmUvcGxhdGZvcm0v
ZWZsL1BvcHVwTWVudUVmbC5jcHAgICAgICAgICAgICAgIHwgICAxMSArLQogV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcCAgICAgICAgfCAgICA4ICstCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwICAgICAgICAgICAgICB8ICAgMTEgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAgICAgICAgIHwgICAxMCAr
Ky0KIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSAgICAgICAgICAgICAgIHwg
ICAxMCArLQogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tICAgICAg
ICAgfCAgICA3ICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCAgICAgICAg
ICAgICAgICB8ICAgMjQgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oICAg
ICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJz
dHJhY3RXZWJQb3B1cC5oICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQv
U2VhcmNoUG9wdXBNZW51UXQuY3BwICAgICAgICAgIHwgICAyMCArKy0tCiBXZWJDb3JlL3BsYXRm
b3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmggICAgICAgICAgICB8ICAgNDYgKysrKysrKysKIFdl
YkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAgICAgICAgICAgICAgIHwgICAxMSAr
LQogV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCAgICAgICAgfCAg
ICA4ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgICAgICAgICAgICAg
ICB8ICAgIDkgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAgICAg
ICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcCAgfCAgIDE4ICsrLS0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oICAgIHwgICAgNSArLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAgICAgICAgICAgIHwgICAxOSArKysKIFdlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCAgICAgIHwgICAxNyAr
KysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggICAgICAgIHwg
ICAgNSArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjEgKysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwICAgICAgfCAgIDE4ICsrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCAgICAgICAgfCAgICA2ICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAxNyArKysKIFdlYktpdC9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAgMTggKysrCiBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDUg
KwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIxICsrKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAg
ICAgIHwgICAxOSArKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggICAgICAgIHwgICAgNyArCiA1MSBmaWxlcyBjaGFuZ2VkLCA3MjUgaW5zZXJ0aW9ucygrKSwg
OTggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wYWdlL1NlbGVjdE1l
dGhvZENsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQ
b3B1cE1lbnVRdC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NWExMWQ2Li4zYzI3YzExIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNCBAQAorMjAxMC0wNy0y
MyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0
b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFs
IGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJl
bmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5z
dGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQ
b3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVw
TWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGll
bnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQg
U2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBj
bGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQg
dGhlIG5ldworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVw
TWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgIE5ldyBJbnRlcmZhY2VzIFNlbGVj
dE1ldGhvZENsaWVudCBhbmQgU2VhcmNoTWV0aG9kQ2xpZW50CisKKyAgICAgICAgKiBwYWdlL1Nl
bGVjdE1ldGhvZENsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFVJQ2xp
ZW50Ojp+U2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ6
On5TZWFyY2hVSUNsaWVudCk6CisKKyAgICAgICAgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBjaGFuZ2VkIHRvIHVzZSBuZXcgaW50ZXJmYWNlcyBhbmQgdG8g
b2J0YWluCisgICAgICAgIGluc3RhbmNlcyBvZiB0aGVtIGZyb20gQ2hyb21lOgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
bnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6YWRkU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKworCisgICAg
ICAgIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGNoYW5nZWQgdG8gaW5oZXJpdCBmcm9t
IFNlbGVjdE1ldGhvZENsaWVudCBhbmQgU2VhcmNoTWV0aG9kQ2xpZW50CisgICAgICAgIHJlc3Bl
Y3RpdmVseS4gQ2hyb21lIGFuZCBDaHJvbWVDbGllbnQgY2hhbmdlZCB0byBwcm92aWRlIGluc3Rh
bmNlcyBvZiB0aG9zZSBjbGFzc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Lmg6
CisgICAgICAgICogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgICogcGFnZS9D
aHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwp
OgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hV
SUNsaWVudCk6CisKKyAgICAgICAgUXQgaW1wbGVtZW50YXRpb24gaWYgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gZmlsZQorICAgICAgICBQ
b3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmguIEZ1cnRoZXIgUXQgY29kZSBjbGVhbmlu
ZyBhcmUgY29taW5nIGluIGZ1dHVyZSBwYXRjaGVzLgorCisgICAgICAgICogV2ViQ29yZS5wcm86
CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51UXQ6OlBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVF0Ojp+UG9wdXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OmRpc2Nv
bm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51UXQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9w
dXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6U2VhcmNoUG9wdXBNZW51UXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OnNlbGVjdFVJQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICog
cGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgbWFjCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQpOgorCisgICAgICAgIGNocm9taXVtCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0
Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVw
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50
KToKKworICAgICAgICBndGsKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgorCisgICAgICAgIHdpbgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6CisKKyAgICAgICAgZWZsCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9w
dXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgorCisKIDIwMTAtMDctMjMgIEFsZXggTWlsb3dza2kgIDxhbGV4QG1pbG93c2tpLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGFlMjNmY2Uu
LjViNzkwM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTgyMiw2ICsxODIyLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uaCBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKKwlX
ZWJDb3JlL3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmggXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlXZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDM4OTliZjUuLmU3YTI0YTEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTM0LDYgKzEzNCw3IEBAIF9fWjRjb3JlUDIyRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogX19aNGNv
cmVQN0RPTU5vZGUKIF9fWjRjb3JlUDhET01SYW5nZQogX19aTjNKU0M4QmluZGluZ3M4SW5zdGFu
Y2UxNm5ld1J1bnRpbWVPYmplY3RFUE5TXzlFeGVjU3RhdGVFCitfX1pON1dlYkNvcmU5UG9wdXBN
ZW51QzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFF
UktOU18xMkF0b21pY1N0cmluZ0ViYk4zV1RGMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVp
aWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgog
X19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MjBzZXRDYW5IYXZlU2Nyb2xsYmFyc0ViCiBfX1pON1dl
YkNvcmUxMFN0cmluZ0ltcGwxNGNyZWF0ZUNGU3RyaW5nRXYKQEAgLTM1Miw2ICszNTMsNyBAQCBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dEQxRXYKIF9fWk43V2ViQ29yZTE1SlNET01XaW5k
b3dCYXNlMThjb21tb25KU0dsb2JhbERhdGFFdgogX19aTjdXZWJDb3JlMTVTY3JvbGxBbGlnbm1l
bnQxN2FsaWduQ2VudGVyQWx3YXlzRQogX19aTjdXZWJDb3JlMTVTY3JvbGxBbGlnbm1lbnQxOWFs
aWduVG9FZGdlSWZOZWVkZWRFCitfX1pON1dlYkNvcmUxNVNlYXJjaFBvcHVwTWVudUMxRVBOU18x
NVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTNyaWdodFRy
dW5jYXRlRVJLTlNfNlN0cmluZ0VmUktOU180Rm9udEViCiBfX1pON1dlYkNvcmUxNVN0cmluZ1Ry
dW5jYXRvcjE0Y2VudGVyVHJ1bmNhdGVFUktOU182U3RyaW5nRWZSS05TXzRGb250RWIKIF9fWk43
V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yNXdpZHRoRVJLTlNfNlN0cmluZ0VSS05TXzRGb250RWIK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggZjUzZjQ1Ni4uN2YyMjQyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMzIsNiArMjAzMiw3IEBACiAgICAgICAg
ICAgICAncGFnZS9TZWN1cml0eU9yaWdpbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU2VjdXJp
dHlPcmlnaW4uaCcsCiAgICAgICAgICAgICAncGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCcsCisg
ICAgICAgICAgICAncGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFn
ZS9TZXR0aW5ncy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGluZ3MuaCcsCiAgICAgICAg
ICAgICAncGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA5MDU0MjIuLjVkZWM2ZmYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtMTYwOCw2ICsxNjA4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9QcmludENvbnRleHQu
aCBcCiAgICAgcGFnZS9TY3JlZW4uaCBcCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbi5oIFwKKyAg
ICBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIFwKICAgICBwYWdlL1NldHRpbmdzLmggXAogICAg
IHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dC5oIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ0NzkxODIuLjA4ZWEzZjIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjI0NzMsNiArMjI0NzMsMTAg
QEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGFnZVxTZWxlY3RNZXRob2RDbGllbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTZXR0aW5ncy5jcHAiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhZTJk
YjEzLi40ZDRiMDY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDIsNyArNDIsNyBAQAogCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4
dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA2NUFENEYyMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NUFENEY2MEIw
QzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjMwQjBDMkVEQTAwNUEyQjFE
IC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAgKi87IH07CiAJCTA2NUFENEY3MEIwQzJFREEw
MDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEY0MEIwQzJFREEwMDVBMkIxRCAvKiBDb250
ZXh0TWVudUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBBREQ5
NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi87IH07CisJCTA2NjhFMThCMEFERDk2MjQwMDQx
MjhFMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjY4RTE5MDBBREQ5
NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVu
dU1hYy5tbSAqLzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZDNzcy
QTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjZDNzcyRDBBQjYwM0QyMDAyMzhDQzQgLyog
RmlsZUNob29zZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gKi87
IH07CkBAIC0zNTg0LDEyICszNTg0LDEyIEBACiAJCUFCNENCNEVCMEI4QkRBM0QwMDlGNDBCMCAv
KiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBQjRDQjRFQTBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2Vs
ZWN0RWxlbWVudEN1c3RvbS5oICovOyB9OwogCQlBQjY3RDFBODA5N0YzQUUzMDBGOTM5MkUgLyog
UmVuZGVyVGV4dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9s
LmNwcCAqLzsgfTsKIAkJQUI2N0QxQTkwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250
cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3
RDFBNzA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuaCAqLzsgfTsKLQkJQUI3
MTcwODkwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNF
IC8qIFNlYXJjaFBvcHVwTWVudS5oICovOyB9OworCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0Ug
LyogU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUI3MTcw
QTAwQjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDlGMEIzMTE5M0IwMDE3MTIz
RSAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCUFCQUYyMjA4MEMwM0IxQzcwMEIw
QkNGMCAvKiBDaHJvbWVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQkFGMjIwNzBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tICovOyB9
OwogCQlBQkI1NDE5RTBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5QzBBQ0RERkU0
MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgKi87IH07CiAJCUFCQjU0MTlGMEFDRERGRTQw
MDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5RDBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJv
eC5oICovOyB9OwotCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3
NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IH07CisJCUFCQzEyODc3
MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQ
b3B1cE1lbnVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBQkRERkU3OTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzMw
QTVDNkU2RjAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmNwcCAqLzsgfTsKIAkJQUJEREZFN0Ew
QTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyogUmVu
ZGVyTWVudUxpc3QuaCAqLzsgfTsKIAkJQUJGRTdFMTIwRDMyRkFGNjAwNjZGNEQyIC8qIE1lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAgKi87IH07CkBAIC01MDEwLDYgKzUwMTAsNyBAQAogCQlEMjNDQTU1RDBBQjBFQUFFMDA1
MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNl
cHRpb24uaCAqLzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNl
cHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9Owog
CQlEMjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUx
MDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzlEMDBDOTExRkEyMjk3MDA2MDQx
RjIgLyogU2VsZWN0TWV0aG9kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDBDODExRkEyMjk3MDA2MDQxRjIgLyogU2VsZWN0TWV0aG9k
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovOyB9OwogCQlEQjIz
QzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpAQCAtMTA2ODEsNiArMTA2ODIs
NyBAQAogCQlEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNS
YW5nZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNSYW5nZUV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NB
NTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRDM5RDAwQzgxMUZBMjI5NzAwNjA0MUYyIC8qIFNlbGVjdE1ldGhvZENsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3RNZXRob2RDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMzc3LDYgKzEyMzc5LDcgQEAKIAkJCQlC
Q0QwRTBGNzBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovLAogCQkJCUJD
RDBFMEY4MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5oICovLAogCQkJCUJDRDBF
MEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKKwkJCQlEMzlE
MDBDODExRkEyMjk3MDA2MDQxRjIgLyogU2VsZWN0TWV0aG9kQ2xpZW50LmggKi8sCiAJCQkJMTRD
OUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLywKIAkJCQlGNTg3ODYzQTAy
REUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAx
RTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApAQCAtMTk4NTYsNiArMTk4NTksNyBA
QAogCQkJCTUxNjJDN0Y1MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjcwN0E5QTExRUY2Nzk0MDBBQ0RB
NjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUQz
OUQwMEM5MTFGQTIyOTcwMDYwNDFGMiAvKiBTZWxlY3RNZXRob2RDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5OTM4YmJjLi41OGM0OTg3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRXJp
YyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDgsNiArMTA5LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0
ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIFBhc3NSZWZQ
dHI8U2VsZWN0VUlDbGllbnQ+KCk7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoVUlD
bGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0
dXJuIFBhc3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+KCk7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAgdmlydHVhbCBib29sIHRh
YnNUb0xpbmtzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGM2NjkyNS4u
ZDlkMzBhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzE4LDYgKzMxOCwy
MSBAQCBib29sIENocm9tZTo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpCiAgICAgcmV0dXJu
IG1fY2xpZW50LT5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7CiB9CiAKK2Jvb2wgQ2hyb21l
OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIG1f
Y2xpZW50LT5zZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworfQorCitQYXNz
UmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBDaHJvbWU6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRl
U2VsZWN0VUlDbGllbnQoY2xpZW50KTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4g
Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KGNsaWVudCk7
Cit9CisKIEludFJlY3QgQ2hyb21lOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY2xpZW50LT53aW5kb3dSZXNpemVyUmVjdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDUzNzQ2OGEuLmI3
MmE1YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0LDYgKzI1LDcgQEAKICNpbmNsdWRlICJGaWxl
Q2hvb3Nlci5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiSG9zdFdp
bmRvdy5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC00NCw2ICs0Niw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAg
ICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3Ry
aW5nOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGNsYXNzIE5vdGlmaWNhdGlvblBy
ZXNlbnRlcjsKQEAgLTEyMiw2ICsxMjUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKICAgICAgICAg
Ym9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7CiAKKyAgICAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVu
dD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICAg
ICAgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgbW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlm
aWVyRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDc5NWIyNWMuLjhkYTEzY2EgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNyw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSFRNTFBh
cnNlclF1aXJrcy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJTY3JvbGxU
eXBlcy5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkBAIC01Myw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJ
bnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5nOwogICAgIGNsYXNzIFdpZGdldDsKIApAQCAt
MTI1LDYgKzEyOCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
dGFic1RvTGlua3MoKSBjb25zdCA9IDA7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgPSAwOworICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFVJQ2xpZW50
PiBjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisKICAg
ICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOwogCiAg
ICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIGIvV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmODIwYzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmgKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBzZWxlY3QgZWxlbWVudCBy
ZW5kZXJlciBpbiBXZWJDb3JlLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlbGVjdE1l
dGhvZENsaWVudF9oCisjZGVmaW5lIFNlbGVjdE1ldGhvZENsaWVudF9oCisKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdG9taWNT
dHJpbmc7CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBJbnRSZWN0OworCitjbGFzcyBTZWxlY3RV
SUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlbGVjdFVJQ2xpZW50PiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+U2VsZWN0VUlDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBzaG93KGNv
bnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGlkZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSA9IDA7Cit9OworCitjbGFzcyBT
ZWFyY2hVSUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlYXJjaFVJQ2xpZW50PiB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+U2VhcmNoVUlDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgU2VsZWN0
VUlDbGllbnQqIHNlbGVjdFVJQ2xpZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9
IDA7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAv
LyBTZWxlY3RNZXRob2RDbGllbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKaW5kZXggZDlkMjc0MC4uNTQ5
NjU3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2VsZWN0
TWV0aG9kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCkBAIC00MCwxMCArNDIsNiBAQCBjbGFzcyBOU1BvcFVwQnV0dG9u
Q2VsbDsKIHR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKIHR5cGVkZWYgc3RydWN0IEhEQ19f
KiBIREM7CiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9S
TShRVCkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKLX0K
ICNlbGlmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7CiB0
eXBlZGVmIHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07CkBAIC03MSw3ICs2OSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIFNjcm9sbGJhcjsK
IAotY2xhc3MgUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PgorY2xhc3Mg
UG9wdXBNZW51IDogcHVibGljIFNlbGVjdFVJQ2xpZW50CiAjaWYgUExBVEZPUk0oV0lOKQogICAg
ICAgICAgICAgICAgICwgcHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQKICNlbmRpZgpAQCAtODAsMjAg
Kzc4LDE2IEBAIGNsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVudT4K
ICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3Jl
YXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBN
ZW51KGNsaWVudCkpOyB9CisgICAgUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOwogICAgIH5Q
b3B1cE1lbnUoKTsKLSAgICAKLSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBD
bGllbnQgPSAwOyB9CiAKLSAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyos
IGludCBpbmRleCk7Ci0gICAgdm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21FbGVt
ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyos
IGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgp
OwogICAgIAogICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9w
b3B1cENsaWVudDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKTsKLQogI2lmIFBMQVRGT1JNKFdJTikKICAgICBTY3JvbGxiYXIqIHNjcm9sbGJhcigp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CiAKQEAgLTEzNCw5ICsxMjgsNiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7IH0KICAgICB2b2lkIHNldFNjcm9sbGJhckNh
cHR1cmluZ01vdXNlKGJvb2wgYikgeyBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlID0gYjsgfQog
I2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICBQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CiAg
ICAgCiBwcml2YXRlOgogICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKQEAgLTE0
Niw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9wdWxhdGUoKTsKIAogICAgIFJldGFp
blB0cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAg
IFF0QWJzdHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAv
LyBTY3JvbGxCYXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9sbGJh
ciopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKaW5kZXggNDI4NWNkZi4uOGUxMjllZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiwyMyArMjMsMjMgQEAKICNkZWZp
bmUgU2VhcmNoUG9wdXBNZW51X2gKIAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUg
IlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdG9taWNTdHJpbmc7CiAKLWNsYXNzIFNlYXJjaFBvcHVw
TWVudSA6IHB1YmxpYyBQb3B1cE1lbnUgeworY2xhc3MgU2VhcmNoUG9wdXBNZW51IDogcHVibGlj
IFNlYXJjaFVJQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWFyY2hQ
b3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IFNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsgfQotCi0gICAgdm9pZCBzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpOwotICAgIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLQotICAgIGJvb2wgZW5h
YmxlZCgpOworICAgIFNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB2aXJ0
dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CiAgICAgCiBwcml2YXRlOgotICAgIFNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICBQb3B1cE1lbnUgbV9wb3B1cDsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5j
cHAKaW5kZXggNDcwMWE3NS4uMGQyODE2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMzQxLDYg
KzEzNDIsMTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICBoaWRlKCk7CiB9CiAKK3Zv
aWQgUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0g
MDsKK30KKwogLy8gVGhlIE1hYyBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24gZXh0
ZXJuYWwgY29udHJvbCAoYSBDb2NvYSBjb250cm9sKQogLy8gdG8gZGlzcGxheSwgaGFuZGxlIHRo
ZSBpbnB1dCB0cmFja2luZyBhbmQgbWVudSBpdGVtIHNlbGVjdGlvbiBmb3IgdGhlIHBvcHVwLgog
Ly8gV2luZG93cyBhbmQgTGludXggQ2hyb21pdW0gbGV0IG91ciBXZWJLaXQgcG9ydCBoYW5kbGUg
dGhlIGRpc3BsYXksIHdoaWxlCkBAIC0xMzY3LDkgKzEzNzMsNCBAQCB2b2lkIFBvcHVwTWVudTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIHAucG9wdXAtPmxpc3RCb3goKS0+dXBkYXRlRnJvbUVs
ZW1lbnQoKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkgCi17IAotICAgIHJldHVybiBmYWxzZTsgCi19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVD
aHJvbWl1bS5jcHAKaW5kZXggODliZmRkZC4uNjgzZDNiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0zNywxMCArMzgsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0g
ICAgOiBQb3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKK1Nl
bGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICBy
ZXR1cm4gJm1fcG9wdXA7Cit9CisKIGJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKIHsK
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1
cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcAppbmRl
eCA5ZGM2OTg2Li44Yzg5OGMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1
cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAK
QEAgLTMsNiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBO
b2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVj
dHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDQsNiArNDUsMTEg
QEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICBoaWRlKCk7CiB9CiAKK3ZvaWQgUG9wdXBN
ZW51UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQor
CiB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZp
ZXcsIGludCBpbmRleCkKIHsKICAgICBBU1NFUlQobV9wb3B1cENsaWVudCk7CkBAIC02OCw5ICs3
NCw0IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgY2xpZW50KCkt
PnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQ
b3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9w
dXBNZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5j
cHAKaW5kZXggZDE4MTc0Zi4uOWM1ZWIyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAw
OCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqICBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwpAQCAtMjYsMTEgKzI3LDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNlYXJj
aFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAg
IDogUG9wdXBNZW51KGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnU6OnNlbGVj
dFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIHZvaWQgU2VhcmNoUG9w
dXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcAppbmRleCBiZjhjZmI0Li4yMWYzZDZkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1BvcHVwTWVudUd0ay5jcHAKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KICAqIENvcHly
aWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtNDcsNiArNDgsMTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICB9CiB9
CiAKK3ZvaWQgUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xp
ZW50ID0gMDsKK30KKwogdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwg
RnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKQEAg
LTEyMSwxMSArMTI3LDYgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAg
ICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkpOwog
fQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewot
ICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIFBvcHVwTWVudTo6bWVudUl0ZW1BY3RpdmF0ZWQo
R3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudSogdGhhdCkKIHsKICAgICBBU1NFUlQodGhhdC0+
Y2xpZW50KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBN
ZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAK
aW5kZXggZmJhYTUyNy4uYzJiNjIwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2VhcmNoUG9wdXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQ
b3B1cE1lbnVHdGsuY3BwCkBAIC0xLDQgKzEsNiBAQAogLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgogICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCiAgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0yMiwxMSArMjQsMTcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorU2VsZWN0VUlDbGllbnQqIFNlYXJjaFBv
cHVwTWVudTo6c2VsZWN0VUlDbGllbnQoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwor
CiB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCmluZGV4IDZjMDY3YjkuLjIyNzMwMDQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KQEAgLTQ5LDYgKzQ5LDExIEBAIFBvcHVw
TWVudTo6flBvcHVwTWVudSgpCiAgICAgICAgIFttX3BvcHVwLmdldCgpIHNldENvbnRyb2xWaWV3
Om5pbF07CiB9CiAKK3ZvaWQgUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBt
X3BvcHVwQ2xpZW50ID0gMDsKK30KKwogdm9pZCBQb3B1cE1lbnU6OmNsZWFyKCkKIHsKICAgICBp
ZiAobV9wb3B1cCkKQEAgLTIwMyw5ICsyMDgsNCBAQCB2b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogewogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KaW5kZXggMjYyNzM0ZC4uZjdjMjZkYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQpAQCAtMjUsMTAgKzI1LDE1
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKKyAg
ICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9wdXBN
ZW51OjpzZWxlY3RVSUNsaWVudCgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCiBzdGF0
aWMgTlNTdHJpbmcqIGF1dG9zYXZlS2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICByZXR1
cm4gW0AiY29tLmFwcGxlLldlYktpdC5zZWFyY2hGaWVsZDoiIHN0cmluZ0J5QXBwZW5kaW5nU3Ry
aW5nOm5hbWVdOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAppbmRleCAzMTViODkxLi43
MjZhOGVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcApAQCAtMjQsNyArMjQsNyBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnVRdC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50UXQuaCIKQEAgLTM1LDE4ICszNSwyMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9w
dXBNZW51UXQ6OlBvcHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9w
b3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3BvcHVwKDApCiB7CiB9CiAKLVBvcHVwTWVudTo6
flBvcHVwTWVudSgpCitQb3B1cE1lbnVRdDo6flBvcHVwTWVudVF0KCkKIHsKICAgICBkZWxldGUg
bV9wb3B1cDsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwg
RnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudVF0OjpkaXNjb25uZWN0
Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVR
dDo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkK
IHsKICAgICBDaHJvbWVDbGllbnRRdCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21l
Q2xpZW50UXQqPigKICAgICAgICAgdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xp
ZW50KCkpOwpAQCAtNjcsMTkgKzcyLDE0IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IElu
dFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogCiB9CiAKLXZvaWQgUG9w
dXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OmhpZGUoKQogewogICAgIG1fcG9wdXAt
PmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKLXsKLSAg
ICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgo
KSk7Ci19Ci0KLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
Cit2b2lkIFBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIG1fcG9wdXBDbGllbnQtPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5z
ZWxlY3RlZEluZGV4KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1BvcHVwTWVudVF0LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBjOWEzZQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVRdF9oCisjZGVmaW5lIFBvcHVwTWVudVF0X2gK
KworI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKK2NsYXNzIFNj
cm9sbGJhcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51UXQgOiBw
dWJsaWMgU2VsZWN0VUlDbGllbnQgeworcHVibGljOgorICAgIFBvcHVwTWVudVF0KFBvcHVwTWVu
dUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVRdCgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3co
Y29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lk
IGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCisvLyAgICBQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBQ
b3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBt
X3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51UXRfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKaW5kZXggZGFkNDk5Ny4uNWY2ZjYxOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCkBAIC02Myw3ICs2Myw3IEBAIHB1
YmxpYzoKICAgICBRRm9udCBmb250KCkgeyByZXR1cm4gbV9wb3B1cENsaWVudC0+bWVudVN0eWxl
KCkuZm9udCgpLmZvbnQoKTsgfQogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQb3B1cE1l
bnU7CisgICAgZnJpZW5kIGNsYXNzIFBvcHVwTWVudVF0OwogICAgIFBvcHVwTWVudUNsaWVudCog
bV9wb3B1cENsaWVudDsKICAgICBRV2ViUGFnZUNsaWVudCogbV9wYWdlQ2xpZW50OwogICAgIGlu
dCBtX2N1cnJlbnRJbmRleDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5j
cHAKaW5kZXggMTg3YTVkZS4uYzllMWViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQ
b3B1cE1lbnVRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IEMgMjAwNiBa
YWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0xOCwyNiArMTksMjkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLSNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNs
dWRlICJTZWFyY2hQb3B1cE1lbnVRdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJj
aFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAg
IDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVR
dChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQoreworfQor
CitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9wdXBNZW51UXQ6OnNlbGVjdFVJQ2xpZW50KCkKIHsK
KyAgICByZXR1cm4gJm1fcG9wdXA7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQor
dm9pZCBTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudVF0OjplbmFibGVkKCkKIHsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9w
dXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTMwMTNkCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVRdF9oCisjZGVm
aW5lIFNlYXJjaFBvcHVwTWVudVF0X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCisjaW5j
bHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVRdCA6IHB1YmxpYyBT
ZWFyY2hVSUNsaWVudCB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51UXQoUG9wdXBNZW51
Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVudCgp
OworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAg
Citwcml2YXRlOgorICAgIFBvcHVwTWVudVF0IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAv
LyBTZWFyY2hQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApp
bmRleCA0NDE0MWYyLi5kYmZhNDEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0y
MDA5IFRvcmNoIE1vYmlsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0xMTksNiArMTIwLDExIEBAIExQQ1RTVFIgUG9wdXBNZW51Ojpwb3B1cENsYXNzTmFtZSgpCiAg
ICAgcmV0dXJuIGtQb3B1cFdpbmRvd0NsYXNzTmFtZTsKIH0KIAordm9pZCBQb3B1cE1lbnU6OmRp
c2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCiB2b2lkIFBv
cHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKIHsKICAgICBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUociwgdmlldyk7CkBAIC01NDcsMTEg
KzU1Myw2IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIDo6
VXBkYXRlV2luZG93KG1fcG9wdXApOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAgcmV0dXJuIHRydWU7IAotfQotCiBjb25zdCBp
bnQgc2VwYXJhdG9yUGFkZGluZyA9IDQ7CiBjb25zdCBpbnQgc2VwYXJhdG9ySGVpZ2h0ID0gMTsK
IHZvaWQgUG9wdXBNZW51OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRj
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKaW5kZXggZjI3
MDliYi4uNDFhNzY5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9w
dXBNZW51V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVX
aW4uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiwxMCArMjcs
MTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQor
ICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1
cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIGJv
b2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxNzc5MjFjLi4xNzZmNzNkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyTWVudUxpc3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTMzLDExICszNCwxMSBAQAogI2luY2x1
ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIKICNpbmNs
dWRlICJPcHRpb25Hcm91cEVsZW1lbnQuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNs
dWRlICJSZW5kZXJCUi5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNl
bGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPG1hdGguaD4KIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKQEAgLTg4LDggKzg5LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJT
dHlsZSgpCiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3Ro
KHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7CiAg
ICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLT5w
b3B1cEludGVybmFsUGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxv
Y2stPnN0eWxlKCktPnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJu
YWxQYWRkaW5nQm90dG9tKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgICAgICAKLSAgICBpZiAoUG9w
dXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CisKKyAgICBpZiAoZG9j
dW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKSkgewogICAgICAgICAvLyBJdGVtcyBpbiB0aGUgcG9wdXAgd2lsbCBub3QgcmVzcGVj
dCB0aGUgQ1NTIHRleHQtYWxpZ24gYW5kIGRpcmVjdGlvbiBwcm9wZXJ0aWVzLAogICAgICAgICAv
LyBzbyB3ZSBtdXN0IGFkanVzdCBvdXIgb3duIHN0eWxlIHRvIG1hdGNoLgogICAgICAgICBtX2lu
bmVyQmxvY2stPnN0eWxlKCktPnNldFRleHRBbGlnbihMRUZUKTsKQEAgLTI3OCw3ICsyNzksNyBA
QCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUgc2hv
d1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygpOwog
ICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IFBvcHVwTWVudTo6Y3JlYXRlKHRo
aXMpOworICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3Jl
YXRlU2VsZWN0VUlDbGllbnQodGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9T
ZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3BvcHVw
SXNWaXNpYmxlID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggZDcy
ZTFhOS4uM2YwMWUzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zNSw4ICsz
NSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9wdXBNZW51OwogY2xhc3Mg
UmVuZGVyVGV4dDsKK2NsYXNzIFNlbGVjdFVJQ2xpZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJU1RC
T1hfUkVOREVSSU5HKQogY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxleGli
bGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CkBAIC0xMzEsNyArMTMxLDcgQEAg
cHJpdmF0ZToKIAogICAgIGludCBtX2xhc3RTZWxlY3RlZEluZGV4OwogCi0gICAgUmVmUHRyPFBv
cHVwTWVudT4gbV9wb3B1cDsKKyAgICBSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IG1fcG9wdXA7CiAg
ICAgYm9vbCBtX3BvcHVwSXNWaXNpYmxlOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZDBhYjEwNy4uYzVlYTliZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKSAKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzgs
NyArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Ny
b2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnUuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKICNpbmNsdWRlICJTZWxl
Y3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaW1w
bGVGb250RGF0YS5oIgpAQCAtNjIsNyArNjQsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNlaAog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
KCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVwLT5k
aXNjb25uZWN0Q2xpZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50
KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IDA7CiAgICAg
fQogIApAQCAtMTA3LDcgKzEwOSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
OjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYXV0
b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBv
cHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9w
dXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVudCh0
aGlzKTsKIAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3Jl
Y2VudFNlYXJjaGVzKTsKIH0KQEAgLTEyNSw3ICsxMjcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFt
X3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51Ojpj
cmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCkt
PmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVudCh0aGlzKTsKIAogICAgIGlmICghbV9zZWFy
Y2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMTQgKzE0NywxNCBA
QCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAg
bV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMp
OwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnNl
bGVjdFVJQ2xpZW50KCktPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRvY3Vt
ZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6aGlkZVBvcHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpOwog
ICAgIGlmIChtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwLT5oaWRlKCk7Cisg
ICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPmhpZGUoKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKQEAgLTY4
NSw3ICs2ODcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogICAgIH0KIAogICAgIGlmIChtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKQotICAg
ICAgICBtX3NlYXJjaFBvcHVwLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICBtX3NlYXJj
aFBvcHVwLT5zZWxlY3RVSUNsaWVudCgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2b2lk
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBp
bnQgZW5kKQpAQCAtODgzLDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVuCiAgICAg
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICAg
ICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1fc2Vh
cmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1
cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KHRoaXMp
OwogICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1l
LCBtX3JlY2VudFNlYXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA5MmVjYWRk
Li5jYjJhY2JjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3
LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0z
Miw3ICszMyw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OwogY2xh
c3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVu
dTsKK2NsYXNzIFNlYXJjaFVJQ2xpZW50OwogY2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFz
cyBUZXh0Q29udHJvbElubmVyRWxlbWVudDsKIApAQCAtMTU0LDcgKzE1NSw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIFRpbWVyPFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4gbV9zZWFy
Y2hFdmVudFRpbWVyOwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IG1fc2VhcmNoUG9wdXA7
CisgICAgUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBtX3NlYXJjaFBvcHVwOwogICAgIFZlY3RvcjxT
dHJpbmc+IG1fcmVjZW50U2VhcmNoZXM7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmM2IzMWFlLi5h
MjA4MWQzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVpeiBB
Z29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4g
cHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNzZXMg
U2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1lbnVM
aXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBvZiBj
bGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1lbnUg
bm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBpbmhl
cml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2FzIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlD
bGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2VzIG9m
IGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5ldwor
ICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBhbmQg
U2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0
ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisK
IDIwMTAtMDctMjMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGQ0M2Q4OGEuLjdlYmExMDEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01
NCw4ICs1NSwxMCBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25Q
cmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5o
IgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uU2VydmljZS5oIgogI2lmIFVTRShWOCkKICNpbmNsdWRlICJWOFByb3h5LmgiCkBAIC03
NjUsNCArNzY4LDIwIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZXhpdEZ1bGxzY3JlZW5Gb3JO
b2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmV4
aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJOb2RlKG5vZGUpKTsKIH0KIAorYm9vbCBDaHJvbWVDbGll
bnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBDaHJv
bWVDbGllbnRJbXBsOjpjcmVhdGVTZWxlY3RVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvcmU6OlBv
cHVwTWVudShjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVu
dD4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGU4MjQzODEuLjIz
ZWE5YmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTMyLDYgKzMzLDkgQEAKICNkZWZpbmUgQ2hyb21lQ2xpZW50SW1wbF9oCiAKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnRDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgor
I2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgorCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7CkBAIC0xNjUsNiArMTY5LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJzb3JJbmZvJiBjdXJzb3IpOwogICAgIHZv
aWQgc2V0Q3Vyc29yRm9yUGx1Z2luKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1cnNvcik7CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVj
dFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCBn
ZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5m
byopOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IGY2NGJiZWUuLjg1ODVkZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAt
MDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJl
ZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmly
dHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBi
eSBSZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
IGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAg
ICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQ
b3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2
ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVt
ZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQ
b3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6
OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTAtMDctMjMgIEx1Y2FzIERlIE1h
cmNoaSAgPGx1Y2FzLmRlbWFyY2hpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGZmYmQ2NDIuLjBmOGQxNjIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTUsNiArNSw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoKICAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRl
LmgiCkBAIC01MTMsNCArNTE1LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpkaWRSZWNlaXZl
Vmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyCiAgICAgZXdr
X3ZpZXdfdmlld3BvcnRfc2V0KG1fdmlldywgYXJndW1lbnRzLndpZHRoLCBhcmd1bWVudHMuaGVp
Z2h0LCBhcmd1bWVudHMuaW5pdGlhbFNjYWxlLCBhcmd1bWVudHMubWluaW11bVNjYWxlLCBhcmd1
bWVudHMubWF4aW11bVNjYWxlLCBhcmd1bWVudHMudXNlclNjYWxhYmxlKTsKIH0KIAorYm9vbCBD
aHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gQ2hyb21l
Q2xpZW50RWZsOjpjcmVhdGVTZWxlY3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKTsKK30K
KworUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWFy
Y2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBiL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggY2U4YWJkMS4uNjEzOGUw
NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0z
LDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEg
ZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVk
ZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEzNyw2ICsxMzgsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhG
cmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMpIGNvbnN0Owog
CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNs
aWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Vh
cmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0
OworCiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKICAgICBLVVJMIG1faG92ZXJlZExpbmtVUkw7
CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCA4MDNiZjEyLi40NGUyMGY5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA3
LTIzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSByZWZh
Y3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIE5ldyBwdXJlIHZpcnR1
YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkg
UmVuZGVyTWVudUxpc3QKKyAgICAgICAgYW5kIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSBp
bnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisgICAgICAg
IFBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoUG9w
dXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCisKKyAgICAgICAgQ2hyb21lIGNs
aWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFNlbGVjdFVJQ2xpZW50IGFu
ZCBTZWFyY2hVSUNsaWVudCBpbnN0YW5jZXMuCisgICAgICAgIENocm9tZUNsaWVudCBkZXJpdmVk
IGNsYXNzZXMgb2YgY29yZSBwbGF0Zm9ybXMgaGF2ZSBiZWVuIG1vZGlmaWVkIHRvIGltcGxlbWVu
dCB0aGUgbmV3CisgICAgICAgIG1ldGhvZHMgYW5kIHRvIHJldHVybiBpbnN0YW5jZXMgb2YgUG9w
dXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggODg0NDBiYS4uODNhNWQ2MCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAt
NCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYgKzMyLDggQEAKICNpbmNsdWRlICJHdGtWZXJz
aW9uaW5nLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRl
ICJLVVJMLmgiCkBAIC02MTYsNCArNjE5LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpjYW5jZWxH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqIGZyCiAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVj
aXNpb24tY2FuY2VsbGVkIiwgd2ViRnJhbWUpOwogfQogCitib29sIENocm9tZUNsaWVudDo6c2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiB0cnVlOwor
fQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkp
OworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
KGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaAppbmRleCBjZTVjNWE3Li5iMjAxNmE2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMyw5IEBACiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQu
aCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YlZpZXcgV2ViS2l0V2ViVmlldzsKIApAQCAtMTIyLDYgKzEyNiwxMCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogCisgICAgICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJ
Q2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLVVJMIG1faG92
ZXJlZExpbmtVUkw7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDdiZDZiNDcuLjVjNTE5M2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBN
ZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1
cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUg
dXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4K
KyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBT
ZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBD
aHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlD
bGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50
IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8g
aW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNl
cyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJ
Q2xpZW50KToKKwogMjAxMC0wNy0yMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzA3ZDA4MC4uNWYzZDNjOCAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yOSw2ICsyOSw4
IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvQ2hyb21lQ2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZvY3VzRGlyZWN0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9TZWxlY3RNZXRob2RDbGllbnQuaD4KICNpbXBvcnQgPHd0Zi9Gb3J3
YXJkLmg+CiAKIEBjbGFzcyBXZWJWaWV3OwpAQCAtMTY3LDYgKzE2OSwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFy
Y2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggZWI1NjI0MC4u
NTZkZjZlMiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KQEAgLTYwLDkgKzYwLDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ljb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5o
PgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTcyNCw2ICs3MjYsMjEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmZvcm1EaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAg
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1
ck5vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CiB9CiAKK2Jv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJ
Q2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
YXJjaFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOworfQorCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggMzIyOTIzNC4uMGJjNDJkMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1
aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5n
IGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFz
c2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJN
ZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQg
b2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBN
ZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUg
aW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xpZW50IHdh
cyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJj
aFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUg
YW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRRdDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50UXQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oOgorCiAyMDEwLTA3LTIzICBEYXZpZCBCb2RkaWUgIDxkYm9kZGllQHRy
b2xsdGVjaC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCAyYzY0YTc4Li4w
NjEyNzE0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAK
QEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHph
Y2tAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCkBAIC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIlBh
Z2VDbGllbnRRdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCiAjaWYgZGVmaW5lZChRX1dT
X01BRU1PXzUpCiAjaW5jbHVkZSAiUXRNYWVtb1dlYlBvcHVwLmgiCiAjZWxzZQpAQCAtNTIsNiAr
NTQsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJT
Y3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCkBAIC02NDQsNCArNjQ3LDE5IEBAIHZvaWQgQ2hyb21l
Q2xpZW50UXQ6OmRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0
IFZpZXdwb3J0QXJnCiAgICAgZW1pdCBtX3dlYlBhZ2UtPnZpZXdwb3J0Q2hhbmdlUmVxdWVzdGVk
KGhpbnRzKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxT
ZWxlY3RVSUNsaWVudD4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51UXQoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+IENocm9t
ZUNsaWVudFF0OjpjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVF0KGNsaWVu
dCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRhMjUuLmJlMDA4NDUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
ICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTEwLDYgKzExMSwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAor
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxl
Y3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25z
dCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IGNlYzQxYzcuLjJjYjZhOGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1
aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5n
IGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFz
c2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJN
ZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQg
b2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBN
ZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUg
aW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xpZW50IHdh
cyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJj
aFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUg
YW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Vs
ZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNs
aWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIw
MTAtMDctMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA3MzUzMmE2Li42ZTM3OGRmIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01NSw5ICs1NiwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VhcmNoUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgog
I3ByYWdtYSB3YXJuaW5nKHBvcCkKIAorCiAjaW5jbHVkZSA8dGNoYXIuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC04NjgsMyArODcyLDE4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopCiAKICNlbmRpZgogCitib29sIFdlYkNocm9t
ZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJl
dHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9w
dXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNzg0NWE5Li41NmYwYWExIDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI3LDcgKzI4LDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1
c0RpcmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0TWV0
aG9kQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogCkBAIC0xMTIsNiArMTE1LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNsaWVudChXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OworCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcm
KTsKICNlbmRpZgotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62484</attachid>
            <date>2010-07-23 20:09:35 -0700</date>
            <delta_ts>2010-07-26 07:19:34 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>81134</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA2YTgxYTFlMWE2ZGY0N2E0OTljN2QwZjgzN2RiMTQ4MGY0ZTU3NzExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjMgSnVsIDIwMTAgMTQ6NTE6NDcgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFy
Y2hQb3B1cE1lbnUuClBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCgpDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KCldlYkNvcmU6CgpOZXcgSW50ZXJmYWNlcyBTZWxlY3RNZXRob2RDbGllbnQg
YW5kIFNlYXJjaE1ldGhvZENsaWVudAoKKiBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50Ojp+U2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6
U2VhcmNoVUlDbGllbnQ6On5TZWFyY2hVSUNsaWVudCk6CgpSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGNoYW5nZWQgdG8gdXNlIG5ldyBpbnRlcmZhY2VzIGFu
ZCB0byBvYnRhaW4KaW5zdGFuY2VzIG9mIHRoZW0gZnJvbSBDaHJvbWU6CgoqIHJlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJT
dHlsZSk6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaDoKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNob3dQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21F
bGVtZW50KToKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFu
Z2VkKToKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQgZnJvbSBTZWxlY3RNZXRo
b2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudApyZXNwZWN0aXZlbHkuIENocm9tZSBhbmQg
Q2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBpbnN0YW5jZXMgb2YgdGhvc2UgY2xhc3Nl
cy4KCiogcGxhdGZvcm0vUG9wdXBNZW51Lmg6CiogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6
CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVu
dCk6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpRdCBp
bXBsZW1lbnRhdGlvbiBpZiBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSBmaWxlClBvcHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaC4g
RnVydGhlciBRdCBjb2RlIGNsZWFuaW5nIGFyZSBjb21pbmcgaW4gZnV0dXJlIHBhdGNoZXMuCgoq
IFdlYkNvcmUucHJvOgoqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlBv
cHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuaDogQWRkZWQuCiogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CiogcGxh
dGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxl
Y3RVSUNsaWVudCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJj
aGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgoqIHBsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0Lmg6IEFkZGVkLgoKbWFjCgoqIFdlYkNvcmUuZXhwLmluOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1t
OgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLm1tOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6Cgpj
aHJvbWl1bQoKKiBXZWJDb3JlLmd5cGk6CiogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6
OnNlbGVjdFVJQ2xpZW50KToKCmd0awoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6
CiogcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNl
bGVjdFVJQ2xpZW50KToKCndpbgoKKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKiBw
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29u
bmVjdENsaWVudCk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHA6CihXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKCmVmbAoKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51
RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dTo6U2VhcmNoUG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgoo
V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6Ciogc3JjL0No
cm9tZUNsaWVudEltcGwuaDoKCldlYktpdC9ndGs6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CgpXZWJLaXQvbWFjOgoKKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW06CihXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJj
aFVJQ2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgoKV2ViS2l0L3dp
bjoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYkNocm9tZUNsaWVu
dDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJ
Q2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMjEgKysrKysr
KysrKysrKysrKysrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKwogV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKy0KIFdlYkNv
cmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBX
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg
KwogV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oICAgICAgICAgICAgICAgICAgfCAg
IDU2ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDI3ICsrLS0tCiBXZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5o
ICAgICAgICAgICAgICAgICB8ICAgMTcgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5jcHAgICAgfCAgIDExICstCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0v
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwICB8ICAgIDggKy0KIFdlYkNvcmUvcGxhdGZvcm0v
ZWZsL1BvcHVwTWVudUVmbC5jcHAgICAgICAgICAgICAgIHwgICAxMSArLQogV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcCAgICAgICAgfCAgICA4ICstCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwICAgICAgICAgICAgICB8ICAgMTEgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAgICAgICAgIHwgICAxMCAr
Ky0KIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSAgICAgICAgICAgICAgIHwg
ICAxMCArLQogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tICAgICAg
ICAgfCAgICA3ICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCAgICAgICAg
ICAgICAgICB8ICAgMjQgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oICAg
ICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJz
dHJhY3RXZWJQb3B1cC5oICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQv
U2VhcmNoUG9wdXBNZW51UXQuY3BwICAgICAgICAgIHwgICAyMCArKy0tCiBXZWJDb3JlL3BsYXRm
b3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmggICAgICAgICAgICB8ICAgNDYgKysrKysrKysKIFdl
YkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAgICAgICAgICAgICAgIHwgICAxMSAr
LQogV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCAgICAgICAgfCAg
ICA4ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgICAgICAgICAgICAg
ICB8ICAgIDkgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAgICAg
ICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcCAgfCAgIDE4ICsrLS0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oICAgIHwgICAgNSArLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAgICAgICAgICAgIHwgICAxOSArKysKIFdlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCAgICAgIHwgICAxNyAr
KysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggICAgICAgIHwg
ICAgNSArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjEgKysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwICAgICAgfCAgIDE4ICsrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCAgICAgICAgfCAgICA2ICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAxNyArKysKIFdlYktpdC9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAgMTggKysrCiBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDUg
KwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIxICsrKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAg
ICAgIHwgICAxOSArKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggICAgICAgIHwgICAgNyArCiA1MSBmaWxlcyBjaGFuZ2VkLCA3MjUgaW5zZXJ0aW9ucygrKSwg
OTggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wYWdlL1NlbGVjdE1l
dGhvZENsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQ
b3B1cE1lbnVRdC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZDNiNThkLi5mZjNkYTE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNCBAQAorMjAxMC0wNy0y
MyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0
b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFs
IGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJl
bmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5z
dGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQ
b3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVw
TWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGll
bnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQg
U2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBj
bGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQg
dGhlIG5ldworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVw
TWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgIE5ldyBJbnRlcmZhY2VzIFNlbGVj
dE1ldGhvZENsaWVudCBhbmQgU2VhcmNoTWV0aG9kQ2xpZW50CisKKyAgICAgICAgKiBwYWdlL1Nl
bGVjdE1ldGhvZENsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFVJQ2xp
ZW50Ojp+U2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ6
On5TZWFyY2hVSUNsaWVudCk6CisKKyAgICAgICAgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBjaGFuZ2VkIHRvIHVzZSBuZXcgaW50ZXJmYWNlcyBhbmQgdG8g
b2J0YWluCisgICAgICAgIGluc3RhbmNlcyBvZiB0aGVtIGZyb20gQ2hyb21lOgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
bnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6YWRkU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKworCisgICAg
ICAgIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGNoYW5nZWQgdG8gaW5oZXJpdCBmcm9t
IFNlbGVjdE1ldGhvZENsaWVudCBhbmQgU2VhcmNoTWV0aG9kQ2xpZW50CisgICAgICAgIHJlc3Bl
Y3RpdmVseS4gQ2hyb21lIGFuZCBDaHJvbWVDbGllbnQgY2hhbmdlZCB0byBwcm92aWRlIGluc3Rh
bmNlcyBvZiB0aG9zZSBjbGFzc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Lmg6
CisgICAgICAgICogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgICogcGFnZS9D
aHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwp
OgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hV
SUNsaWVudCk6CisKKyAgICAgICAgUXQgaW1wbGVtZW50YXRpb24gaWYgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gZmlsZQorICAgICAgICBQ
b3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmguIEZ1cnRoZXIgUXQgY29kZSBjbGVhbmlu
ZyBhcmUgY29taW5nIGluIGZ1dHVyZSBwYXRjaGVzLgorCisgICAgICAgICogV2ViQ29yZS5wcm86
CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51UXQ6OlBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVF0Ojp+UG9wdXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OmRpc2Nv
bm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51UXQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9w
dXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6U2VhcmNoUG9wdXBNZW51UXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OnNlbGVjdFVJQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICog
cGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgbWFjCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQpOgorCisgICAgICAgIGNocm9taXVtCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0
Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVw
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50
KToKKworICAgICAgICBndGsKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgorCisgICAgICAgIHdpbgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6CisKKyAgICAgICAgZWZsCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9w
dXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgorCisKIDIwMTAtMDctMjMgIFJhZmFlbCBBbnRvZ25vbGxpICA8YW50b2dub2xsaUBw
cm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggN2E1MTNlMi4uMDQzM2M5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xODIyLDYgKzE4MjIsNyBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgXAogCVdl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oIFwKIAlXZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW5IYXNoLmggXAorCVdlYkNvcmUvcGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaCBcCiAJV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggXAogCVdlYkNv
cmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzg5OWJmNS4uZTdhMjRh
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0xMzQsNiArMTM0LDcgQEAgX19aNGNvcmVQMjJET01DU1NTdHlsZURlY2xh
cmF0aW9uCiBfX1o0Y29yZVA3RE9NTm9kZQogX19aNGNvcmVQOERPTVJhbmdlCiBfX1pOM0pTQzhC
aW5kaW5nczhJbnN0YW5jZTE2bmV3UnVudGltZU9iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKK19fWk43
V2ViQ29yZTlQb3B1cE1lbnVDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUx
ME1vdXNlRXZlbnRDMUVSS05TXzEyQXRvbWljU3RyaW5nRWJiTjNXVEYxMFBhc3NSZWZQdHJJTlNf
OURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVfSU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlD
bGlwYm9hcmRFRUViCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxi
YXJzRWIKIF9fWk43V2ViQ29yZTEwU3RyaW5nSW1wbDE0Y3JlYXRlQ0ZTdHJpbmdFdgpAQCAtMzUy
LDYgKzM1Myw3IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0RDFFdgogX19aTjdXZWJD
b3JlMTVKU0RPTVdpbmRvd0Jhc2UxOGNvbW1vbkpTR2xvYmFsRGF0YUV2CiBfX1pON1dlYkNvcmUx
NVNjcm9sbEFsaWdubWVudDE3YWxpZ25DZW50ZXJBbHdheXNFCiBfX1pON1dlYkNvcmUxNVNjcm9s
bEFsaWdubWVudDE5YWxpZ25Ub0VkZ2VJZk5lZWRlZEUKK19fWk43V2ViQ29yZTE1U2VhcmNoUG9w
dXBNZW51QzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVu
Y2F0b3IxM3JpZ2h0VHJ1bmNhdGVFUktOU182U3RyaW5nRWZSS05TXzRGb250RWIKIF9fWk43V2Vi
Q29yZTE1U3RyaW5nVHJ1bmNhdG9yMTRjZW50ZXJUcnVuY2F0ZUVSS05TXzZTdHJpbmdFZlJLTlNf
NEZvbnRFYgogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3I1d2lkdGhFUktOU182U3RyaW5n
RVJLTlNfNEZvbnRFYgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBmNTNmNDU2Li43ZjIyNDIyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjAzMiw2ICsyMDMy
LDcgQEAKICAgICAgICAgICAgICdwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCcsCiAgICAgICAgICAg
ICAncGFnZS9TZWN1cml0eU9yaWdpbi5oJywKICAgICAgICAgICAgICdwYWdlL1NlY3VyaXR5T3Jp
Z2luSGFzaC5oJywKKyAgICAgICAgICAgICdwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oJywKICAg
ICAgICAgICAgICdwYWdlL1NldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9TZXR0aW5n
cy5oJywKICAgICAgICAgICAgICdwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgnLApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMDkwNTQy
Mi4uNWRlYzZmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3Jl
L1dlYkNvcmUucHJvCkBAIC0xNjA4LDYgKzE2MDgsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdl
L1ByaW50Q29udGV4dC5oIFwKICAgICBwYWdlL1NjcmVlbi5oIFwKICAgICBwYWdlL1NlY3VyaXR5
T3JpZ2luLmggXAorICAgIHBhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmggXAogICAgIHBhZ2UvU2V0
dGluZ3MuaCBcCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oIFwKICAgICBwYWdlL1NwZWVj
aElucHV0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNDQ3OTE4
Mi4uMDhlYTNmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjQ3
Myw2ICsyMjQ3MywxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXFNlbGVjdE1ldGhvZENsaWVudC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNldHRpbmdzLmNwcCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGFiODhkYTMuLmM3MmRiYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC00Miw3ICs0Miw3IEBACiAJCTA2NUFENEY1MEIwQzJFREEwMDVB
MkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjIwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDY1QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMzBC
MEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMDY1
QUQ0RjcwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjQwQjBDMkVEQTAw
NUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA2NjhFMThCMEFERDk2MjQwMDQxMjhFMCAvKiBQ
b3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJMDY2OEUx
OEIwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVw
TWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA2NjhFMTkwMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4RTBBREQ5NjQwMDA0MTI4
RTAgLyogUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQkwNjZDNzcyQjBBQjYwM0I3MDAyMzhDQzQg
LyogRmlsZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NkM3NzJEMEFCNjAz
RDIwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJDMEFCNjAzRDIwMDIzOENDNCAvKiBGaWxlQ2hv
b3Nlck1hYy5tbSAqLzsgfTsKQEAgLTM1ODQsMTIgKzM1ODQsMTIgQEAKIAkJQUI0Q0I0RUIwQjhC
REEzRDAwOUY0MEIwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNENCNEVBMEI4QkRBM0QwMDlGNDBC
MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggKi87IH07CiAJCUFCNjdEMUE4MDk3RjNB
RTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVu
ZGVyVGV4dENvbnRyb2wuY3BwICovOyB9OwogCQlBQjY3RDFBOTA5N0YzQUUzMDBGOTM5MkUgLyog
UmVuZGVyVGV4dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFCNjdEMUE3MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5o
ICovOyB9OwotCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA4ODBC
MzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi87IH07CisJCUFCNzE3MDg5MEIz
MTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFy
Y2hQb3B1cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBQjcxNzBBMDBCMzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwOUYw
QjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSAqLzsgfTsKIAkJQUJBRjIy
MDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQUYyMjA3MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJv
bWVNYWMubW0gKi87IH07CiAJCUFCQjU0MTlFMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0
Qm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFC
QjU0MTlDMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmNwcCAqLzsgfTsKIAkJQUJC
NTQxOUYwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0MTlEMEFDRERGRTQwMDI4MjBFQiAv
KiBSZW5kZXJMaXN0Qm94LmggKi87IH07Ci0JCUFCQzEyODc3MEIzM0FBNkQwMEM2OTNENSAvKiBQ
b3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLzsg
fTsKKwkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJDMTI4NzYwQjMzQUE2
RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFCRERGRTc5MEE1QzZFNzAwMEEzRTExRCAvKiBSZW5k
ZXJNZW51TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQkRERkU3MzBBNUM2RTZGMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuY3BwICovOyB9
OwogCQlBQkRERkU3QTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCRERGRTc0MEE1QzZFNzAw
MEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oICovOyB9OwogCQlBQkZFN0UxMjBEMzJGQUY2MDA2
NkY0RDIgLyogTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJGRTdFMTAwRDMyRkFGNTAwNjZGNEQyIC8qIE1lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKQEAgLTUwMTAsNiArNTAxMCw3IEBACiAJCUQyM0NB
NTVEMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUg
LyogSlNSYW5nZUV4Y2VwdGlvbi5oICovOyB9OwogCQlEMjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUg
LyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlv
bi5jcHAgKi87IH07CiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1
NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CisJCUQzOUQwMEM5
MTFGQTIyOTcwMDYwNDFGMiAvKiBTZWxlY3RNZXRob2RDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMEM4MTFGQTIyOTcwMDYwNDFGMiAv
KiBTZWxlY3RNZXRob2RDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0
OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRl
bnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAg
Ki87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0My
Q0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CkBAIC0x
MDY4MSw2ICsxMDY4Miw3IEBACiAJCUQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1Jhbmdl
RXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JhbmdlRXhj
ZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NBNTVFMEFCMEVBQjYw
MDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEMzlEMDBDODExRkEyMjk3MDA2MDQxRjIgLyogU2VsZWN0
TWV0aG9kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdE1l
dGhvZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0
OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5
MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRl
bnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIzNzcsNiArMTIz
NzksNyBAQAogCQkJCUJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5j
cHAgKi8sCiAJCQkJQkNEMEUwRjgwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmgg
Ki8sCiAJCQkJQkNEMEUwRjkwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luSGFzaC5o
ICovLAorCQkJCUQzOUQwMEM4MTFGQTIyOTcwMDYwNDFGMiAvKiBTZWxlY3RNZXRob2RDbGllbnQu
aCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwICovLAog
CQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovLAogCQkJCTYyNkNE
RTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCkBAIC0xOTg1
Niw2ICsxOTg1OSw3IEBACiAJCQkJNTE2MkM3RjUxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGMzE3QzExRjhENjgzMDAzQzVCRjggLyog
VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNzA3QTlB
MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRDM5RDAwQzkxMUZBMjI5NzAwNjA0MUYyIC8qIFNlbGVjdE1ldGhvZENsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDk5MzhiYmMuLjU4YzQ5
ODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiBFcmljIFNlaWRlbCAoZXJpY0B3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwOCw2ICsxMDksMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIHsgcmV0dXJuIGZh
bHNlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWxlY3RV
SUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgeyBy
ZXR1cm4gUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4oKTsgfQorICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBNZW51Q2xpZW50
KikgY29uc3QgeyByZXR1cm4gUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4oKTsgfQorCiAgICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgeyB9CiAKICAgICB2
aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApp
bmRleCAwYzY2OTI1Li5kOWQzMGE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMTgsNiArMzE4LDIxIEBAIGJvb2wgQ2hyb21lOjpzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
KCkKICAgICByZXR1cm4gbV9jbGllbnQtPnNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKIH0K
IAorYm9vbCBDaHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sK
KyAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCk7Cit9CisKK1Bhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IENocm9tZTo6Y3JlYXRlU2VsZWN0
VUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
Y2xpZW50LT5jcmVhdGVTZWxlY3RVSUNsaWVudChjbGllbnQpOworfQorCitQYXNzUmVmUHRyPFNl
YXJjaFVJQ2xpZW50PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlU2VhcmNoVUlD
bGllbnQoY2xpZW50KTsKK30KKwogSW50UmVjdCBDaHJvbWU6OndpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQtPndpbmRvd1Jlc2l6ZXJSZWN0KCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5k
ZXggNTM3NDY4YS4uYjcyYTViYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisr
KyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsNiArMjUsNyBAQAog
I2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNp
bmNsdWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTQ0
LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFJlY3Q7CiAgICAg
Y2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOworICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsK
ICAgICBjbGFzcyBTdHJpbmc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgY2xhc3Mg
Tm90aWZpY2F0aW9uUHJlc2VudGVyOwpAQCAtMTIyLDYgKzEyNSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpOwogICAgICAgICBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKIAorICAgICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNs
aWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFNlYXJjaFVJQ2xpZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKKwogICAgICAgICBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKICAg
ICAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzk1YjI1Yy4uOGRh
MTNjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI3LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJIVE1MUGFyc2VyUXVpcmtzLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2lu
Y2x1ZGUgIlNjcm9sbFR5cGVzLmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUzLDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOwor
ICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKICAgICBjbGFzcyBTdHJpbmc7CiAgICAgY2xhc3Mg
V2lkZ2V0OwogCkBAIC0xMjUsNiArMTI4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSA9IDA7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0ID0gMDsKIAorICAgICAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQo
UG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0ID0gMDsKKwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBj
b25zdCA9IDA7CiAKICAgICAgICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2Uv
U2VsZWN0TWV0aG9kQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OWY4MjBjNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TZWxlY3RNZXRob2RDbGll
bnQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHNl
bGVjdCBlbGVtZW50IHJlbmRlcmVyIGluIFdlYkNvcmUuCisgKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgU2VsZWN0TWV0aG9kQ2xpZW50X2gKKyNkZWZpbmUgU2VsZWN0TWV0aG9kQ2xpZW50X2gK
KworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEF0b21pY1N0cmluZzsKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIEludFJlY3Q7CisK
K2NsYXNzIFNlbGVjdFVJQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2VsZWN0VUlDbGllbnQ+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TZWxlY3RVSUNsaWVudCgpIHt9CisgICAgdmlydHVh
bCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpID0gMDsK
K307CisKK2NsYXNzIFNlYXJjaFVJQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2VhcmNoVUlD
bGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TZWFyY2hVSUNsaWVudCgpIHt9CisgICAg
dmlydHVhbCBTZWxlY3RVSUNsaWVudCogc2VsZWN0VUlDbGllbnQoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpID0gMDsKK307CisK
K30KKworI2VuZGlmIC8vIFNlbGVjdE1ldGhvZENsaWVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL1BvcHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAppbmRl
eCBkOWQyNzQwLi41NDk2NTc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDYgKzI0LDcgQEAK
IAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNp
bmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTQwLDEwICs0Miw2IEBAIGNsYXNz
IE5TUG9wVXBCdXR0b25DZWxsOwogdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwogdHlwZWRl
ZiBzdHJ1Y3QgSERDX18qIEhEQzsKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsK
LSNlbGlmIFBMQVRGT1JNKFFUKQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUXRBYnN0cmFj
dFdlYlBvcHVwOwotfQogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0d0a01l
bnUgR3RrTWVudTsKIHR5cGVkZWYgc3RydWN0IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKQEAg
LTcxLDcgKzY5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWVWaWV3OwogY2xh
c3MgU2Nyb2xsYmFyOwogCi1jbGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3B1
cE1lbnU+CitjbGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMgU2VsZWN0VUlDbGllbnQKICNpZiBQTEFU
Rk9STShXSU4pCiAgICAgICAgICAgICAgICAgLCBwcml2YXRlIFNjcm9sbGJhckNsaWVudAogI2Vu
ZGlmCkBAIC04MCwyMCArNzgsMTYgQEAgY2xhc3MgUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50
ZWQ8UG9wdXBNZW51PgogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnUoY2xpZW50KSk7IH0KKyAgICBQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50Kik7CiAgICAgflBvcHVwTWVudSgpOwotICAgIAotICAgIHZvaWQgZGlzY29ubmVjdENsaWVu
dCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KIAotICAgIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0
JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKLSAgICB2b2lkIGhpZGUoKTsKLQotICAgIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0
JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0Q2xpZW50KCk7CiAgICAgCiAgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CiAKLSAgICBzdGF0aWMgYm9vbCBpdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpOwotCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIFNjcm9sbGJh
ciogc2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KIApAQCAt
MTM0LDkgKzEyOCw2IEBAIHB1YmxpYzoKICAgICBib29sIHNjcm9sbGJhckNhcHR1cmluZ01vdXNl
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsgfQogICAgIHZvaWQg
c2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVyaW5n
TW91c2UgPSBiOyB9CiAjZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKTsKICAgICAKIHByaXZhdGU6CiAgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVw
Q2xpZW50OwpAQCAtMTQ2LDggKzEzNyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3B1bGF0ZSgp
OwogCiAgICAgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25DZWxsPiBtX3BvcHVwOwotI2VsaWYgUExB
VEZPUk0oUVQpCi0gICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBtX3BvcHVwOwogI2VsaWYgUExBVEZP
Uk0oV0lOKQogICAgIC8vIFNjcm9sbEJhckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCB2YWx1ZUNo
YW5nZWQoU2Nyb2xsYmFyKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAppbmRleCA0Mjg1
Y2RmLi44ZTEyOWVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVu
dS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDIzICsy
MywyMyBAQAogI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVfaAogCiAjaW5jbHVkZSAiUG9wdXBNZW51
LmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF0b21pY1N0cmluZzsKIAotY2xh
c3MgU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7CitjbGFzcyBTZWFyY2hQb3B1
cE1lbnUgOiBwdWJsaWMgU2VhcmNoVUlDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7
IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOyB9Ci0KLSAgICB2
b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwot
Ci0gICAgYm9vbCBlbmFibGVkKCk7CisgICAgU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopOworICAgIHZpcnR1YWwgU2VsZWN0VUlDbGllbnQqIHNlbGVjdFVJQ2xpZW50KCk7CisgICAg
dmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+
JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKICAgICAKIHByaXZh
dGU6Ci0gICAgU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworICAgIFBvcHVwTWVu
dSBtX3BvcHVwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVw
TWVudUNocm9taXVtLmNwcAppbmRleCA0NzAxYTc1Li4wZDI4MTY5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTEzNDEsNiArMTM0MiwxMSBAQCBQb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQogICAgIGhp
ZGUoKTsKIH0KIAordm9pZCBQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1f
cG9wdXBDbGllbnQgPSAwOworfQorCiAvLyBUaGUgTWFjIENocm9taXVtIGltcGxlbWVudGF0aW9u
IHJlbGllcyBvbiBleHRlcm5hbCBjb250cm9sIChhIENvY29hIGNvbnRyb2wpCiAvLyB0byBkaXNw
bGF5LCBoYW5kbGUgdGhlIGlucHV0IHRyYWNraW5nIGFuZCBtZW51IGl0ZW0gc2VsZWN0aW9uIGZv
ciB0aGUgcG9wdXAuCiAvLyBXaW5kb3dzIGFuZCBMaW51eCBDaHJvbWl1bSBsZXQgb3VyIFdlYktp
dCBwb3J0IGhhbmRsZSB0aGUgZGlzcGxheSwgd2hpbGUKQEAgLTEzNjcsOSArMTM3Myw0IEBAIHZv
aWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgcC5wb3B1cC0+bGlzdEJveCgp
LT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAgcmV0dXJuIGZhbHNlOyAKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9T
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Nl
YXJjaFBvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA4OWJmZGRkLi42ODNkM2IxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVt
LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM3LDEwICszOCwxNSBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVu
dCkKIHsKIH0KIAorU2VsZWN0VUlDbGllbnQqIFNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGll
bnQoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwogYm9vbCBTZWFyY2hQb3B1cE1lbnU6
OmVuYWJsZWQoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1l
bnVFZmwuY3BwCmluZGV4IDlkYzY5ODYuLjhjODk4YzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9w
dXBNZW51RWZsLmNwcApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRU
IC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC00NCw2ICs0NSwxMSBAQCBQb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQogICAgIGhpZGUoKTsKIH0K
IAordm9pZCBQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENs
aWVudCA9IDA7Cit9CisKIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3Qs
IEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIEFTU0VSVChtX3BvcHVwQ2xpZW50
KTsKQEAgLTY4LDkgKzc0LDQgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkK
ICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkp
OwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQot
ewotICAgIHJldHVybiB0cnVlOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNo
UG9wdXBNZW51RWZsLmNwcAppbmRleCBkMTgxNzRmLi45YzVlYjI0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiAgQ29w
eXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICog
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiAg
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNiwxMSArMjcsMTYgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorU2VsZWN0VUlDbGllbnQqIFNlYXJjaFBv
cHVwTWVudTo6c2VsZWN0VUlDbGllbnQoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwog
dm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCmluZGV4IGJmOGNmYjQuLjIxZjNkNmQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWls
LmNvbQogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC00Nyw2ICs0OCwxMSBAQCBQb3B1cE1lbnU6On5Qb3B1cE1l
bnUoKQogICAgIH0KIH0KIAordm9pZCBQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQoKQorewor
ICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCiB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBBU1NFUlQo
Y2xpZW50KCkpOwpAQCAtMTIxLDExICsxMjcsNiBAQCB2b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xpZW50KCktPnNlbGVj
dGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgUG9wdXBNZW51OjptZW51
SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9wdXBNZW51KiB0aGF0KQogewogICAg
IEFTU0VSVCh0aGF0LT5jbGllbnQoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcAppbmRleCBmYmFhNTI3Li5jMmI2MjBlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKQEAgLTEsNCArMSw2IEBACiAvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTIyLDExICsyNCwxNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCisgICAgOiBt
X3BvcHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitTZWxlY3RVSUNs
aWVudCogU2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCgpCit7CisgICAgcmV0dXJuICZt
X3BvcHVwOworfQorCisKIHZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVN
YWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KaW5kZXggNmMwNjdi
OS4uMjI3MzAwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFj
Lm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQpAQCAtNDksNiAr
NDksMTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICAgICAgW21fcG9wdXAuZ2V0KCkg
c2V0Q29udHJvbFZpZXc6bmlsXTsKIH0KIAordm9pZCBQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGll
bnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCiB2b2lkIFBvcHVwTWVudTo6Y2xl
YXIoKQogewogICAgIGlmIChtX3BvcHVwKQpAQCAtMjAzLDkgKzIwOCw0IEBAIHZvaWQgUG9wdXBN
ZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbSBiL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQppbmRleCAyNjI3MzRkLi5m
N2MyNmRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVN
YWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCkBA
IC0yNSwxMCArMjUsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51
OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1l
bnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKK1NlbGVjdFVJQ2xpZW50
KiBTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9w
dXA7Cit9CisKIHN0YXRpYyBOU1N0cmluZyogYXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1l
KQogewogICAgIHJldHVybiBbQCJjb20uYXBwbGUuV2ViS2l0LnNlYXJjaEZpZWxkOiIgc3RyaW5n
QnlBcHBlbmRpbmdTdHJpbmc6bmFtZV07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1BvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmlu
ZGV4IDMxNWI4OTEuLjcyNmE4ZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9w
dXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBv
cHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCiAKICNpbmNsdWRlICJDaHJvbWUu
aCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRRdC5oIgpAQCAtMzUsMTggKzM1LDIzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCitQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fcG9wdXAoMCkKIHsKIH0K
IAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudVF0Ojp+UG9wdXBNZW51UXQoKQog
ewogICAgIGRlbGV0ZSBtX3BvcHVwOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51
UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCit2
b2lkIFBvcHVwTWVudVF0OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmll
dywgaW50IGluZGV4KQogewogICAgIENocm9tZUNsaWVudFF0KiBjaHJvbWVDbGllbnQgPSBzdGF0
aWNfY2FzdDxDaHJvbWVDbGllbnRRdCo+KAogICAgICAgICB2aWV3LT5mcmFtZSgpLT5wYWdlKCkt
PmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC02NywxOSArNzIsMTQgQEAgdm9pZCBQb3B1cE1lbnU6
OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAK
IH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVRdDo6aGlkZSgpCiB7
CiAgICAgbV9wb3B1cC0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVs
ZW1lbnQoKQotewotICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0obV9wb3B1cENsaWVudC0+
c2VsZWN0ZWRJbmRleCgpKTsKLX0KLQotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9wb3B1cENsaWVudC0+c2V0VGV4dEZyb21JdGVtKG1f
cG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGM5YTNlCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudVF0X2gKKyNkZWZpbmUg
UG9wdXBNZW51UXRfaAorCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgUXRBYnN0cmFjdFdlYlBv
cHVwOworY2xhc3MgU2Nyb2xsYmFyOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFzcyBQ
b3B1cE1lbnVRdCA6IHB1YmxpYyBTZWxlY3RVSUNsaWVudCB7CitwdWJsaWM6CisgICAgUG9wdXBN
ZW51UXQoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVF0KCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVu
dCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKKy8vICAgIFBvcHVw
TWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCitw
cml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBRdEFic3Ry
YWN0V2ViUG9wdXAqIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVRdF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAppbmRleCBkYWQ0OTk3Li41
ZjZmNjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1
cC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIFFGb250IGZvbnQoKSB7IHJldHVybiBtX3BvcHVwQ2xp
ZW50LT5tZW51U3R5bGUoKS5mb250KCkuZm9udCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5k
IGNsYXNzIFBvcHVwTWVudTsKKyAgICBmcmllbmQgY2xhc3MgUG9wdXBNZW51UXQ7CiAgICAgUG9w
dXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwogICAgIFFXZWJQYWdlQ2xpZW50KiBtX3BhZ2VD
bGllbnQ7CiAgICAgaW50IG1fY3VycmVudEluZGV4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0LmNwcAppbmRleCAxODdhNWRlLi5jOWUxZWIwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgQyAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTE4LDI2ICsxOSwyOSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLQotI2luY2x1ZGUgIkF0b21pY1N0
cmluZy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51UXQ6OlNl
YXJjaFBvcHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChj
bGllbnQpCit7Cit9CisKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnVRdDo6c2VsZWN0
VUlDbGllbnQoKQogeworICAgIHJldHVybiAmbV9wb3B1cDsKIH0KIAotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi12b2lk
IFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYs
IFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiB9CiAKLWJvb2wg
U2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJs
ZWQoKQogewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1
cE1lbnVRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMzAxM2QKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmgK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVw
TWVudVF0X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51UXRfaAorCisjaW5jbHVkZSAiUG9wdXBN
ZW51UXQuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVu
dVF0IDogcHVibGljIFNlYXJjaFVJQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1l
bnVRdChQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgU2VsZWN0VUlDbGllbnQqIHNl
bGVjdFVJQ2xpZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7
CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVu
YWJsZWQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51UXQgbV9wb3B1cDsKK307CisK
K30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudVF0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uY3BwCmluZGV4IDhlNDMyMGUuLmExZDMxMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UG9wdXBNZW51V2luLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTExOSw2ICsxMjAsMTEgQEAgTFBDVFNUUiBQb3B1cE1lbnU6OnBvcHVw
Q2xhc3NOYW1lKCkKICAgICByZXR1cm4ga1BvcHVwV2luZG93Q2xhc3NOYW1lOwogfQogCit2b2lk
IFBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7
Cit9CisKIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyog
dmlldywgaW50IGluZGV4KQogewogICAgIGNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShyLCB2aWV3
KTsKQEAgLTU0NywxMSArNTUzLDYgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50
KCkKICAgICAgICAgOjpVcGRhdGVXaW5kb3cobV9wb3B1cCk7CiB9CiAKLWJvb2wgUG9wdXBNZW51
OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIAoteyAKLSAgICByZXR1cm4gdHJ1ZTsg
Ci19Ci0KIGNvbnN0IGludCBzZXBhcmF0b3JQYWRkaW5nID0gNDsKIGNvbnN0IGludCBzZXBhcmF0
b3JIZWlnaHQgPSAxOwogdm9pZCBQb3B1cE1lbnU6OnBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFn
ZVJlY3QsIEhEQyBoZGMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQ
b3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2lu
LmNwcAppbmRleCBmMjcwOWJiLi40MWE3Njk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Nl
YXJjaFBvcHVwTWVudVdpbi5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTI2LDEwICsyNywxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZWFyY2hQb3B1cE1l
bnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVw
TWVudShjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIAorU2VsZWN0VUlDbGll
bnQqIFNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQoKQoreworICAgIHJldHVybiAmbV9w
b3B1cDsKK30KKwogYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQogewogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDE3NzkyMWMuLjE3
NmY3M2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMzMsMTEgKzM0
LDExIEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9uRWxl
bWVudC5oIgogI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgogI2luY2x1ZGUgIlJlbmRlckJSLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTZWxlY3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogCiB1
c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtODgsOCArODksOCBAQCB2b2lkIFJlbmRlck1lbnVMaXN0
OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRp
bmdSaWdodChMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSgp
KSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdUb3AoTGVu
Z3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwog
ICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUo
KS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oc3R5bGUoKSksIEZpeGVkKSk7Ci0gICAgICAg
IAotICAgIGlmIChQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsK
KworICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5zZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CiAgICAgICAgIC8vIEl0ZW1zIGluIHRoZSBwb3B1cCB3
aWxsIG5vdCByZXNwZWN0IHRoZSBDU1MgdGV4dC1hbGlnbiBhbmQgZGlyZWN0aW9uIHByb3BlcnRp
ZXMsCiAgICAgICAgIC8vIHNvIHdlIG11c3QgYWRqdXN0IG91ciBvd24gc3R5bGUgdG8gbWF0Y2gu
CiAgICAgICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0VGV4dEFsaWduKExFRlQpOwpAQCAt
Mjc4LDcgKzI3OSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8g
aW5zaWRlIHRoZSBzaG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJ
bm5lckJsb2NrKCk7CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gUG9wdXBN
ZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fcG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCkt
PmNocm9tZSgpLT5jcmVhdGVTZWxlY3RVSUNsaWVudCh0aGlzKTsKICAgICBTZWxlY3RFbGVtZW50
KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSkp
OwogICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaAppbmRleCBkNzJlMWE5Li4zZjAxZTMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBQb3B1
cE1lbnU7CiBjbGFzcyBSZW5kZXJUZXh0OworY2xhc3MgU2VsZWN0VUlDbGllbnQ7CiAKICNpZiBF
TkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcpCiBjbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1Ymxp
YyBSZW5kZXJGbGV4aWJsZUJveCwgcHJpdmF0ZSBMaXN0UG9wdXBNZW51Q2xpZW50IHsKQEAgLTEz
MSw3ICsxMzEsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fbGFzdFNlbGVjdGVkSW5kZXg7CiAK
LSAgICBSZWZQdHI8UG9wdXBNZW51PiBtX3BvcHVwOworICAgIFJlZlB0cjxTZWxlY3RVSUNsaWVu
dD4gbV9wb3B1cDsKICAgICBib29sIG1fcG9wdXBJc1Zpc2libGU7CiB9OwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBkMGFi
MTA3Li5jNWVhOWJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAg
IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8v
d3d3LnRvcmNobW9iaWxlLmNvbS8pIAogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMyw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJD
U1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCkBAIC0zOCw3ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgotI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgog
I2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCkBAIC02Miw3ICs2NCw3IEBAIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKE5vZGUqIG5vZGUs
IGJvb2wgcGxhY2VoCiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUoKQogewogICAgIGlmIChtX3NlYXJjaFBvcHVwKSB7Ci0gICAgICAgIG1f
c2VhcmNoUG9wdXAtPmRpc2Nvbm5lY3RDbGllbnQoKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cC0+
c2VsZWN0VUlDbGllbnQoKS0+ZGlzY29ubmVjdENsaWVudCgpOwogICAgICAgICBtX3NlYXJjaFBv
cHVwID0gMDsKICAgICB9CiAgCkBAIC0xMDcsNyArMTA5LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCgpCiAKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAg
ICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAg
ICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNl
YXJjaFVJQ2xpZW50KHRoaXMpOwogCiAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJj
aGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogfQpAQCAtMTI1LDcgKzEyNyw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFy
Y2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3Vt
ZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KHRoaXMpOwogCiAg
ICAgaWYgKCFtX3NlYXJjaFBvcHVwLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE0
NSwxNCArMTQ3LDE0IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9w
dXAoKQogICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9y
ZWNlbnRTZWFyY2hlcyk7CiAgICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+c2hvdyhhYnNvbHV0
ZUJvdW5kaW5nQm94UmVjdCh0cnVlKSwgZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CisgICAgbV9z
ZWFyY2hQb3B1cC0+c2VsZWN0VUlDbGllbnQoKS0+c2hvdyhhYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dCh0cnVlKSwgZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpoaWRlUG9wdXAoKQogewogICAgIEFTU0VSVChub2RlKCktPmlzSFRN
TEVsZW1lbnQoKSk7CiAgICAgaWYgKG1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9w
dXAtPmhpZGUoKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2VsZWN0VUlDbGllbnQoKS0+aGlk
ZSgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3VidHJlZUhhc0No
YW5nZWQoKQpAQCAtNjg1LDcgKzY4Nyw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fc2VhcmNoUG9wdXBJ
c1Zpc2libGUpCi0gICAgICAgIG1fc2VhcmNoUG9wdXAtPnVwZGF0ZUZyb21FbGVtZW50KCk7Cisg
ICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPnVwZGF0ZUZyb21FbGVtZW50
KCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjYWNoZVNlbGVjdGlv
bihpbnQgc3RhcnQsIGludCBlbmQpCkBAIC04ODMsNyArODg1LDcgQEAgdm9pZCBSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wg
ZmlyZUV2ZW4KICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZl
TmFtZSgpOwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
ICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1
cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgICAgICAgICBt
X3NlYXJjaFBvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNo
VUlDbGllbnQodGhpcyk7CiAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2Vu
dFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
CmluZGV4IDkyZWNhZGQuLmNiMmFjYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTMyLDcgKzMzLDcgQEAgY2xhc3MgSW5wdXRFbGVtZW50OwogY2xhc3MgSW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OwotY2xhc3Mg
U2VhcmNoUG9wdXBNZW51OworY2xhc3MgU2VhcmNoVUlDbGllbnQ7CiBjbGFzcyBTcGluQnV0dG9u
RWxlbWVudDsKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50OwogCkBAIC0xNTQsNyArMTU1
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgVGltZXI8UmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lPiBtX3NlYXJjaEV2ZW50VGltZXI7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
bV9zZWFyY2hQb3B1cDsKKyAgICBSZWZQdHI8U2VhcmNoVUlDbGllbnQ+IG1fc2VhcmNoUG9wdXA7
CiAgICAgVmVjdG9yPFN0cmluZz4gbV9yZWNlbnRTZWFyY2hlczsKIH07CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGYzYjMxYWUuLmEyMDgxZDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEw
LTA3LTIzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSBy
ZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIE5ldyBwdXJlIHZp
cnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQg
YnkgUmVuZGVyTWVudUxpc3QKKyAgICAgICAgYW5kIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisgICAg
ICAgIFBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNo
UG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCisKKyAgICAgICAgQ2hyb21l
IGNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFNlbGVjdFVJQ2xpZW50
IGFuZCBTZWFyY2hVSUNsaWVudCBpbnN0YW5jZXMuCisgICAgICAgIENocm9tZUNsaWVudCBkZXJp
dmVkIGNsYXNzZXMgb2YgY29yZSBwbGF0Zm9ybXMgaGF2ZSBiZWVuIG1vZGlmaWVkIHRvIGltcGxl
bWVudCB0aGUgbmV3CisgICAgICAgIG1ldGhvZHMgYW5kIHRvIHJldHVybiBpbnN0YW5jZXMgb2Yg
UG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50SW1wbDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnRJbXBsOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuaDoKKwogMjAxMC0wNy0yMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0
c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZDQzZDg4
YS4uN2ViYTEwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTU0LDggKzU1LDEwIEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgiCiAjaWYgVVNFKFY4KQogI2luY2x1ZGUgIlY4
UHJveHkuaCIKQEAgLTc2NSw0ICs3NjgsMjAgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpleGl0
RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICAgICAgbV93ZWJWaWV3
LT5jbGllbnQoKS0+ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYk5vZGUobm9kZSkpOwogfQogCiti
b29sIENocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0
VUlDbGllbnQ+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFVJQ2xpZW50PiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hVSUNsaWVudChX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsKK30KKworCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5k
ZXggZTgyNDM4MS4uMjNlYTliYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtMzIsNiArMzMsOSBAQAogI2RlZmluZSBDaHJvbWVDbGllbnRJbXBs
X2gKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsKQEAgLTE2NSw2ICsxNjks
MTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1
cnNvcik7CiAgICAgdm9pZCBzZXRDdXJzb3JGb3JQbHVnaW4oY29uc3QgV2ViQ3Vyc29ySW5mbyYg
Y3Vyc29yKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWxlY3RVSUNsaWVu
dD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBjcmVhdGVT
ZWFyY2hVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2ViQ29yZTo6UG9wdXBDb250YWluZXIqLCBX
ZWJQb3B1cE1lbnVJbmZvKik7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZmM5NDBkOC4uMzZjNWU3YSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAxMC0wNy0yMyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAg
ICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xp
ZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51LgorICAgICAgICBQb3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGll
bnQgYW5kIFNlYXJjaFBvcHVwTWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisg
ICAgICAgIENocm9tZSBjbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBT
ZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJv
bWVDbGllbnQgZGVyaXZlZCBjbGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2Rp
ZmllZCB0byBpbXBsZW1lbnQgdGhlIG5ldworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4g
aW5zdGFuY2VzIG9mIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKwogMjAxMC0wNy0y
MyAgUmFmYWVsIEFudG9nbm9sbGkgIDxhbnRvZ25vbGxpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggZmZiZDY0Mi4uMGY4ZDE2MiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNSw2ICs1LDcg
QEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBEaWVnbyBHb256YWxlegogICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCkBAIC00Nyw2ICs0OCw3IEBACiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50
cy5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUu
aCIKQEAgLTUxMyw0ICs1MTUsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmRpZFJlY2VpdmVW
aWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXIKICAgICBld2tf
dmlld192aWV3cG9ydF9zZXQobV92aWV3LCBhcmd1bWVudHMud2lkdGgsIGFyZ3VtZW50cy5oZWln
aHQsIGFyZ3VtZW50cy5pbml0aWFsU2NhbGUsIGFyZ3VtZW50cy5taW5pbXVtU2NhbGUsIGFyZ3Vt
ZW50cy5tYXhpbXVtU2NhbGUsIGFyZ3VtZW50cy51c2VyU2NhbGFibGUpOwogfQogCitib29sIENo
cm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQorewor
ICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBDaHJvbWVD
bGllbnRFZmw6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51KGNsaWVudCkpOworfQor
CitQYXNzUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJj
aFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCBjZThhYmQxLi42MTM4ZTA0
IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5o
CisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTMs
NiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBk
ZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRk
ZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTM3LDYgKzEzOCwxMCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZy
YW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3Q7CiAK
KyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFy
Y2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CisKICAgICBFdmFzX09iamVjdCogbV92aWV3OwogICAgIEtVUkwgbV9ob3ZlcmVkTGlua1VSTDsK
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IDgwM2JmMTIuLjQ0ZTIwZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDct
MjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFj
dG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVh
bCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBS
ZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGlu
c3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAg
UG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1
cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xp
ZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5k
IFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQg
Y2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50
IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1
cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0
SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmg6CisKIDIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCA4ODQ0MGJhLi44M2E1ZDYwIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
KysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC00
LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykg
MjAwOCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNiArMzIsOCBAQAogI2luY2x1ZGUgIkd0a1ZlcnNp
b25pbmcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUg
IktVUkwuaCIKQEAgLTYxNiw0ICs2MTksMTkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNlbEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnIKICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNp
c2lvbi1jYW5jZWxsZWQiLCB3ZWJGcmFtZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IENocm9tZUNsaWVudDo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpQb3B1cE1lbnUoY2xpZW50KSk7
Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+IENocm9tZUNsaWVudDo6
Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnUo
Y2xpZW50KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oCmluZGV4IGNlNWM1YTcuLmIyMDE2YTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIzLDkgQEAKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNs
dWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKKwogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vi
VmlldyBXZWJLaXRXZWJWaWV3OwogCkBAIC0xMjIsNiArMTI2LDEwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKKyAgICAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlD
bGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAg
ICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgICAgIFdlYkNvcmU6OktVUkwgbV9ob3Zl
cmVkTGlua1VSTDsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggN2JkNmI0Ny4uNWM1MTkzYSAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMC0wNy0yMyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1l
bnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVy
ZSB2aXJ0dWFsIGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1
c2VkIGJ5IFJlbmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUgaW5zdGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51Lgor
ICAgICAgICBQb3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNl
YXJjaFBvcHVwTWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENo
cm9tZSBjbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNs
aWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQg
ZGVyaXZlZCBjbGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBp
bXBsZW1lbnQgdGhlIG5ldworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2Vz
IG9mIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNl
bGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlD
bGllbnQpOgorCiAyMDEwLTA3LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDdkMDgwLi41ZjNkM2M4IDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDgg
QEAKIAogI2ltcG9ydCA8V2ViQ29yZS9DaHJvbWVDbGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9wdXBNZW51Q2xpZW50Lmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1NlbGVjdE1ldGhvZENsaWVudC5oPgogI2ltcG9ydCA8d3RmL0Zvcndh
cmQuaD4KIAogQGNsYXNzIFdlYlZpZXc7CkBAIC0xNjcsNiArMTY5LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2Fu
Y2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwg
V2ViQ29yZTo6R2VvbG9jYXRpb24qKSB7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJj
aFVJQ2xpZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CiB9OwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBlYjU2MjQwLi41
NmRmNmUyIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQpAQCAtNjAsOSArNjAsMTEgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWNvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvUG9wdXBNZW51Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+
CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNzI0LDYgKzcyNiwyMSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAg
ICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVy
Tm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKIH0KIAorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlD
bGllbnQ+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJDb3JlOjpQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoVUlDbGllbnQ+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290
R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIp
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCAzMjI5MjM0Li4wYmM0MmQzIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jpbmcg
aW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNz
ZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1l
bnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBv
ZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1l
bnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBp
bmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNo
VUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2Vz
IG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5l
dworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dFF0OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRRdDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0Lmg6CisKIDIwMTAtMDctMjMgIERhdmlkIEJvZGRpZSAgPGRib2RkaWVAdHJv
bGx0ZWNoLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IDJjNjRhNzguLjA2
MTI3MTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFj
a0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiUGFn
ZUNsaWVudFF0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKICNpZiBkZWZpbmVkKFFfV1Nf
TUFFTU9fNSkKICNpbmNsdWRlICJRdE1hZW1vV2ViUG9wdXAuaCIKICNlbHNlCkBAIC01Miw2ICs1
NCw3IEBACiAjZW5kaWYKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51UXQuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiV2luZG93RmVhdHVyZXMuaCIKQEAgLTY0NCw0ICs2NDcsMTkgQEAgdm9pZCBDaHJvbWVD
bGllbnRRdDo6ZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiBmcmFtZSwgY29uc3Qg
Vmlld3BvcnRBcmcKICAgICBlbWl0IG1fd2ViUGFnZS0+dmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQo
aGludHMpOwogfQogCitib29sIENocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFNl
bGVjdFVJQ2xpZW50PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1
cE1lbnVRdChjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gQ2hyb21l
Q2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51UXQoY2xpZW50
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggNzBiNGEyNS4uYmUwMDg0NSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0xMTAsNiArMTExLDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCisg
ICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVj
dFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0
IEludFJlY3QmLCBib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggY2VjNDFjNy4uMmNiNmE4YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jpbmcg
aW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNz
ZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1l
bnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBv
ZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1l
bnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBp
bmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNo
VUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2Vz
IG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5l
dworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWxl
Y3RVSUNsaWVudCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAx
MC0wNy0yMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDczNTMyYTYuLjZlMzc4ZGYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTU1LDkgKzU2LDEyIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
ZWFyY2hQb3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAj
cHJhZ21hIHdhcm5pbmcocG9wKQogCisKICNpbmNsdWRlIDx0Y2hhci5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTg2OCwzICs4NzIsMTggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKikKIAogI2VuZGlmCiAKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpQb3B1
cE1lbnUoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3ODQ1YTkuLjU2ZjBhYTEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjcsNyArMjgsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3Vz
RGlyZWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3RNZXRo
b2RDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAKQEAgLTExMiw2ICsxMTUsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFy
Y2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgdmlydHVhbCB2b2lkIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYp
OwogI2VuZGlmCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62570</attachid>
            <date>2010-07-26 07:19:34 -0700</date>
            <delta_ts>2010-07-26 18:20:14 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>81125</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA2YTVmMTY3MWFiZWZlN2IxMmNhNGQxM2U3Yzg2NmVlMWUzNzUxNWY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjMgSnVsIDIwMTAgMTQ6NTE6NDcgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFy
Y2hQb3B1cE1lbnUuClBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBTZWxlY3RVSUNsaWVudCBh
bmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlDbGllbnQuCgpDaHJvbWUg
Y2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3Nl
cyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBu
ZXcKbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KCldlYkNvcmU6CgpOZXcgSW50ZXJmYWNlcyBTZWxlY3RNZXRob2RDbGllbnQg
YW5kIFNlYXJjaE1ldGhvZENsaWVudAoKKiBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oOiBBZGRl
ZC4KKFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50Ojp+U2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6
U2VhcmNoVUlDbGllbnQ6On5TZWFyY2hVSUNsaWVudCk6CgpSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGNoYW5nZWQgdG8gdXNlIG5ldyBpbnRlcmZhY2VzIGFu
ZCB0byBvYnRhaW4KaW5zdGFuY2VzIG9mIHRoZW0gZnJvbSBDaHJvbWU6CgoqIHJlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJT
dHlsZSk6CihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaDoKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZSk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNob3dQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCk6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21F
bGVtZW50KToKKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFu
Z2VkKToKKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSBjaGFuZ2VkIHRvIGluaGVyaXQgZnJvbSBTZWxlY3RNZXRo
b2RDbGllbnQgYW5kIFNlYXJjaE1ldGhvZENsaWVudApyZXNwZWN0aXZlbHkuIENocm9tZSBhbmQg
Q2hyb21lQ2xpZW50IGNoYW5nZWQgdG8gcHJvdmlkZSBpbnN0YW5jZXMgb2YgdGhvc2UgY2xhc3Nl
cy4KCiogcGxhdGZvcm0vUG9wdXBNZW51Lmg6CiogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6
CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVu
dCk6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CihXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KToK
KFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpRdCBp
bXBsZW1lbnRhdGlvbiBpZiBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQgaGF2ZSBi
ZWVuIHJlbW92ZWQgZnJvbSBmaWxlClBvcHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaC4g
RnVydGhlciBRdCBjb2RlIGNsZWFuaW5nIGFyZSBjb21pbmcgaW4gZnV0dXJlIHBhdGNoZXMuCgoq
IFdlYkNvcmUucHJvOgoqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlBv
cHVwTWVudVF0OjpQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuaDogQWRkZWQuCiogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CiogcGxh
dGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzZWxl
Y3RVSUNsaWVudCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJj
aGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQpOgoqIHBsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0Lmg6IEFkZGVkLgoKbWFjCgoqIFdlYkNvcmUuZXhwLmluOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1t
OgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLm1tOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6Cgpj
aHJvbWl1bQoKKiBXZWJDb3JlLmd5cGk6CiogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgooV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6
OnNlbGVjdFVJQ2xpZW50KToKCmd0awoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6
CiogcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNl
bGVjdFVJQ2xpZW50KToKCndpbgoKKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKiBw
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29u
bmVjdENsaWVudCk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHA6CihXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KToKCmVmbAoKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51
RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0
Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dTo6U2VhcmNoUG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgoo
V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6Ciogc3JjL0No
cm9tZUNsaWVudEltcGwuaDoKCldlYktpdC9ndGs6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CiogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CgpXZWJLaXQvbWFjOgoKKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW06CihXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3Jl
YXRlU2VsZWN0VUlDbGllbnQpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJj
aFVJQ2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgoKV2ViS2l0L3dp
bjoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYkNocm9tZUNsaWVu
dDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJ
Q2xpZW50KToKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMjEgKysrKysr
KysrKysrKysrKysrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDEwICstCiBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKwogV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKy0KIFdlYkNv
cmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBX
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg
KwogV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oICAgICAgICAgICAgICAgICAgfCAg
IDU2ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDI3ICsrLS0tCiBXZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5o
ICAgICAgICAgICAgICAgICB8ICAgMTcgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5jcHAgICAgfCAgIDExICstCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0v
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwICB8ICAgIDggKy0KIFdlYkNvcmUvcGxhdGZvcm0v
ZWZsL1BvcHVwTWVudUVmbC5jcHAgICAgICAgICAgICAgIHwgICAxMSArLQogV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcCAgICAgICAgfCAgICA4ICstCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwICAgICAgICAgICAgICB8ICAgMTEgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAgICAgICAgIHwgICAxMCAr
Ky0KIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSAgICAgICAgICAgICAgIHwg
ICAxMCArLQogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tICAgICAg
ICAgfCAgICA3ICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCAgICAgICAg
ICAgICAgICB8ICAgMjQgKystLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oICAg
ICAgICAgICAgICAgICAgfCAgIDUxICsrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJz
dHJhY3RXZWJQb3B1cC5oICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQv
U2VhcmNoUG9wdXBNZW51UXQuY3BwICAgICAgICAgIHwgICAyMCArKy0tCiBXZWJDb3JlL3BsYXRm
b3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmggICAgICAgICAgICB8ICAgNDYgKysrKysrKysKIFdl
YkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAgICAgICAgICAgICAgIHwgICAxMSAr
LQogV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCAgICAgICAgfCAg
ICA4ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgICAgICAgICAgICAg
ICB8ICAgIDkgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAgICAg
ICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcCAgfCAgIDE4ICsrLS0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oICAgIHwgICAgNSArLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAgICAgICAgICAgIHwgICAxOSArKysKIFdlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysKIFdl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCAgICAgIHwgICAxNyAr
KysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggICAgICAgIHwg
ICAgNSArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjEgKysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwICAgICAgfCAgIDE4ICsrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCAgICAgICAgfCAgICA4ICsrCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCAgICAgICAgfCAgICA2ICsKIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAxNyArKysKIFdlYktpdC9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAgMTggKysrCiBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDUg
KwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIxICsrKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAg
ICAgIHwgICAxOSArKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggICAgICAgIHwgICAgNyArCiA1MSBmaWxlcyBjaGFuZ2VkLCA3MjUgaW5zZXJ0aW9ucygrKSwg
OTggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wYWdlL1NlbGVjdE1l
dGhvZENsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQ
b3B1cE1lbnVRdC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMjZkMTg1Li4xZWViM2ZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNCBAQAorMjAxMC0wNy0y
MyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0
b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFs
IGNsYXNzZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJl
bmRlck1lbnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5z
dGVhZCBvZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQ
b3B1cE1lbnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVw
TWVudSBpbmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGll
bnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQg
U2VhcmNoVUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBj
bGFzc2VzIG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQg
dGhlIG5ldworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVw
TWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgIE5ldyBJbnRlcmZhY2VzIFNlbGVj
dE1ldGhvZENsaWVudCBhbmQgU2VhcmNoTWV0aG9kQ2xpZW50CisKKyAgICAgICAgKiBwYWdlL1Nl
bGVjdE1ldGhvZENsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFVJQ2xp
ZW50Ojp+U2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ6
On5TZWFyY2hVSUNsaWVudCk6CisKKyAgICAgICAgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSBjaGFuZ2VkIHRvIHVzZSBuZXcgaW50ZXJmYWNlcyBhbmQgdG8g
b2J0YWluCisgICAgICAgIGluc3RhbmNlcyBvZiB0aGVtIGZyb20gQ2hyb21lOgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
bnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6YWRkU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKworCisgICAg
ICAgIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGNoYW5nZWQgdG8gaW5oZXJpdCBmcm9t
IFNlbGVjdE1ldGhvZENsaWVudCBhbmQgU2VhcmNoTWV0aG9kQ2xpZW50CisgICAgICAgIHJlc3Bl
Y3RpdmVseS4gQ2hyb21lIGFuZCBDaHJvbWVDbGllbnQgY2hhbmdlZCB0byBwcm92aWRlIGluc3Rh
bmNlcyBvZiB0aG9zZSBjbGFzc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Lmg6
CisgICAgICAgICogcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgICogcGFnZS9D
aHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwp
OgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hV
SUNsaWVudCk6CisKKyAgICAgICAgUXQgaW1wbGVtZW50YXRpb24gaWYgU2VsZWN0VUlDbGllbnQg
YW5kIFNlYXJjaFVJQ2xpZW50IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gZmlsZQorICAgICAgICBQ
b3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmguIEZ1cnRoZXIgUXQgY29kZSBjbGVhbmlu
ZyBhcmUgY29taW5nIGluIGZ1dHVyZSBwYXRjaGVzLgorCisgICAgICAgICogV2ViQ29yZS5wcm86
CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51UXQ6OlBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVF0Ojp+UG9wdXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OmRpc2Nv
bm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51UXQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Qb3B1
cE1lbnVRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9w
dXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6U2VhcmNoUG9wdXBNZW51UXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OnNlbGVjdFVJQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICog
cGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgbWFjCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQpOgorCisgICAgICAgIGNocm9taXVtCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51OjpkaXNjb25uZWN0
Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVw
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50
KToKKworICAgICAgICBndGsKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgorCisgICAgICAgIHdpbgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51OjpzZWxlY3RVSUNsaWVudCk6CisKKyAgICAgICAgZWZsCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVF0OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9w
dXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6c2VsZWN0VUlD
bGllbnQpOgorCisKIDIwMTAtMDctMjYgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDdhNTEz
ZTIuLjA0MzNjOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTgyMiw2ICsxODIyLDcgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlXZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKIAlXZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uaCBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwK
KwlXZWJDb3JlL3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmggXAogCVdlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAgXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlXZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDM4OTliZjUuLmU3YTI0YTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMTM0LDYgKzEzNCw3IEBAIF9fWjRjb3JlUDIyRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogX19a
NGNvcmVQN0RPTU5vZGUKIF9fWjRjb3JlUDhET01SYW5nZQogX19aTjNKU0M4QmluZGluZ3M4SW5z
dGFuY2UxNm5ld1J1bnRpbWVPYmplY3RFUE5TXzlFeGVjU3RhdGVFCitfX1pON1dlYkNvcmU5UG9w
dXBNZW51QzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50
QzFFUktOU18xMkF0b21pY1N0cmluZ0ViYk4zV1RGMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dF
RUVpaWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVF
YgogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MjBzZXRDYW5IYXZlU2Nyb2xsYmFyc0ViCiBfX1pO
N1dlYkNvcmUxMFN0cmluZ0ltcGwxNGNyZWF0ZUNGU3RyaW5nRXYKQEAgLTM1Miw2ICszNTMsNyBA
QCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dEQxRXYKIF9fWk43V2ViQ29yZTE1SlNET01X
aW5kb3dCYXNlMThjb21tb25KU0dsb2JhbERhdGFFdgogX19aTjdXZWJDb3JlMTVTY3JvbGxBbGln
bm1lbnQxN2FsaWduQ2VudGVyQWx3YXlzRQogX19aTjdXZWJDb3JlMTVTY3JvbGxBbGlnbm1lbnQx
OWFsaWduVG9FZGdlSWZOZWVkZWRFCitfX1pON1dlYkNvcmUxNVNlYXJjaFBvcHVwTWVudUMxRVBO
U18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yMTNyaWdo
dFRydW5jYXRlRVJLTlNfNlN0cmluZ0VmUktOU180Rm9udEViCiBfX1pON1dlYkNvcmUxNVN0cmlu
Z1RydW5jYXRvcjE0Y2VudGVyVHJ1bmNhdGVFUktOU182U3RyaW5nRWZSS05TXzRGb250RWIKIF9f
Wk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yNXdpZHRoRVJLTlNfNlN0cmluZ0VSS05TXzRGb250
RWIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggZjUzZjQ1Ni4uN2YyMjQyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMzIsNiArMjAzMiw3IEBACiAgICAg
ICAgICAgICAncGFnZS9TZWN1cml0eU9yaWdpbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uaCcsCiAgICAgICAgICAgICAncGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCcs
CisgICAgICAgICAgICAncGFnZS9TZWxlY3RNZXRob2RDbGllbnQuaCcsCiAgICAgICAgICAgICAn
cGFnZS9TZXR0aW5ncy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGluZ3MuaCcsCiAgICAg
ICAgICAgICAncGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA5MDU0MjIuLjVkZWM2ZmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtMTYwOCw2ICsxNjA4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9QcmludENvbnRl
eHQuaCBcCiAgICAgcGFnZS9TY3JlZW4uaCBcCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbi5oIFwK
KyAgICBwYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIFwKICAgICBwYWdlL1NldHRpbmdzLmggXAog
ICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dC5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ0NzkxODIuLjA4ZWEzZjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjI0NzMsNiArMjI0NzMs
MTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxTZWxlY3RNZXRob2RDbGllbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTZXR0aW5ncy5jcHAiDQogCQkJCT4NCiAJCQk8
L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
Yjg4ZGEzLi5jNzJkYmFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDIsNyArNDIsNyBAQAogCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA2NUFENEYyMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NUFENEY2
MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjMwQjBDMkVEQTAwNUEy
QjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAgKi87IH07CiAJCTA2NUFENEY3MEIwQzJF
REEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEY0MEIwQzJFREEwMDVBMkIxRCAvKiBD
b250ZXh0TWVudUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBB
REQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi87IH07CisJCTA2NjhFMThCMEFERDk2MjQw
MDQxMjhFMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjY4RTE5MDBB
REQ5NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVw
TWVudU1hYy5tbSAqLzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9v
c2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZD
NzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjZDNzcyRDBBQjYwM0QyMDAyMzhDQzQg
LyogRmlsZUNob29zZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0g
Ki87IH07CkBAIC0zNTg0LDEyICszNTg0LDEyIEBACiAJCUFCNENCNEVCMEI4QkRBM0QwMDlGNDBC
MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjRDQjRFQTBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1M
U2VsZWN0RWxlbWVudEN1c3RvbS5oICovOyB9OwogCQlBQjY3RDFBODA5N0YzQUUzMDBGOTM5MkUg
LyogUmVuZGVyVGV4dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250
cm9sLmNwcCAqLzsgfTsKIAkJQUI2N0QxQTkwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRD
b250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
QjY3RDFBNzA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuaCAqLzsgfTsKLQkJ
QUI3MTcwODkwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcx
MjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oICovOyB9OworCQlBQjcxNzA4OTBCMzExODA4MDAxNzEy
M0UgLyogU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUI3
MTcwQTAwQjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDlGMEIzMTE5M0IwMDE3
MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCUFCQUYyMjA4MEMwM0IxQzcw
MEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQkFGMjIwNzBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tICov
OyB9OwogCQlBQkI1NDE5RTBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5QzBBQ0RE
RkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgKi87IH07CiAJCUFCQjU0MTlGMEFDRERG
RTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5RDBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlz
dEJveC5oICovOyB9OwotCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMx
Mjg3NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IH07CisJCUFCQzEy
ODc3MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAv
KiBQb3B1cE1lbnVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBQkRERkU3OTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZF
NzMwQTVDNkU2RjAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmNwcCAqLzsgfTsKIAkJQUJEREZF
N0EwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyog
UmVuZGVyTWVudUxpc3QuaCAqLzsgfTsKIAkJQUJGRTdFMTIwRDMyRkFGNjAwNjZGNEQyIC8qIE1l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAgKi87IH07CkBAIC01MDEwLDYgKzUwMTAsNyBAQAogCQlEMjNDQTU1RDBBQjBFQUFF
MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uaCAqLzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9
OwogCQlEMjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQw
MDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzlEMDBDOTExRkEyMjk3MDA2
MDQxRjIgLyogU2VsZWN0TWV0aG9kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDBDODExRkEyMjk3MDA2MDQxRjIgLyogU2VsZWN0TWV0
aG9kQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRB
IC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJD
OTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovOyB9OwogCQlE
QjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwpAQCAtMTA2ODEsNiArMTA2
ODIsNyBAQAogCQlEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyog
SlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNSYW5nZUV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQy
M0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDM5RDAwQzgxMUZBMjI5NzAwNjA0MUYyIC8qIFNlbGVjdE1ldGhvZENsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3RNZXRob2RDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRB
IC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8q
IEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMzc3LDYgKzEyMzc5LDcgQEAKIAkJ
CQlCQ0QwRTBGNzBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovLAogCQkJ
CUJDRDBFMEY4MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5oICovLAogCQkJCUJD
RDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKKwkJCQlE
MzlEMDBDODExRkEyMjk3MDA2MDQxRjIgLyogU2VsZWN0TWV0aG9kQ2xpZW50LmggKi8sCiAJCQkJ
MTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLywKIAkJCQlGNTg3ODYz
QTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApAQCAtMTk4NTYsNiArMTk4NTks
NyBAQAogCQkJCTUxNjJDN0Y1MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjcwN0E5QTExRUY2Nzk0MDBB
Q0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUQzOUQwMEM5MTFGQTIyOTcwMDYwNDFGMiAvKiBTZWxlY3RNZXRob2RDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5OTM4YmJjLi41OGM0OTg3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
RXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAw
OSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDgsNiArMTA5LDEwIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxzZTsgfQogCisg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNy
ZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIFBhc3NS
ZWZQdHI8U2VsZWN0VUlDbGllbnQ+KCk7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNo
VUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsg
cmV0dXJuIFBhc3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+KCk7IH0KKwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAgdmlydHVhbCBib29s
IHRhYnNUb0xpbmtzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGM2Njky
NS4uZDlkMzBhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzE4LDYgKzMx
OCwyMSBAQCBib29sIENocm9tZTo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpCiAgICAgcmV0
dXJuIG1fY2xpZW50LT5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7CiB9CiAKK2Jvb2wgQ2hy
b21lOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJu
IG1fY2xpZW50LT5zZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworfQorCitQ
YXNzUmVmUHRyPFNlbGVjdFVJQ2xpZW50PiBDaHJvbWU6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+Y3Jl
YXRlU2VsZWN0VUlDbGllbnQoY2xpZW50KTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVu
dD4gQ2hyb21lOjpjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KGNsaWVu
dCk7Cit9CisKIEludFJlY3QgQ2hyb21lOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LT53aW5kb3dSZXNpemVyUmVjdCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDUzNzQ2OGEu
LmI3MmE1YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0LDYgKzI1LDcgQEAKICNpbmNsdWRlICJG
aWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiSG9z
dFdpbmRvdy5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC00NCw2ICs0Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7
CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3Mg
U3RyaW5nOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGNsYXNzIE5vdGlmaWNhdGlv
blByZXNlbnRlcjsKQEAgLTEyMiw2ICsxMjUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKICAgICAg
ICAgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7CiAKKyAgICAgICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTZWxlY3RVSUNsaWVudD4gY3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hVSUNs
aWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAg
ICAgICAgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCiAgICAgICAgIHZvaWQg
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1v
ZGlmaWVyRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDc5NWIyNWMuLjhkYTEzY2EgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNyw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSFRN
TFBhcnNlclF1aXJrcy5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJTY3Jv
bGxUeXBlcy5oIgorI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC01Myw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQ
b3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5nOwogICAgIGNsYXNzIFdpZGdldDsKIApA
QCAtMTI1LDYgKzEyOCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgdGFic1RvTGlua3MoKSBjb25zdCA9IDA7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgPSAwOworICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFVJQ2xp
ZW50PiBjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisK
ICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOwog
CiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NlbGVjdE1ldGhvZENsaWVudC5oIGIvV2ViQ29yZS9wYWdlL1NlbGVjdE1ldGhv
ZENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmODIwYzYKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU2VsZWN0TWV0aG9kQ2xpZW50LmgKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBzZWxlY3QgZWxlbWVu
dCByZW5kZXJlciBpbiBXZWJDb3JlLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlbGVj
dE1ldGhvZENsaWVudF9oCisjZGVmaW5lIFNlbGVjdE1ldGhvZENsaWVudF9oCisKKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdG9t
aWNTdHJpbmc7CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBJbnRSZWN0OworCitjbGFzcyBTZWxl
Y3RVSUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlbGVjdFVJQ2xpZW50PiB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+U2VsZWN0VUlDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBzaG93
KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaGlkZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSA9IDA7Cit9OworCitjbGFz
cyBTZWFyY2hVSUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlYXJjaFVJQ2xpZW50PiB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+U2VhcmNoVUlDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgU2Vs
ZWN0VUlDbGllbnQqIHNlbGVjdFVJQ2xpZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KSA9IDA7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSA9IDA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBTZWxlY3RNZXRob2RDbGllbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Q
b3B1cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKaW5kZXggZDlkMjc0MC4u
NTQ5NjU3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyNCw3IEBACiAKICNpbmNsdWRl
ICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2Vs
ZWN0TWV0aG9kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC00MCwxMCArNDIsNiBAQCBjbGFzcyBOU1BvcFVwQnV0
dG9uQ2VsbDsKIHR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKIHR5cGVkZWYgc3RydWN0IEhE
Q19fKiBIREM7CiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFU
Rk9STShRVCkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsK
LX0KICNlbGlmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7
CiB0eXBlZGVmIHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07CkBAIC03MSw3ICs2OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIFNjcm9sbGJh
cjsKIAotY2xhc3MgUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PgorY2xh
c3MgUG9wdXBNZW51IDogcHVibGljIFNlbGVjdFVJQ2xpZW50CiAjaWYgUExBVEZPUk0oV0lOKQog
ICAgICAgICAgICAgICAgICwgcHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQKICNlbmRpZgpAQCAtODAs
MjAgKzc4LDE2IEBAIGNsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVu
dT4KICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBvcHVwTWVudT4g
Y3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51KGNsaWVudCkpOyB9CisgICAgUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOwogICAg
IH5Qb3B1cE1lbnUoKTsKLSAgICAKLSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9w
dXBDbGllbnQgPSAwOyB9CiAKLSAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCk7Ci0gICAgdm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21F
bGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVu
dCgpOwogICAgIAogICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4g
bV9wb3B1cENsaWVudDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKLQogI2lmIFBMQVRGT1JNKFdJTikKICAgICBTY3JvbGxiYXIqIHNjcm9sbGJh
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CiAKQEAgLTEzNCw5ICsxMjgs
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7IH0KICAgICB2b2lkIHNldFNjcm9sbGJh
ckNhcHR1cmluZ01vdXNlKGJvb2wgYikgeyBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlID0gYjsg
fQogI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICBQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7
CiAgICAgCiBwcml2YXRlOgogICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKQEAg
LTE0Niw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9wdWxhdGUoKTsKIAogICAgIFJl
dGFpblB0cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKLSNlbGlmIFBMQVRGT1JNKFFUKQot
ICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAg
ICAvLyBTY3JvbGxCYXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9s
bGJhciopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKaW5kZXggNDI4NWNkZi4uOGUxMjll
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiwyMyArMjMsMjMgQEAKICNk
ZWZpbmUgU2VhcmNoUG9wdXBNZW51X2gKIAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1
ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdG9taWNTdHJpbmc7CiAKLWNsYXNzIFNlYXJjaFBv
cHVwTWVudSA6IHB1YmxpYyBQb3B1cE1lbnUgeworY2xhc3MgU2VhcmNoUG9wdXBNZW51IDogcHVi
bGljIFNlYXJjaFVJQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsgfQotCi0gICAgdm9pZCBzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOwotICAgIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLQotICAgIGJvb2wg
ZW5hYmxlZCgpOworICAgIFNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB2
aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVudCgpOworICAgIHZpcnR1YWwgdm9p
ZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRl
bXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CiAgICAgCiBwcml2YXRlOgotICAgIFNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICBQb3B1cE1lbnUgbV9wb3B1cDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51
Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1
bS5jcHAKaW5kZXggNDcwMWE3NS4uMGQyODE2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMzQx
LDYgKzEzNDIsMTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICBoaWRlKCk7CiB9CiAK
K3ZvaWQgUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50
ID0gMDsKK30KKwogLy8gVGhlIE1hYyBDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24g
ZXh0ZXJuYWwgY29udHJvbCAoYSBDb2NvYSBjb250cm9sKQogLy8gdG8gZGlzcGxheSwgaGFuZGxl
IHRoZSBpbnB1dCB0cmFja2luZyBhbmQgbWVudSBpdGVtIHNlbGVjdGlvbiBmb3IgdGhlIHBvcHVw
LgogLy8gV2luZG93cyBhbmQgTGludXggQ2hyb21pdW0gbGV0IG91ciBXZWJLaXQgcG9ydCBoYW5k
bGUgdGhlIGRpc3BsYXksIHdoaWxlCkBAIC0xMzY3LDkgKzEzNzMsNCBAQCB2b2lkIFBvcHVwTWVu
dTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIHAucG9wdXAtPmxpc3RCb3goKS0+dXBkYXRlRnJv
bUVsZW1lbnQoKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkgCi17IAotICAgIHJldHVybiBmYWxzZTsgCi19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBN
ZW51Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1l
bnVDaHJvbWl1bS5jcHAKaW5kZXggODliZmRkZC4uNjgzZDNiMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0zNywxMCArMzgsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
Ci0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAK
K1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAg
ICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIGJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkK
IHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Q
b3B1cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcApp
bmRleCA5ZGM2OTg2Li44Yzg5OGMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Q
b3B1cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5j
cHAKQEAgLTMsNiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0
byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBF
bGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDQsNiArNDUs
MTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICBoaWRlKCk7CiB9CiAKK3ZvaWQgUG9w
dXBNZW51UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOwor
fQorCiB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcq
IHZpZXcsIGludCBpbmRleCkKIHsKICAgICBBU1NFUlQobV9wb3B1cENsaWVudCk7CkBAIC02OCw5
ICs3NCw0IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgY2xpZW50
KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9v
bCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNo
UG9wdXBNZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVm
bC5jcHAKaW5kZXggZDE4MTc0Zi4uOWM1ZWIyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9T
ZWFyY2hQb3B1cE1lbnVFZmwuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogIENvcHlyaWdodCAoQykg
MjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogIENvcHlyaWdodCAo
QykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwpAQCAtMjYsMTEgKzI3LDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNl
YXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQot
ICAgIDogUG9wdXBNZW51KGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQb3B1cE1lbnU6OnNl
bGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIHZvaWQgU2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUG9wdXBNZW51R3RrLmNwcAppbmRleCBiZjhjZmI0Li4yMWYzZDZkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KICAqIENv
cHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtNDcsNiArNDgsMTEgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICB9
CiB9CiAKK3ZvaWQgUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVw
Q2xpZW50ID0gMDsKK30KKwogdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVj
dCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsK
QEAgLTEyMSwxMSArMTI3LDYgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkK
ICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkp
OwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQot
ewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIFBvcHVwTWVudTo6bWVudUl0ZW1BY3RpdmF0
ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudSogdGhhdCkKIHsKICAgICBBU1NFUlQodGhh
dC0+Y2xpZW50KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5j
cHAKaW5kZXggZmJhYTUyNy4uYzJiNjIwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFy
Y2hQb3B1cE1lbnVHdGsuY3BwCkBAIC0xLDQgKzEsNiBAQAogLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgog
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCiAgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0yMiwxMSArMjQsMTcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorICAgIDogbV9wb3B1cChjbGll
bnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorU2VsZWN0VUlDbGllbnQqIFNlYXJj
aFBvcHVwTWVudTo6c2VsZWN0VUlDbGllbnQoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30K
KworCiB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCmluZGV4IDZjMDY3YjkuLjIyNzMwMDQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KQEAgLTQ5LDYgKzQ5LDExIEBAIFBv
cHVwTWVudTo6flBvcHVwTWVudSgpCiAgICAgICAgIFttX3BvcHVwLmdldCgpIHNldENvbnRyb2xW
aWV3Om5pbF07CiB9CiAKK3ZvaWQgUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAg
ICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwogdm9pZCBQb3B1cE1lbnU6OmNsZWFyKCkKIHsKICAg
ICBpZiAobV9wb3B1cCkKQEAgLTIwMyw5ICsyMDgsNCBAQCB2b2lkIFBvcHVwTWVudTo6dXBkYXRl
RnJvbUVsZW1lbnQoKQogewogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KaW5kZXggMjYyNzM0ZC4uZjdjMjZkYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQpAQCAtMjUsMTAgKzI1
LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkK
KyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9w
dXBNZW51OjpzZWxlY3RVSUNsaWVudCgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCiBz
dGF0aWMgTlNTdHJpbmcqIGF1dG9zYXZlS2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBy
ZXR1cm4gW0AiY29tLmFwcGxlLldlYktpdC5zZWFyY2hGaWVsZDoiIHN0cmluZ0J5QXBwZW5kaW5n
U3RyaW5nOm5hbWVdOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVR
dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAppbmRleCAzMTViODkx
Li43MjZhOGVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcApAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIK
KyNpbmNsdWRlICJQb3B1cE1lbnVRdC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50UXQuaCIKQEAgLTM1LDE4ICszNSwyMyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQor
UG9wdXBNZW51UXQ6OlBvcHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDog
bV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3BvcHVwKDApCiB7CiB9CiAKLVBvcHVwTWVu
dTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVRdDo6flBvcHVwTWVudVF0KCkKIHsKICAgICBkZWxl
dGUgbV9wb3B1cDsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVj
dCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudVF0OjpkaXNjb25u
ZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1l
bnVRdDo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKIHsKICAgICBDaHJvbWVDbGllbnRRdCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hy
b21lQ2xpZW50UXQqPigKICAgICAgICAgdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCkpOwpAQCAtNjcsMTkgKzcyLDE0IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0
IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogCiB9CiAKLXZvaWQg
UG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OmhpZGUoKQogewogICAgIG1fcG9w
dXAtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKLXsK
LSAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5k
ZXgoKSk7Ci19Ci0KLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCit2b2lkIFBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIG1fcG9wdXBDbGllbnQtPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50
LT5zZWxlY3RlZEluZGV4KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1BvcHVwTWVudVF0LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBjOWEzZQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVRdF9oCisjZGVmaW5lIFBvcHVwTWVudVF0
X2gKKworI2luY2x1ZGUgIlNlbGVjdE1ldGhvZENsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKK2NsYXNz
IFNjcm9sbGJhcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51UXQg
OiBwdWJsaWMgU2VsZWN0VUlDbGllbnQgeworcHVibGljOgorICAgIFBvcHVwTWVudVF0KFBvcHVw
TWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVRdCgpOworCisgICAgdmlydHVhbCB2b2lkIHNo
b3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2
b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCisvLyAgICBQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworcHJpdmF0ZToKKyAg
ICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgUXRBYnN0cmFjdFdlYlBvcHVw
KiBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51UXRfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKaW5kZXggZGFkNDk5Ny4uNWY2ZjYxOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCkBAIC02Myw3ICs2Myw3IEBA
IHB1YmxpYzoKICAgICBRRm9udCBmb250KCkgeyByZXR1cm4gbV9wb3B1cENsaWVudC0+bWVudVN0
eWxlKCkuZm9udCgpLmZvbnQoKTsgfQogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQb3B1
cE1lbnU7CisgICAgZnJpZW5kIGNsYXNzIFBvcHVwTWVudVF0OwogICAgIFBvcHVwTWVudUNsaWVu
dCogbV9wb3B1cENsaWVudDsKICAgICBRV2ViUGFnZUNsaWVudCogbV9wYWdlQ2xpZW50OwogICAg
IGludCBtX2N1cnJlbnRJbmRleDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2Vh
cmNoUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVR
dC5jcHAKaW5kZXggMTg3YTVkZS4uYzllMWViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFy
Y2hQb3B1cE1lbnVRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IEMgMjAw
NiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0xOCwyNiArMTksMjkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLSNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnVRdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNl
YXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQot
ICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1l
bnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQorewor
fQorCitTZWxlY3RVSUNsaWVudCogU2VhcmNoUG9wdXBNZW51UXQ6OnNlbGVjdFVJQ2xpZW50KCkK
IHsKKyAgICByZXR1cm4gJm1fcG9wdXA7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
KQordm9pZCBTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3Ry
aW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi1ib29sIFNlYXJjaFBvcHVw
TWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudVF0OjplbmFibGVkKCkKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTMwMTNkCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVRdF9oCisj
ZGVmaW5lIFNlYXJjaFBvcHVwTWVudVF0X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCisj
aW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVRdCA6IHB1Ymxp
YyBTZWFyY2hVSUNsaWVudCB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51UXQoUG9wdXBN
ZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFNlbGVjdFVJQ2xpZW50KiBzZWxlY3RVSUNsaWVu
dCgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1
YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7Cisg
ICAgCitwcml2YXRlOgorICAgIFBvcHVwTWVudVF0IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBTZWFyY2hQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cAppbmRleCA0YmM2ZGM3Li4xOTg0MmM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
Ny0yMDA5IFRvcmNoIE1vYmlsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0xMTksNiArMTIwLDExIEBAIExQQ1RTVFIgUG9wdXBNZW51Ojpwb3B1cENsYXNzTmFtZSgp
CiAgICAgcmV0dXJuIGtQb3B1cFdpbmRvd0NsYXNzTmFtZTsKIH0KIAordm9pZCBQb3B1cE1lbnU6
OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCiB2b2lk
IFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBp
bmRleCkKIHsKICAgICBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUociwgdmlldyk7CkBAIC01NDks
MTEgKzU1NSw2IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAg
IDo6VXBkYXRlV2luZG93KG1fcG9wdXApOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAgcmV0dXJuIHRydWU7IAotfQotCiBjb25z
dCBpbnQgc2VwYXJhdG9yUGFkZGluZyA9IDQ7CiBjb25zdCBpbnQgc2VwYXJhdG9ySGVpZ2h0ID0g
MTsKIHZvaWQgUG9wdXBNZW51OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMg
aGRjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2lu
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKaW5kZXgg
ZjI3MDliYi4uNDFhNzY5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNo
UG9wdXBNZW51V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1l
bnVXaW4uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiwxMCAr
MjcsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKK1NlbGVjdFVJQ2xpZW50KiBTZWFyY2hQ
b3B1cE1lbnU6OnNlbGVjdFVJQ2xpZW50KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisK
IGJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxNzc5MjFjLi4xNzZmNzNkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyTWVudUxpc3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTMzLDExICszNCwxMSBAQAogI2lu
Y2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIKICNp
bmNsdWRlICJPcHRpb25Hcm91cEVsZW1lbnQuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNp
bmNsdWRlICJSZW5kZXJCUi5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1
ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IlNlbGVjdE1ldGhvZENsaWVudC5oIgogI2luY2x1ZGUgPG1hdGguaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKQEAgLTg4LDggKzg5LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5u
ZXJTdHlsZSgpCiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVu
Z3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7
CiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgp
LT5wb3B1cEludGVybmFsUGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVy
QmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50
ZXJuYWxQYWRkaW5nQm90dG9tKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgICAgICAKLSAgICBpZiAo
UG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CisKKyAgICBpZiAo
ZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKSkgewogICAgICAgICAvLyBJdGVtcyBpbiB0aGUgcG9wdXAgd2lsbCBub3QgcmVz
cGVjdCB0aGUgQ1NTIHRleHQtYWxpZ24gYW5kIGRpcmVjdGlvbiBwcm9wZXJ0aWVzLAogICAgICAg
ICAvLyBzbyB3ZSBtdXN0IGFkanVzdCBvdXIgb3duIHN0eWxlIHRvIG1hdGNoLgogICAgICAgICBt
X2lubmVyQmxvY2stPnN0eWxlKCktPnNldFRleHRBbGlnbihMRUZUKTsKQEAgLTI3OCw3ICsyNzks
NyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUg
c2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygp
OwogICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IFBvcHVwTWVudTo6Y3JlYXRl
KHRoaXMpOworICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y3JlYXRlU2VsZWN0VUlDbGllbnQodGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0g
dG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3Bv
cHVwSXNWaXNpYmxlID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXgg
ZDcyZTFhOS4uM2YwMWUzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zNSw4
ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9wdXBNZW51OwogY2xh
c3MgUmVuZGVyVGV4dDsKK2NsYXNzIFNlbGVjdFVJQ2xpZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJ
U1RCT1hfUkVOREVSSU5HKQogY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxl
eGlibGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CkBAIC0xMzEsNyArMTMxLDcg
QEAgcHJpdmF0ZToKIAogICAgIGludCBtX2xhc3RTZWxlY3RlZEluZGV4OwogCi0gICAgUmVmUHRy
PFBvcHVwTWVudT4gbV9wb3B1cDsKKyAgICBSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IG1fcG9wdXA7
CiAgICAgYm9vbCBtX3BvcHVwSXNWaXNpYmxlOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZDBhYjEwNy4uYzVlYTli
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBU
b3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1v
YmlsZS5jb20vKSAKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxl
Y3Rvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAt
MzgsNyArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQ
b3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWxlY3RNZXRob2RDbGllbnQuaCIKICNpbmNsdWRlICJT
ZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJT
aW1wbGVGb250RGF0YS5oIgpAQCAtNjIsNyArNjQsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNl
aAogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVw
LT5kaXNjb25uZWN0Q2xpZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xp
ZW50KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IDA7CiAg
ICAgfQogIApAQCAtMTA3LDcgKzEwOSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0g
YXV0b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJj
aFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNo
UG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVu
dCh0aGlzKTsKIAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBt
X3JlY2VudFNlYXJjaGVzKTsKIH0KQEAgLTEyNSw3ICsxMjcsNyBAQCB2b2lkIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdl
KCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hVSUNsaWVudCh0aGlzKTsKIAogICAgIGlmICghbV9z
ZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMTQgKzE0Nywx
NCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAg
ICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNo
ZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3coYWJzb2x1dGVCb3VuZGluZ0Jv
eFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAt
PnNlbGVjdFVJQ2xpZW50KCktPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRv
Y3VtZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6aGlkZVBvcHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkp
OwogICAgIGlmIChtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwLT5oaWRlKCk7
CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNlbGVjdFVJQ2xpZW50KCktPmhpZGUoKTsKIH0KIAog
dm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKQEAg
LTY4NSw3ICs2ODcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRl
RnJvbUVsZW1lbnQoKQogICAgIH0KIAogICAgIGlmIChtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKQot
ICAgICAgICBtX3NlYXJjaFBvcHVwLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICBtX3Nl
YXJjaFBvcHVwLT5zZWxlY3RVSUNsaWVudCgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2
b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0
LCBpbnQgZW5kKQpAQCAtODgzLDcgKzg4NSw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVuCiAg
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAg
ICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1f
c2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQ
b3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1
cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFVJQ2xpZW50KHRo
aXMpOwogICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhu
YW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA5MmVj
YWRkLi5jYjJhY2JjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8v
d3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMiw3ICszMyw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0RmllbGRTcGVl
Y2hCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50Owog
Y2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKLWNsYXNzIFNlYXJjaFBvcHVw
TWVudTsKK2NsYXNzIFNlYXJjaFVJQ2xpZW50OwogY2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBj
bGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudDsKIApAQCAtMTU0LDcgKzE1NSw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIFRpbWVyPFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4gbV9z
ZWFyY2hFdmVudFRpbWVyOwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IG1fc2VhcmNoUG9w
dXA7CisgICAgUmVmUHRyPFNlYXJjaFVJQ2xpZW50PiBtX3NlYXJjaFBvcHVwOwogICAgIFZlY3Rv
cjxTdHJpbmc+IG1fcmVjZW50U2VhcmNoZXM7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwMzA5OTUy
Li5mZDFhYjIzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jpbmcg
aW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNz
ZXMgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1l
bnVMaXN0CisgICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBv
ZiBjbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1l
bnUgbm93IGluaGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBp
bmhlcml0cyBmcm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNo
VUlDbGllbnQgaW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2Vz
IG9mIGNvcmUgcGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5l
dworICAgICAgICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51LgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNy
ZWF0ZVNlbGVjdFVJQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisKIDIwMTAtMDctMjYgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IGQ0M2Q4OGEuLjdlYmExMDEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01NCw4ICs1NSwxMCBAQAog
I2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBv
cHVwTWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZS5o
IgogI2lmIFVTRShWOCkKICNpbmNsdWRlICJWOFByb3h5LmgiCkBAIC03NjUsNCArNzY4LDIwIEBA
IHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5v
ZGUqIG5vZGUpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmV4aXRGdWxsc2NyZWVuRm9y
Tm9kZShXZWJOb2RlKG5vZGUpKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJ
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
CitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBDaHJvbWVDbGllbnRJbXBsOjpj
cmVhdGVTZWxlY3RVSUNsaWVudChXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvcmU6OlBvcHVwTWVudShjbGllbnQp
KTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gQ2hyb21lQ2xpZW50
SW1wbDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnUoY2xpZW50KSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGU4MjQzODEuLjIzZWE5YmMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMyLDYgKzMzLDkg
QEAKICNkZWZpbmUgQ2hyb21lQ2xpZW50SW1wbF9oCiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRD
aHJvbWl1bS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgIlNlbGVj
dE1ldGhvZENsaWVudC5oIgorCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2li
aWxpdHlPYmplY3Q7CkBAIC0xNjUsNiArMTY5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1
cnNvcihjb25zdCBXZWJDdXJzb3JJbmZvJiBjdXJzb3IpOwogICAgIHZvaWQgc2V0Q3Vyc29yRm9y
UGx1Z2luKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1cnNvcik7CiAKKyAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZv
KFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGZj
OTQwZDguLjM2YzVlN2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHBy
ZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNl
bGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlz
dAorICAgICAgICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xh
c3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5v
dyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJp
dHMgZnJvbSBTZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRl
IHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xp
ZW50IGluc3RhbmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBj
b3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAg
ICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNl
YXJjaFBvcHVwTWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVm
bDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
RWZsOjpjcmVhdGVTZWFyY2hVSUNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmg6CisKIDIwMTAtMDctMjMgIFJhZmFlbCBBbnRvZ25vbGxpICA8YW50b2du
b2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVz
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4
IGZmYmQ2NDIuLjBmOGQxNjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHAKQEAgLTUsNiArNSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGll
Z28gR29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRl
ZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDcsNiAr
NDgsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJl
cy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCkBAIC01MTMsNCArNTE1LDE5IEBAIHZvaWQg
Q2hyb21lQ2xpZW50RWZsOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1l
LCBjb25zdCBWaWV3cG9ydEFyCiAgICAgZXdrX3ZpZXdfdmlld3BvcnRfc2V0KG1fdmlldywgYXJn
dW1lbnRzLndpZHRoLCBhcmd1bWVudHMuaGVpZ2h0LCBhcmd1bWVudHMuaW5pdGlhbFNjYWxlLCBh
cmd1bWVudHMubWluaW11bVNjYWxlLCBhcmd1bWVudHMubWF4aW11bVNjYWxlLCBhcmd1bWVudHMu
dXNlclNjYWxhYmxlKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1Jl
ZlB0cjxTZWxlY3RVSUNsaWVudD4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWxlY3RVSUNsaWVu
dChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBvcHVwTWVudShjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4g
Q2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWFyY2hVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudShj
bGllbnQpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmgKaW5kZXggY2U4YWJkMS4uNjEzOGUwNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAy
MDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTEzNyw2ICsxMzgsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJiBhcmd1bWVudHMpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlbGVj
dFVJQ2xpZW50PiBjcmVhdGVTZWxlY3RVSUNsaWVudChQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xp
ZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsK
ICAgICBLVVJMIG1faG92ZXJlZExpbmtVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MDNiZjEyLi40NGUyMGY5IDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA3LTIzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29z
dGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJL
aXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5
MgorCisgICAgICAgIE5ldyBwdXJlIHZpcnR1YWwgY2xhc3NlcyBTZWxlY3RVSUNsaWVudCBhbmQg
U2VhcmNoVUlDbGllbnQgYXJlIHVzZWQgYnkgUmVuZGVyTWVudUxpc3QKKyAgICAgICAgYW5kIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZSBpbnN0ZWFkIG9mIGNsYXNzZXMgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCisgICAgICAgIFBvcHVwTWVudSBub3cgaW5oZXJpdHMgZnJvbSBT
ZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoUG9wdXBNZW51IGluaGVyaXRzIGZyb20gU2VhcmNoVUlD
bGllbnQuCisKKyAgICAgICAgQ2hyb21lIGNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3Ig
cHJvdmlkaW5nIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hVSUNsaWVudCBpbnN0YW5jZXMuCisg
ICAgICAgIENocm9tZUNsaWVudCBkZXJpdmVkIGNsYXNzZXMgb2YgY29yZSBwbGF0Zm9ybXMgaGF2
ZSBiZWVuIG1vZGlmaWVkIHRvIGltcGxlbWVudCB0aGUgbmV3CisgICAgICAgIG1ldGhvZHMgYW5k
IHRvIHJldHVybiBpbnN0YW5jZXMgb2YgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTE2
ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKaW5kZXggODg0NDBiYS4uODNhNWQ2MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwOCBOdWFudGkgTHRkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxn
bnNAZ25vbWUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYg
KzMyLDggQEAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgog
I2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCkBAIC02MTYsNCArNjE5LDE5IEBA
IHZvaWQgQ2hyb21lQ2xpZW50OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWUqIGZyCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZp
ZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwgd2ViRnJhbWUpOwog
fQogCitib29sIENocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQoreworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVj
dFVJQ2xpZW50PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
YXJjaFVJQ2xpZW50PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBjZTVjNWE3Li5iMjAxNmE2
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw2ICsyMyw5IEBA
CiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2VsZWN0TWV0aG9kQ2xpZW50LmgiCisK
IAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsKIApAQCAtMTIy
LDYgKzEyNiwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNv
cmU6Okdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9s
b2NhdGlvbiopOwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vs
ZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlD
bGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNv
bnN0OworCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3Owog
ICAgICAgICBXZWJDb3JlOjpLVVJMIG1faG92ZXJlZExpbmtVUkw7CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDdiZDZiNDcuLjVj
NTE5M2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxs
dWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9u
IHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyNTkyCisKKyAgICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xp
ZW50IGFuZCBTZWFyY2hVSUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAg
ICBhbmQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1
cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0
cyBmcm9tIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBT
ZWFyY2hVSUNsaWVudC4KKworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNp
YmxlIGZvciBwcm92aWRpbmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3Rh
bmNlcy4KKyAgICAgICAgQ2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRm
b3JtcyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0
aG9kcyBhbmQgdG8gcmV0dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVudCk6CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToKKwogMjAxMC0wNy0yMiAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFj
aG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggNzA3ZDA4MC4uNWYzZDNjOCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvQ2hyb21l
Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZWxlY3RNZXRob2RD
bGllbnQuaD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAKIEBjbGFzcyBXZWJWaWV3OwpAQCAt
MTY3LDYgKzE2OSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CiAK
KyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNl
bGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVudD4gY3JlYXRlU2VhcmNoVUlDbGll
bnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV2Vi
VmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggZWI1NjI0MC4uNTZkZjZlMiAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTYwLDkgKzYwLDExIEBACiAjaW1wb3J0
IDxXZWJDb3JlL0ljb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmlu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4K
QEAgLTcyNCw2ICs3MjYsMjEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvcm1EaWRCbHVyKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBA
c2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KG5vZGUpKSk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNlbGVjdFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9wdXBNZW51KGNsaWVudCkpOwor
fQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFVJQ2xpZW50PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
KGNsaWVudCkpOworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNzc5Y2FhMC4uYjlkYmViYSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTAtMDctMjMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAg
ICAgICAgTmV3IHB1cmUgdmlydHVhbCBjbGFzc2VzIFNlbGVjdFVJQ2xpZW50IGFuZCBTZWFyY2hV
SUNsaWVudCBhcmUgdXNlZCBieSBSZW5kZXJNZW51TGlzdAorICAgICAgICBhbmQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lIGluc3RlYWQgb2YgY2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudS4KKyAgICAgICAgUG9wdXBNZW51IG5vdyBpbmhlcml0cyBmcm9tIFNlbGVjdFVJ
Q2xpZW50IGFuZCBTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdHMgZnJvbSBTZWFyY2hVSUNsaWVudC4K
KworICAgICAgICBDaHJvbWUgY2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGluc3RhbmNlcy4KKyAgICAgICAg
Q2hyb21lQ2xpZW50IGRlcml2ZWQgY2xhc3NlcyBvZiBjb3JlIHBsYXRmb3JtcyBoYXZlIGJlZW4g
bW9kaWZpZWQgdG8gaW1wbGVtZW50IHRoZSBuZXcKKyAgICAgICAgbWV0aG9kcyBhbmQgdG8gcmV0
dXJuIGluc3RhbmNlcyBvZiBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDA5LTEwLTMw
ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IDJjNjRhNzguLjA2MTI3MTQgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysr
IGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
QEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudFF0
LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKICNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkK
ICNpbmNsdWRlICJRdE1hZW1vV2ViUG9wdXAuaCIKICNlbHNlCkBAIC01Miw2ICs1NCw3IEBACiAj
ZW5kaWYKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRo
ZW1lLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51UXQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV2lu
ZG93RmVhdHVyZXMuaCIKQEAgLTY0NCw0ICs2NDcsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6
ZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRB
cmcKICAgICBlbWl0IG1fd2ViUGFnZS0+dmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQoaGludHMpOwog
fQogCitib29sIENocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFNlbGVjdFVJQ2xp
ZW50PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVRdChj
bGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hVSUNsaWVudD4gQ2hyb21lQ2xpZW50UXQ6
OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51UXQoY2xpZW50KSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmgKaW5kZXggNzBiNGEyNS4uYmUwMDg0NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0xMTAsNiArMTExLDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCisgICAgICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VsZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Vh
cmNoVUlDbGllbnQ+IGNyZWF0ZVNlYXJjaFVJQ2xpZW50KFBvcHVwTWVudUNsaWVudCopIGNvbnN0
OworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2VjNDFj
Ny4uMmNiNmE4YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMyAgTHVpeiBBZ29zdGlu
aSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFy
YXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBOZXcgcHVyZSB2aXJ0dWFsIGNsYXNzZXMgU2VsZWN0
VUlDbGllbnQgYW5kIFNlYXJjaFVJQ2xpZW50IGFyZSB1c2VkIGJ5IFJlbmRlck1lbnVMaXN0Cisg
ICAgICAgIGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5zdGVhZCBvZiBjbGFzc2Vz
IFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51LgorICAgICAgICBQb3B1cE1lbnUgbm93IGlu
aGVyaXRzIGZyb20gU2VsZWN0VUlDbGllbnQgYW5kIFNlYXJjaFBvcHVwTWVudSBpbmhlcml0cyBm
cm9tIFNlYXJjaFVJQ2xpZW50LgorCisgICAgICAgIENocm9tZSBjbGllbnQgd2FzIG1hZGUgcmVz
cG9uc2libGUgZm9yIHByb3ZpZGluZyBTZWxlY3RVSUNsaWVudCBhbmQgU2VhcmNoVUlDbGllbnQg
aW5zdGFuY2VzLgorICAgICAgICBDaHJvbWVDbGllbnQgZGVyaXZlZCBjbGFzc2VzIG9mIGNvcmUg
cGxhdGZvcm1zIGhhdmUgYmVlbiBtb2RpZmllZCB0byBpbXBsZW1lbnQgdGhlIG5ldworICAgICAg
ICBtZXRob2RzIGFuZCB0byByZXR1cm4gaW5zdGFuY2VzIG9mIFBvcHVwTWVudSBhbmQgU2VhcmNo
UG9wdXBNZW51LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWxlY3RVSUNsaWVu
dCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFVJQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMC0wNy0yMiAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2ll
aiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDczNTMyYTYuLjZlMzc4ZGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDkgKzU2
LDEyIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1
cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjcHJhZ21hIHdh
cm5pbmcocG9wKQogCisKICNpbmNsdWRlIDx0Y2hhci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKQEAgLTg2OCwzICs4NzIsMTggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxs
c2NyZWVuRm9yTm9kZShOb2RlKikKIAogI2VuZGlmCiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VsZWN0VUlDbGllbnQ+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VsZWN0VUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpQb3B1cE1lbnUoY2xp
ZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoVUlDbGllbnQ+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnUoY2xpZW50KSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IGU3ODQ1YTkuLjU2ZjBhYTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNyArMjgsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3RNZXRob2RDbGllbnQu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAKQEAgLTExMiw2ICsxMTUsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHByaW50
KFdlYkNvcmU6OkZyYW1lKik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vs
ZWN0VUlDbGllbnQ+IGNyZWF0ZVNlbGVjdFVJQ2xpZW50KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hVSUNsaWVu
dD4gY3JlYXRlU2VhcmNoVUlDbGllbnQoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CisKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogI2VuZGlm
Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="50795"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62635</attachid>
            <date>2010-07-26 18:20:14 -0700</date>
            <delta_ts>2010-07-27 12:11:00 -0700</delta_ts>
            <desc>just a test. please do not review.</desc>
            <filename>0001-patch.patch</filename>
            <type>text/plain</type>
            <size>102871</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBiNWUxNDI3NmQyOGIzMDc2MDNkNGNhNDQ3OTVkMTk5Y2FkMjdkYTg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjIgSnVsIDIwMTAgMTU6NTc6NTUgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBwYXRjaAoKLS0tCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDEyICstCiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgMTQgKystCiBXZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKwogV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrLQogV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsK
IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
OSArCiBXZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oICAgICAgICAgICAgICAgICAgICAgICB8
ICAxNzYgKy0tLS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBN
ZW51LmggICAgICAgICAgICAgICAgIHwgICAyMSArLS0KIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwICAgIHwgICAyMyArKy0tCiBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmggICAgICB8ICAgMTkgKysKIC4uLi9wbGF0Zm9y
bS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAgIHwgICAxOCArKy0KIC4uLi9w
bGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oICAgIHwgICA0NCArKysr
KwogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcCAgICAgICAgICAgICAgfCAg
IDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaCAgICAgICAgICAgICAg
ICB8ICAgNTQgKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
Y3BwICAgICAgICB8ICAgMTggKystCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1l
bnVFZmwuaCAgICAgICAgICB8ICAgNDQgKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVw
TWVudUd0ay5jcHAgICAgICAgICAgICAgIHwgICAyNSArKy0tCiBXZWJDb3JlL3BsYXRmb3JtL2d0
ay9Qb3B1cE1lbnVHdGsuaCAgICAgICAgICAgICAgICB8ICAgNjcgKysrKysrKysKIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAgICAgICAgIHwgICAxOSArKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oICAgICAgICAgIHwgICA0NCAr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmggICAgICAgICAgICAgICAg
fCAgIDYyICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSAgICAg
ICAgICAgICAgIHwgICAyMiArKy0KIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5oICAgICAgICAgIHwgICA0NCArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNo
UG9wdXBNZW51TWFjLm1tICAgICAgICAgfCAgIDE4ICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
b3B1cE1lbnVRdC5jcHAgICAgICAgICAgICAgICAgfCAgIDI1ICsrLS0KIFdlYkNvcmUvcGxhdGZv
cm0vcXQvUG9wdXBNZW51UXQuaCAgICAgICAgICAgICAgICAgIHwgICA0OSArKysrKysKIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggICAgICAgICAgIHwgICAgMiArLQog
V2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgICAgICAgICAgfCAgIDIw
ICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oICAgICAgICAgICAg
fCAgIDQ0ICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwICAgICAg
ICAgICAgICB8ICAgNjAgKysrLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmggICAgICAgICAgICAgICAgfCAgIDk4ICsrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3dp
bi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwICAgICAgICB8ICAgMTggKystCiBXZWJDb3JlL3BsYXRm
b3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaCAgICAgICAgICB8ICAgNDQgKysrKysKIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAgICAgICAgICAgICAgIHwgICAgNyArLQog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCAgICAgICAgICAgICAgICAgfCAgICAz
ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwICB8
ICAgMTcgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
ICAgIHwgICAgNCArLQogV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCAg
ICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aCAgICAgICAgICAgICB8ICAgIDggKwogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwICAgICAgfCAgIDE4ICsrCiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5oICAgICAgICB8ICAgIDUgKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwICAgICAgfCAgIDE5ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oICAgICAgICB8ICAgMTEgKysKIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgICAgIHwgICAgNiArLQogV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gICAgICAgfCAgIDIxICsrKy0KIFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAxOCAr
KwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICAgICAgICAgfCAg
ICA1ICsKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgICAg
IHwgICAxOCArKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAg
ICAgICAgfCAgICA1ICsKIDUzIGZpbGVzIGNoYW5nZWQsIDEwMzAgaW5zZXJ0aW9ucygrKSwgMzI0
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUv
cGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmgKCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4
MzM5ZmZiLi4yZGIyZWNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI0NjIsNiArMjQ2Miw3IEBAIHdlYmNvcmVndGtf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bv
cHVwTWVudUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAg
XAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggXAogCVdlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAgXApAQCAtMjQ3MCw2ICsyNDcxLDcgQEAgd2ViY29y
ZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0
ay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJl
ZEJ1ZmZlckd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNw
cCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU291bmRHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY2NWRh
YjQuLjkyYmM4MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjUwLDYgKzI1MCw3IEBAIF9fWk43V2ViQ29yZTEySWNv
bkRhdGFiYXNlMjdjaGVja0ludGVncml0eUJlZm9yZU9wZW5pbmdFdgogX19aTjdXZWJDb3JlMTJJ
Y29uRGF0YWJhc2U0b3BlbkVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFz
ZTVjbG9zZUV2CiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4SWNv
bkRhdGFiYXNlQ2xpZW50RQorX19aTjdXZWJDb3JlMTJQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1
cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEycGFnZVByb3BlcnR5RVBO
U181RnJhbWVFUEtjaQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQxM251bWJlck9mUGFnZXNF
UE5TXzVGcmFtZUVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDE2
aXNQYWdlQm94VmlzaWJsZUVQTlNfNUZyYW1lRWkKQEAgLTQwOCw2ICs0MDksNyBAQCBfX1pON1dl
YkNvcmUxN25hbWVGb3JDdXJzb3JUeXBlRU5TXzZDdXJzb3I0VHlwZUUKIF9fWk43V2ViQ29yZTE3
b3BlblRlbXBvcmFyeUZpbGVFUEtjUmkKIF9fWk43V2ViQ29yZTE4ZGVwcmVjYXRlZFBhcnNlVVJM
RVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVW
aXNpYmxlUG9zaXRpb25FCitfX1pON1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18x
NVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVz
dW1lQW5pbWF0aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250
cm9sbGVyMTdzdXNwZW5kQW5pbWF0aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTlB
bmltYXRpb25Db250cm9sbGVyMjBwYXVzZUFuaW1hdGlvbkF0VGltZUVQTlNfMTJSZW5kZXJPYmpl
Y3RFUktOU182U3RyaW5nRWQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYjgzMjU2ZS4uNDRkNDU4OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIxMjQsNiAr
MjEyNCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bVdpbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Nl
YXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vU2hhcmVkVGltZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1NvdW5kQ2hyb21pdW1Qb3NpeC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1NvdW5kQ2hyb21pdW1XaW4uY3BwJywKQEAgLTI2MTYsNiArMjYxNyw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0nLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybU1vdXNlRXZlbnRNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0vbWFj
L1BvcHVwTWVudU1hYy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFj
Lm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbScsCkBAIC0y
NjIzLDYgKzI2MjUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFj
Lm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L21hYy9TaGFyZWRCdWZmZXJNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFy
ZWRUaW1lck1hYy5tbScsCkBAIC0yNzczLDYgKzI3NzYsNyBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3F0L1BsYXRmb3JtTW91c2VFdmVudFF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
cXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BvcHVw
TWVudVF0LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vcXQvUVdlYlBvcHVwLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vcXQvUVdlYlBvcHVwLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1JlbmRlclRo
ZW1lUXQuY3BwJywKQEAgLTI3ODMsNiArMjc4Nyw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
cXQvU2Nyb2xsYmFyVGhlbWVRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1Njcm9s
bGJhclRoZW1lUXQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51
UXQuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TaGFyZWRCdWZmZXJRdC5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9xdC9Tb3VuZFF0LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCAwOTA1NDIyLi4xYWYzNTM4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MDYsNiArMTcw
Niw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmggXAogICAgIHBsYXRm
b3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oIFwKKyAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAg
ICAgcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaCBcCiAgICAgcGxhdGZvcm0vcXQvUVdlYlBhZ2VD
bGllbnQuaCBcCiAgICAgcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggXApAQCAtMTcx
NSw2ICsxNzE2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFyLmggXAog
ICAgIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmggXAogICAgIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaCBcCisgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmggXAogICAgIHBsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5oIFwKICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBc
CiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uaCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCBhOTdmZmE3Li5lYjYyODJjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIyNDcxLDggKzIyNDcxLDggQEAKIAkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTZWN1cml0eU9yaWdpbi5oIg0KIAkJCQk+DQotCQkJ
PC9GaWxlPg0KLQkJCTxGaWxlDQorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcU2V0dGluZ3MuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTIzNzgw
LDYgKzIzNzgwLDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cUG9wdXBNZW51V2luLmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5c
U2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpAQCAtMjM4
MDAsNiArMjM4MDQsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxTZWFyY2hQb3B1cE1lbnVXaW4uaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXHdpblxTaGFyZWRCdWZmZXJXaW4uY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzZDViZjMyLi5lZjVl
MzQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDIs
NyArNDIsNyBAQAogCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFE
NEYyMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NUFENEY2MEIwQzJFREEwMDVB
MkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjMwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAgKi87IH07CiAJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA2NUFENEY0MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0MTI4
RTAgLyogUG9wdXBNZW51LmggKi87IH07CisJCTA2NjhFMThCMEFERDk2MjQwMDQxMjhFMCAvKiBQ
b3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjY4RTE5MDBBREQ5NjQwMDA0MTI4
RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAq
LzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZDNzcyQTBBQjYwM0I3
MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwNjZDNzcyRDBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29z
ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gKi87IH07CkBAIC0z
NTg1LDEyICszNTg1LDEyIEBACiAJCUFCNENCNEVCMEI4QkRBM0QwMDlGNDBCMCAvKiBKU0hUTUxT
ZWxlY3RFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQjRDQjRFQTBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVu
dEN1c3RvbS5oICovOyB9OwogCQlBQjY3RDFBODA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4
dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmNwcCAqLzsg
fTsKIAkJQUI2N0QxQTkwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNzA5N0Yz
QUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuaCAqLzsgfTsKLQkJQUI3MTcwODkwQjMx
MTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJj
aFBvcHVwTWVudS5oICovOyB9OworCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNo
UG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUI3MTcwQTAwQjMxMTkz
QjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDlGMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFy
Y2hQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCUFCQUYyMjA4MEMwM0IxQzcwMEIwQkNGMCAvKiBD
aHJvbWVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBQkFGMjIwNzBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tICovOyB9OwogCQlBQkI1
NDE5RTBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5QzBBQ0RERkU0MDAyODIwRUIg
LyogUmVuZGVyTGlzdEJveC5jcHAgKi87IH07CiAJCUFCQjU0MTlGMEFDRERGRTQwMDI4MjBFQiAv
KiBSZW5kZXJMaXN0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQkI1NDE5RDBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oICovOyB9
OwotCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3NjBCMzNBQTZE
MDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IH07CisJCUFCQzEyODc3MEIzM0FBNkQw
MEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBQkRERkU3OTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzMwQTVDNkU2RjAw
QTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmNwcCAqLzsgfTsKIAkJQUJEREZFN0EwQTVDNkU3MDAw
QTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxp
c3QuaCAqLzsgfTsKIAkJQUJGRTdFMTIwRDMyRkFGNjAwNjZGNEQyIC8qIE1lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi87
IH07CkBAIC01MDExLDYgKzUwMTEsOCBAQAogCQlEMjNDQTU1RDBBQjBFQUFFMDA1MTA4QTUgLyog
SlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAq
LzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUUw
QUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9OwogCQlEMjNDQTU2
QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBS
YW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyogUG9w
dXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRDM5RDAwOUQxMUY5MDdFNjAw
NjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBv
cHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0
QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0My
QzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJ
REIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5
MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEwNjgzLDYgKzEw
Njg1LDggQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8q
IEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
MjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQ
b3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9w
dXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5
NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRl
bnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIzMiwxMCArMTIy
MzYsMTIgQEAKIAkJCQk0QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5t
bSAqLywKIAkJCQk5MzVDNDc2RjA5QUM0RDczMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50
TWFjLm1tICovLAogCQkJCUJDOTREMTA3MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVl
bk1hYy5tbSAqLywKKwkJCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFj
LmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAq
LywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNw
cCAqLywKIAkJCQk0NDdENjkwMTBGQTYyNjgxMDAxNUNDQjEgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmggKi8sCiAJCQkJNDQ3RDY5MDIwRkE2MjY4MTAwMTVDQ0IxIC8qIFJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5tbSAqLywKKwkJCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2Vh
cmNoUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJMUNFMjRGOTYwRDdDQUYwRTAwN0UwNEMyIC8qIFNj
aGVkdWxlUGFpck1hYy5tbSAqLywKIAkJCQlCQ0FBOTBDMjBBN0VCQTYwMDA4QjEyMjkgLyogU2Ny
b2xsYmFyLmNwcCAqLywKIAkJCQlCQzhCODUzQzBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFy
VGhlbWVNYWMuaCAqLywKQEAgLTE5ODYwLDYgKzE5ODY2LDggQEAKIAkJCQlFMUJFNTEyRTBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RE
NEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2RlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAq
LywKKwkJCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
IGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTkzOGJiYy4uMmI0OWRkMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4LDYgKzEwOSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgeyByZXR1cm4gZmFsc2U7
IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIFBhc3NSZWZQ
dHI8UG9wdXBNZW51PigpOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJu
IFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PigpOyB9CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB0YWJz
VG9MaW5rcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDBjNjY5MjUuLjlm
ZWVhMWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9DaHJvbWUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ4Miw1ICs0ODIsMjAg
QEAgYm9vbCBDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tU2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENo
cm9tZTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVy
biBtX2NsaWVudC0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKK30KKwor
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlUG9wdXBN
ZW51KGNsaWVudCk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVNlYXJjaFBvcHVwTWVudShjbGllbnQpOworfQorCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA1Mzc0NjhhLi4zMGVkZjI4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yNCw2ICsyNSw4IEBACiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKICNp
bmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNs
dWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtNDQsNiArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBO
b2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogICAgIGNs
YXNzIFN0cmluZzsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBjbGFzcyBOb3RpZmlj
YXRpb25QcmVzZW50ZXI7CkBAIC0xNDQsNiArMTQ4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBj
b25zdDsgCiAjZW5kaWYKIAorICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisK
ICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIENocm9tZUNsaWVu
dCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzk1YjI1Yy4uMDRhZjc3ZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlclF1aXJrcy5oIgogI2luY2x1ZGUg
Ikhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1l
bnVDbGllbnQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNlYXJjaFBv
cHVwTWVudS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Myw2ICs1Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5n
OwogICAgIGNsYXNzIFdpZGdldDsKIApAQCAtMjUyLDYgKzI1NywxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc01pbmltaXplZCgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAjZW5kaWYKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL1BvcHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAppbmRl
eCBkOWQyNzQwLi44ZWJiYTAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDE4MCArMjEsMjIg
QEAKICNpZm5kZWYgUG9wdXBNZW51X2gKICNkZWZpbmUgUG9wdXBNZW51X2gKIAotI2luY2x1ZGUg
IkludFJlY3QuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLSNpZiBQTEFURk9S
TShNQUMpCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lmZGVmIF9fT0JKQ19fCi1AY2xh
c3MgTlNQb3BVcEJ1dHRvbkNlbGw7Ci0jZWxzZQotY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7Ci0j
ZW5kaWYKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJTY3JvbGxiYXIuaCIKLSNpbmNs
dWRlICJTY3JvbGxiYXJDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci10eXBlZGVm
IHN0cnVjdCBIV05EX18qIEhXTkQ7Ci10eXBlZGVmIHN0cnVjdCBIRENfXyogSERDOwotdHlwZWRl
ZiBzdHJ1Y3QgSEJJVE1BUF9fKiBIQklUTUFQOwotI2VsaWYgUExBVEZPUk0oUVQpCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7Ci19Ci0jZWxpZiBQTEFURk9S
TShHVEspCi10eXBlZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwotdHlwZWRlZiBzdHJ1Y3Qg
X0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtX
aWRnZXQ7Ci0jaW5jbHVkZSAiR1JlZlB0ckd0ay5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8Z2xpYi5oPgotI2VsaWYgUExBVEZPUk0oV1gpCi0jaWZkZWYgX19XWE1TV19f
Ci0jaW5jbHVkZSA8d3gvbXN3L3dpbnVuZGVmLmg+Ci0jZW5kaWYKLWNsYXNzIHd4TWVudTsKLSNp
bmNsdWRlIDx3eC9kZWZzLmg+Ci0jaW5jbHVkZSA8d3gvZXZlbnQuaD4KLSNlbGlmIFBMQVRGT1JN
KENIUk9NSVVNKQotI2luY2x1ZGUgIlBvcHVwTWVudVByaXZhdGUuaCIKLSNlbGlmIFBMQVRGT1JN
KEhBSUtVKQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUG9wdXBNZW51SGFpa3U7Ci19Ci0j
ZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZVZpZXc7Ci1jbGFzcyBT
Y3JvbGxiYXI7CitjbGFzcyBJbnRSZWN0OwogCi1jbGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMgUmVm
Q291bnRlZDxQb3B1cE1lbnU+Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgICAgICAgICAgICAgICwg
cHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQKLSNlbmRpZgotI2lmIFBMQVRGT1JNKFdYKQotICAgICAg
ICAgICAgICAgICwgcHVibGljIHd4RXZ0SGFuZGxlcgotI2VuZGlmCi17CitjbGFzcyBQb3B1cE1l
bnUgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3B1cE1lbnU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKTsgfQotICAgIH5Qb3B1cE1lbnUo
KTsKLSAgICAKLSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQgPSAw
OyB9Ci0KLSAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRl
eCk7Ci0gICAgdm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0g
ICAgCi0gICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVw
Q2xpZW50OyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpOwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KLQotICAgIHN0YXRpYyBMUENUU1RSIHBv
cHVwQ2xhc3NOYW1lKCk7Ci0KLSAgICBib29sIHVwKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0gICAg
Ym9vbCBkb3duKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0KLSAgICBpbnQgaXRlbUhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1faXRlbUhlaWdodDsgfQotICAgIGNvbnN0IEludFJlY3QmIHdpbmRvd1Jl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd1JlY3Q7IH0KLSAgICBJbnRSZWN0IGNsaWVudFJl
Y3QoKSBjb25zdDsKLQotICAgIGludCB2aXNpYmxlSXRlbXMoKSBjb25zdDsKLQotICAgIGludCBs
aXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0KLSAgICBib29sIHNldEZv
Y3VzZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgaG90VHJhY2tpbmcgPSBmYWxzZSk7Ci0gICAgaW50
IGZvY3VzZWRJbmRleCgpIGNvbnN0OwotICAgIHZvaWQgZm9jdXNGaXJzdCgpOwotICAgIHZvaWQg
Zm9jdXNMYXN0KCk7Ci0KLSAgICB2b2lkIHBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3Qs
IEhEQyA9IDApOwotCi0gICAgSFdORCBwb3B1cEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9w
dXA7IH0KLQotICAgIHZvaWQgc2V0V2FzQ2xpY2tlZChib29sIGIgPSB0cnVlKSB7IG1fd2FzQ2xp
Y2tlZCA9IGI7IH0KLSAgICBib29sIHdhc0NsaWNrZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0Ns
aWNrZWQ7IH0KLQotICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9zY3Jv
bGxPZmZzZXQgPSBvZmZzZXQ7IH0KLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxPZmZzZXQ7IH0KLQotICAgIGJvb2wgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24o
KTsKLQotICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIHZvaWQg
cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIGludCB3aGVlbERlbHRhKCkgY29uc3Qg
eyByZXR1cm4gbV93aGVlbERlbHRhOyB9Ci0KLSAgICBib29sIHNjcm9sbGJhckNhcHR1cmluZ01v
dXNlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsgfQotICAgIHZv
aWQgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVy
aW5nTW91c2UgPSBiOyB9Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3Bv
cHVwQ2xpZW50OwotICAgIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIGNsZWFyKCk7Ci0g
ICAgdm9pZCBwb3B1bGF0ZSgpOwotCi0gICAgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25DZWxsPiBt
X3BvcHVwOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBtX3Bv
cHVwOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIFNjcm9sbEJhckNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCB2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKik7Ci0gICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBib29sIHNjcm9sbGJhckNvcm5lclByZXNlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
Ci0gICAgdm9pZCBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYsIEZyYW1l
VmlldyopOwotICAgIHZvaWQgaW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KTsKLQotICAgIHN0YXRp
YyBMUkVTVUxUIENBTExCQUNLIFBvcHVwTWVudVduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBM
UEFSQU0pOwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BB
UkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDbGFz
cygpOwotCi0gICAgUmVmUHRyPFNjcm9sbGJhcj4gbV9zY3JvbGxiYXI7Ci0gICAgSFdORCBtX3Bv
cHVwOwotICAgIEhEQyBtX0RDOwotICAgIEhCSVRNQVAgbV9ibXA7Ci0gICAgYm9vbCBtX3dhc0Ns
aWNrZWQ7Ci0gICAgSW50UmVjdCBtX3dpbmRvd1JlY3Q7Ci0gICAgaW50IG1faXRlbUhlaWdodDsK
LSAgICBpbnQgbV9zY3JvbGxPZmZzZXQ7Ci0gICAgaW50IG1fd2hlZWxEZWx0YTsKLSAgICBpbnQg
bV9mb2N1c2VkSW5kZXg7Ci0gICAgYm9vbCBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOwotICAg
IGJvb2wgbV9zaG93UG9wdXA7Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAgSW50UG9pbnQgbV9t
ZW51UG9zaXRpb247Ci0gICAgR1JlZlB0cjxHdGtNZW51PiBtX3BvcHVwOwotICAgIEhhc2hNYXA8
R3RrV2lkZ2V0KiwgaW50PiBtX2luZGV4TWFwOwotICAgIHN0YXRpYyB2b2lkIG1lbnVJdGVtQWN0
aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9pZCBt
ZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51Kik7Ci0gICAgc3RhdGljIHZvaWQgbWVu
dVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqLCBnaW50KiwgZ2Jvb2xlYW4qLCBQb3B1
cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9pZCBtZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqLCBQb3B1
cE1lbnUqKTsKLSNlbGlmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQlJFV01QKQotICAgIEZy
YW1lVmlldyogbV92aWV3OwotI2VsaWYgUExBVEZPUk0oV1gpCi0gICAgd3hNZW51KiBtX21lbnU7
Ci0gICAgdm9pZCBPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmKTsKLSNlbGlmIFBM
QVRGT1JNKENIUk9NSVVNKQotICAgIFBvcHVwTWVudVByaXZhdGUgcDsKLSNlbGlmIFBMQVRGT1JN
KEhBSUtVKQotICAgIFBvcHVwTWVudUhhaWt1KiBtX21lbnU7Ci0jZW5kaWYKLQorICAgIHZpcnR1
YWwgflBvcHVwTWVudSgpIHt9CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYs
IEZyYW1lVmlldyosIGludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzY29ubmVjdENsaWVudCgpID0gMDsKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYg
Ly8gUG9wdXBNZW51X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBN
ZW51LmggYi9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCmluZGV4IDQyODVjZGYu
LmQxZWNkMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsMjQgKzIzLDIx
IEBACiAKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXRvbWljU3RyaW5nOwogCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgUG9w
dXBNZW51IHsKK2NsYXNzIFNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFNlYXJj
aFBvcHVwTWVudT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOyB9Ci0KLSAgICB2b2lkIHNhdmVSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcyk7Ci0gICAgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotCi0gICAgYm9vbCBlbmFibGVk
KCk7Ci0gICAgCi1wcml2YXRlOgotICAgIFNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KTsKKyAgICB2aXJ0dWFsIH5TZWFyY2hQb3B1cE1lbnUoKSB7fQorICAgIHZpcnR1YWwgUG9wdXBN
ZW51KiBwb3B1cE1lbnUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgZW5hYmxlZCgpID0gMDsKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8g
U2VhcmNoUG9wdXBNZW51X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1l
bnVDaHJvbWl1bS5jcHAKaW5kZXggNDcwMWE3NS4uOTA1MTIwOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC00OCw3ICs0OSw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIK
LSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCkBAIC0x
MzIxLDIwICsxMzIxLDIwIEBAIGJvb2wgUG9wdXBMaXN0Qm94Ojppc1BvaW50SW5Cb3VuZHMoY29u
c3QgSW50UG9pbnQmIHBvaW50KQogfQogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBQb3B1
cE1lbnUgaW1wbGVtZW50YXRpb24KKy8vIFBvcHVwTWVudUNocm9taXVtIGltcGxlbWVudGF0aW9u
CiAvLyAKIC8vIE5vdGU6IHlvdSBjYW5ub3QgYWRkIG1ldGhvZHMgdG8gdGhpcyBjbGFzcywgc2lu
Y2UgaXQgaXMgZGVmaW5lZCBhYm92ZSB0aGUgCiAvLyAgICAgICBwb3J0YWJpbGl0eSBsYXllci4g
VG8gYWNjZXNzIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgb24gdGhlCiAvLyAgICAgICBwb3B1cCB3
aWRnZXRzLCB1c2UgfHBvcHVwV2luZG93fCBhYm92ZS4gCiAKLVBvcHVwTWVudTo6UG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSAKK1BvcHVwTWVudUNocm9taXVtOjpQb3B1cE1lbnVD
aHJvbWl1bShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xp
ZW50KQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51Q2hyb21pdW06
On5Qb3B1cE1lbnVDaHJvbWl1bSgpCiB7Ci0gICAgLy8gV2hlbiB0aGUgUG9wdXBNZW51IGlzIGRl
c3Ryb3llZCwgdGhlIGNsaWVudCBjb3VsZCBhbHJlYWR5IGhhdmUgYmVlbgorICAgIC8vIFdoZW4g
dGhlIFBvcHVwTWVudUNocm9taXVtIGlzIGRlc3Ryb3llZCwgdGhlIGNsaWVudCBjb3VsZCBhbHJl
YWR5IGhhdmUgYmVlbgogICAgIC8vIGRlbGV0ZWQuCiAgICAgaWYgKHAucG9wdXApCiAgICAgICAg
IHAucG9wdXAtPmxpc3RCb3goKS0+ZGlzY29ubmVjdENsaWVudCgpOwpAQCAtMTM0NSw3ICsxMzQ1
LDcgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKIC8vIHRvIGRpc3BsYXksIGhhbmRsZSB0aGUg
aW5wdXQgdHJhY2tpbmcgYW5kIG1lbnUgaXRlbSBzZWxlY3Rpb24gZm9yIHRoZSBwb3B1cC4KIC8v
IFdpbmRvd3MgYW5kIExpbnV4IENocm9taXVtIGxldCBvdXIgV2ViS2l0IHBvcnQgaGFuZGxlIHRo
ZSBkaXNwbGF5LCB3aGlsZQogLy8gYW5vdGhlciBwcm9jZXNzIG1hbmFnZXMgdGhlIHBvcHVwIHdp
bmRvdyBhbmQgaW5wdXQgaGFuZGxpbmcuCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06
OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7CiAgICAg
aWYgKCFwLnBvcHVwKQogICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShj
bGllbnQoKSwgUG9wdXBDb250YWluZXI6OlNlbGVjdCwgZHJvcERvd25TZXR0aW5ncyk7CkBAIC0x
MzU2LDIwICsxMzU2LDIxIEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIs
IEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogI2VuZGlmCiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpo
aWRlKCkKK3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06OmhpZGUoKQogewogICAgIGlmIChwLnBvcHVw
KQogICAgICAgICBwLnBvcHVwLT5oaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVG
cm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUNocm9taXVtOjp1cGRhdGVGcm9tRWxlbWVudCgp
CiB7CiAgICAgcC5wb3B1cC0+bGlzdEJveCgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCi1i
b29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAg
cmV0dXJuIGZhbHNlOyAKKwordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6ZGlzY29ubmVjdENsaWVu
dCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21p
dW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaAppbmRl
eCBhODVjZjQ5Li5hMGEwNTI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTWVudUNocm9taXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1
cE1lbnVDaHJvbWl1bS5oCkBAIC0zNiw2ICszNiw4IEBACiAKICNpbmNsdWRlICJGcmFtZWxlc3NT
Y3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudVByaXZhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0yMDEsNiArMjAzLDIzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvcHVwT3BlbjsKIH07
CiAKK2NsYXNzIFBvcHVwTWVudUNocm9taXVtIDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6
CisgICAgUG9wdXBNZW51Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVu
dUNocm9taXVtKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJh
bWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0
Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50
OworICAgIFBvcHVwTWVudVByaXZhdGUgcDsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorfTsKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9T
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKaW5kZXggODliZmRkZC4uMThlODZjNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIAogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOSwyOSArMzAsMzQgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAi
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0g
ICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OlNlYXJjaFBv
cHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChj
bGllbnQpCiB7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK1BvcHVwTWVu
dSogU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZt
X3BvcHVwOworfQorCitib29sIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjplbmFibGVkKCkKIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpzYXZlUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06Omxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+
JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZmYzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmgKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUNo
cm9taXVtX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW1faAorCisjaW5jbHVkZSAi
UG9wdXBNZW51Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bSA6IHB1Ymxp
YyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUNocm9taXVt
KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgp
OworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAg
Citwcml2YXRlOgorICAgIFBvcHVwTWVudUNocm9taXVtIG1fcG9wdXA7Cit9OworCit9CisKKyNl
bmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBN
ZW51RWZsLmNwcAppbmRleCA5ZGM2OTg2Li40MDFmMjRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bv
cHVwTWVudUVmbC5jcHAKQEAgLTMsNiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5k
VCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjIsMjkgKzIzLDMwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgogCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGll
bnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVudUVmbDo6UG9wdXBNZW51RWZsKFBvcHVwTWVu
dUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3Zp
ZXcoMCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUVmbDo6flBv
cHVwTWVudUVmbCgpCiB7CiAgICAgLy8gVGVsbCBjbGllbnQgdG8gZGVzdHJveSBkYXRhIHJlbGF0
ZWQgdG8gdGhpcyBwb3B1cCBzaW5jZSB0aGlzIG9iamVjdCBpcwogICAgIC8vIGdvaW5nIGF3YXku
CiAgICAgaGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiBy
ZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpzaG93
KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAg
IEFTU0VSVChtX3BvcHVwQ2xpZW50KTsKICAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVu
dCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudEVmbCo+KHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+
Y2hyb21lKCktPmNsaWVudCgpKTsKQEAgLTU0LDcgKzU2LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNo
b3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAg
Y2hyb21lQ2xpZW50LT5jcmVhdGVTZWxlY3RQb3B1cChtX3BvcHVwQ2xpZW50LCBpbmRleCwgcmVj
dCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpoaWRl
KCkKIHsKICAgICBBU1NFUlQobV92aWV3KTsKICAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNs
aWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudEVmbCo+KG1fdmlldy0+ZnJhbWUoKS0+cGFn
ZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAtNjMsMTQgKzY1LDE0IEBAIHZvaWQgUG9wdXBN
ZW51OjpoaWRlKCkKICAgICBjaHJvbWVDbGllbnQtPmRlc3Ryb3lTZWxlY3RQb3B1cCgpOwogfQog
Ci12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVFZmw6
OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNs
aWVudCgpLT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKQordm9pZCBQb3B1cE1lbnVFZmw6OmRpc2Nvbm5lY3RDbGll
bnQoKQogewotICAgIHJldHVybiB0cnVlOworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmI2YmI2YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9Qb3B1cE1lbnVFZmwuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRl
ZiBQb3B1cE1lbnVFZmxfaAorI2RlZmluZSBQb3B1cE1lbnVFZmxfaAorCisjaW5jbHVkZSAiSW50
UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CitjbGFzcyBQb3B1cE1lbnVDbGll
bnQ7CisKK2NsYXNzIFBvcHVwTWVudUVmbCA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgor
ICAgIFBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51RWZsKCk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50
IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisK
K3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIEZyYW1l
VmlldyogbV92aWV3OworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BvcHVwQ2xpZW50OyB9CisKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudUVm
bF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcAppbmRleCBk
MTgxNzRmLi5jYWZmZTU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQ
b3B1cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVu
dUVmbC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJ
bnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAg
U2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTE5LDI5ICsyMCwzNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVFZmwuaCIKIAogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNo
UG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAg
OiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQb3B1cE1lbnVF
ZmwoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK1Bv
cHVwTWVudSogU2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAm
bV9wb3B1cDsKK30KKwordm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OnNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBv
cHVwTWVudUVmbDo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxlZCgpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDRjYjJlNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Nl
YXJjaFBvcHVwTWVudUVmbC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVFZmxfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVFZmxf
aAorCisjaW5jbHVkZSAiUG9wdXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51RWZsIDog
cHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51RWZs
KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgp
OworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3By
aXZhdGU6CisgICAgUG9wdXBNZW51RWZsIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBT
ZWFyY2hQb3B1cE1lbnVFZmxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKaW5k
ZXggYmY4Y2ZiNC4uY2EwNjdkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3Bw
CkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVs
IEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFi
b3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDcgKzI0LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51R3RrLmgiCiAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJHdGtWZXJzaW9uaW5nLmgiCkBAIC0zNCwxMiArMzUsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
K1BvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAg
IDogbV9wb3B1cENsaWVudChjbGllbnQpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgp
CitQb3B1cE1lbnVHdGs6On5Qb3B1cE1lbnVHdGsoKQogewogICAgIGlmIChtX3BvcHVwKSB7CiAg
ICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX3BvcHVwLmdldCgp
LCBHX1NJR05BTF9NQVRDSF9EQVRBLCAwLCAwLCAwLCAwLCB0aGlzKTsKQEAgLTQ3LDcgKzQ4LDcg
QEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICB9CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpz
aG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9p
ZCBQb3B1cE1lbnVHdGs6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3
LCBpbnQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKIApAQCAtMTEwLDQzICsxMTEs
NDMgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3
KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgZ3RrX21lbnVfcG9wdXAobV9wb3B1cC5nZXQoKSwgMCwg
MCwgcmVpbnRlcnByZXRfY2FzdDxHdGtNZW51UG9zaXRpb25GdW5jPihtZW51UG9zaXRpb25GdW5j
dGlvbiksIHRoaXMsIDAsIGd0a19nZXRfY3VycmVudF9ldmVudF90aW1lKCkpOwogfQogCi12b2lk
IFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUd0azo6aGlkZSgpCiB7CiAgICAgQVNT
RVJUKG1fcG9wdXApOwogICAgIGd0a19tZW51X3BvcGRvd24obV9wb3B1cC5nZXQoKSk7CiB9CiAK
LXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUd0azo6
dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xp
ZW50KCktPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpCit2b2lkIFBvcHVwTWVudUd0azo6ZGlzY29ubmVjdENsaWVu
dCgpCiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgbV9wb3B1cENsaWVudCA9IDA7CiB9CiAKLXZv
aWQgUG9wdXBNZW51OjptZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9wdXBN
ZW51KiB0aGF0KQordm9pZCBQb3B1cE1lbnVHdGs6Om1lbnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJ
dGVtKiBpdGVtLCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgQVNTRVJUKHRoYXQtPmNsaWVu
dCgpKTsKICAgICBBU1NFUlQodGhhdC0+bV9pbmRleE1hcC5jb250YWlucyhHVEtfV0lER0VUKGl0
ZW0pKSk7CiAgICAgdGhhdC0+Y2xpZW50KCktPnZhbHVlQ2hhbmdlZCh0aGF0LT5tX2luZGV4TWFw
LmdldChHVEtfV0lER0VUKGl0ZW0pKSk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjptZW51VW5tYXBw
ZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51KiB0aGF0KQordm9pZCBQb3B1cE1lbnVHdGs6Om1lbnVV
bm1hcHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgQVNTRVJUKHRo
YXQtPmNsaWVudCgpKTsKICAgICB0aGF0LT5jbGllbnQoKS0+cG9wdXBEaWRIaWRlKCk7CiB9CiAK
LXZvaWQgUG9wdXBNZW51OjptZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCogeCwg
Z2ludCogeSwgZ2Jvb2xlYW4qIHB1c2hJbiwgUG9wdXBNZW51KiB0aGF0KQordm9pZCBQb3B1cE1l
bnVHdGs6Om1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01lbnUqLCBnaW50KiB4LCBnaW50KiB5LCBn
Ym9vbGVhbiogcHVzaEluLCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgKnggPSB0aGF0LT5t
X21lbnVQb3NpdGlvbi54KCk7CiAgICAgKnkgPSB0aGF0LT5tX21lbnVQb3NpdGlvbi55KCk7CiAg
ICAgKnB1c2hJbiA9IHRydWU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjptZW51UmVtb3ZlSXRlbShH
dGtXaWRnZXQqIHdpZGdldCwgUG9wdXBNZW51KiB0aGF0KQordm9pZCBQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKEd0a1dpZGdldCogd2lkZ2V0LCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAg
ICAgQVNTRVJUKHRoYXQtPm1fcG9wdXApOwogICAgIGd0a19jb250YWluZXJfcmVtb3ZlKEdUS19D
T05UQUlORVIodGhhdC0+bV9wb3B1cC5nZXQoKSksIHdpZGdldCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bv
cHVwTWVudUd0ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYzIyZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVHdGtfaAor
I2RlZmluZSBQb3B1cE1lbnVHdGtfaAorCisjaW5jbHVkZSAiR1JlZlB0ckd0ay5oIgorI2luY2x1
ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1l
bnVDbGllbnQuaCIKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK3R5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7Cit0eXBlZGVmIHN0cnVjdCBfR3Rr
TWVudUl0ZW0gR3RrTWVudUl0ZW07Cit0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdl
dDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3Jv
bGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudUd0ayA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGlj
OgorICAgIFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51R3Rr
KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3Kiwg
aW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7
CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIElu
dFBvaW50IG1fbWVudVBvc2l0aW9uOworICAgIEdSZWZQdHI8R3RrTWVudT4gbV9wb3B1cDsKKyAg
ICBIYXNoTWFwPEd0a1dpZGdldCosIGludD4gbV9pbmRleE1hcDsKKworICAgIFBvcHVwTWVudUNs
aWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCisgICAgc3Rh
dGljIHZvaWQgbWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudUd0
ayopOworICAgIHN0YXRpYyB2b2lkIG1lbnVVbm1hcHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnVH
dGsqKTsKKyAgICBzdGF0aWMgdm9pZCBtZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2lu
dCosIGdpbnQqLCBnYm9vbGVhbiosIFBvcHVwTWVudUd0ayopOworICAgIHN0YXRpYyB2b2lkIG1l
bnVSZW1vdmVJdGVtKEd0a1dpZGdldCosIFBvcHVwTWVudUd0ayopOworfTsKKworfQorCisjZW5k
aWYgLy8gUG9wdXBNZW51R3RrX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nl
YXJjaFBvcHVwTWVudUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwCmluZGV4IGZiYWE1MjcuLmRmYjg0YWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcApAQCAtMSw0ICsxLDYgQEAKIC8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwogICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMTUsMjkgKzE3LDM0IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2lu
Y2x1ZGUgIlNlYXJjaFBvcHVwTWVudUd0ay5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitT
ZWFyY2hQb3B1cE1lbnVHdGs6OlNlYXJjaFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1l
bnVHdGs6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCit2b2lkIFNl
YXJjaFBvcHVwTWVudUd0azo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51R3RrOjpsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jv
b2wgU2VhcmNoUG9wdXBNZW51R3RrOjplbmFibGVkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nl
YXJjaFBvcHVwTWVudUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRjMmVhNAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1l
bnVHdGtfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVHdGtfaAorCisjaW5jbHVkZSAiUG9wdXBN
ZW51R3RrLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51R3RrIDogcHVibGljIFNlYXJjaFBvcHVwTWVu
dSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCopOwor
CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAgCitwcml2YXRlOgorICAgIFBvcHVw
TWVudUd0ayBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51R3Rr
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uN2Y4YWY1NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BvcHVwTWVudU1hYy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIFBvcHVwTWVudU1hY19oCisjZGVmaW5lIFBvcHVwTWVudU1hY19oCisKKyNpbmNsdWRlICJJ
bnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xs
YmFyOworCitjbGFzcyBQb3B1cE1lbnVNYWMgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoK
KyAgICBQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudU1hYygp
OworCisgICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBtX3BvcHVwQ2xpZW50ID0gMDsgfQor
CisgICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOwor
ICAgIHZvaWQgaGlkZSgpOworCisgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworCisgICAg
c3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKworcHJpdmF0ZToK
KyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgUmV0YWluUHRyPE5TUG9w
VXBCdXR0b25DZWxsPiBtX3BvcHVwOworCisgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgcG9w
dWxhdGUoKTsKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9wdXBDbGllbnQ7IH0KK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudU1hY19oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KaW5kZXggNmMwNjdiOS4uMGY1MDU5OCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsNyArMTksNyBAQAogICovCiAKICNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUG9wdXBNZW51LmgiCisjaW1wb3J0ICJQb3B1cE1l
bnVNYWMuaCIKIAogI2ltcG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgi
CkBAIC0zMSw2ICszMiw3IEBACiAjaW1wb3J0ICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2ltcG9y
dCAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIlBvcHVw
TWVudUNsaWVudC5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIKICNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKIApAQCAtMzgsMjQgKzQwLDI0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUG9wdXBNZW51OjpQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVNYWM6OlBvcHVwTWVudU1hYyhQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogewog
fQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFj
KCkKIHsKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAgW21fcG9wdXAuZ2V0KCkgc2V0Q29udHJv
bFZpZXc6bmlsXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmNsZWFyKCkKK3ZvaWQgUG9wdXBNZW51
TWFjOjpjbGVhcigpCiB7CiAgICAgaWYgKG1fcG9wdXApCiAgICAgICAgIFttX3BvcHVwLmdldCgp
IHJlbW92ZUFsbEl0ZW1zXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnBvcHVsYXRlKCkKK3ZvaWQg
UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiB7CiAgICAgaWYgKG1fcG9wdXApCiAgICAgICAgIGNs
ZWFyKCk7CkBAIC0xMTQsNyArMTE2LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnBvcHVsYXRlKCkKICAg
ICBbW21fcG9wdXAuZ2V0KCkgbWVudV0gc2V0TWVudUNoYW5nZWRNZXNzYWdlc0VuYWJsZWQ6bWVz
c2FnZXNFbmFibGVkXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYg
ciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25z
dCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKICAgICBwb3B1bGF0ZSgp
OwogICAgIGludCBudW1JdGVtcyA9IFttX3BvcHVwLmdldCgpIG51bWJlck9mSXRlbXNdOwpAQCAt
MTYyLDcgKzE2NCw3IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZy
YW1lVmlldyogdiwgaW50IGluZGV4KQogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSB2LT5mcmFt
ZSgpOwogICAgIE5TRXZlbnQqIGV2ZW50ID0gW2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVu
dE5TRXZlbnQoKSByZXRhaW5dOwogICAgIAotICAgIFJlZlB0cjxQb3B1cE1lbnU+IHByb3RlY3Rv
cih0aGlzKTsKKyAgICBSZWZQdHI8UG9wdXBNZW51TWFjPiBwcm90ZWN0b3IodGhpcyk7CiAKICAg
ICBSZXRhaW5QdHI8TlNWaWV3PiBkdW1teVZpZXcoQWRvcHROUywgW1tOU1ZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6cl0pOwogICAgIFt2aWV3IGFkZFN1YnZpZXc6ZHVtbXlWaWV3LmdldCgpXTsK
QEAgLTE5NCwxNiArMTk2LDE2IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3Qm
IHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgIFtldmVudCByZWxlYXNlXTsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVNYWM6OmhpZGUoKQogewogICAg
IFttX3BvcHVwLmdldCgpIGRpc21pc3NQb3BVcF07CiB9CiAgICAgCi12b2lkIFBvcHVwTWVudTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVNYWM6OnVwZGF0ZUZyb21FbGVtZW50
KCkKIHsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkKK2Jvb2wgUG9wdXBNZW51TWFjOjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
ZWFyY2hQb3B1cE1lbnVNYWMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0ZjkxYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBN
ZW51TWFjX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51TWFjX2gKKworI2luY2x1ZGUgIlBvcHVw
TWVudU1hYy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudU1hYyA6IHB1YmxpYyBTZWFyY2hQb3B1cE1l
bnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqKTsK
KworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVu
dU1hYyBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51TWFjX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbSBi
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQppbmRleCAyNjI3MzRk
Li43OGIyOWE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1l
bnVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1t
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMTQgKzE5LDE0
IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJTZWFyY2hQb3B1cE1lbnUu
aCIKKyNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1hYy5oIgogCiAjaW1wb3J0ICJBdG9taWNTdHJp
bmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQp
CitTZWFyY2hQb3B1cE1lbnVNYWM6OlNlYXJjaFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCkBAIC0zNCwxMiArMzUsMTcg
QEAgc3RhdGljIE5TU3RyaW5nKiBhdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAg
cmV0dXJuIFtAImNvbS5hcHBsZS5XZWJLaXQuc2VhcmNoRmllbGQ6IiBzdHJpbmdCeUFwcGVuZGlu
Z1N0cmluZzpuYW1lXTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorUG9w
dXBNZW51KiBTZWFyY2hQb3B1cE1lbnVNYWM6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZt
X3BvcHVwOworfQorCitib29sIFNlYXJjaFBvcHVwTWVudU1hYzo6ZW5hYmxlZCgpCiB7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQog
ewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTYsNyArNjIs
NyBAQCB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPAogICAgIH0KIH0KIAotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51TWFjOjpsb2FkUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmluZGV4IDMxNWI4OTEuLjU1OTA1NTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudVF0LmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRR
dC5oIgpAQCAtMzUsMTggKzM1LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBN
ZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVRdDo6UG9w
dXBNZW51UXQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNs
aWVudCkKICAgICAsIG1fcG9wdXAoMCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkK
K1BvcHVwTWVudVF0Ojp+UG9wdXBNZW51UXQoKQogewogICAgIGRlbGV0ZSBtX3BvcHVwOwogfQog
Ci12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZp
ZXcsIGludCBpbmRleCkKKwordm9pZCBQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCgpCit7
CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9wdXBNZW51UXQ6OnNob3coY29u
c3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgQ2hy
b21lQ2xpZW50UXQqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudFF0Kj4o
CiAgICAgICAgIHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKQEAg
LTY3LDE5ICs3MywxNCBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0
LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIAogfQogCi12b2lkIFBvcHVwTWVudTo6aGlk
ZSgpCit2b2lkIFBvcHVwTWVudVF0OjpoaWRlKCkKIHsKICAgICBtX3BvcHVwLT5oaWRlKCk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCi17Ci0gICAgY2xpZW50KCkt
PnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxlY3RlZEluZGV4KCkpOwotfQotCi1i
b29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQordm9pZCBQb3B1
cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBt
X3BvcHVwQ2xpZW50LT5zZXRUZXh0RnJvbUl0ZW0obV9wb3B1cENsaWVudC0+c2VsZWN0ZWRJbmRl
eCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVR
dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI1YTlmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgUG9wdXBNZW51UXRfaAorI2RlZmluZSBQb3B1cE1lbnVRdF9oCisKKyNpbmNsdWRl
ICJQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7
CitjbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7CitjbGFzcyBTY3JvbGxiYXI7CitjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7CisKK2NsYXNzIFBvcHVwTWVudVF0IDogcHVibGljIFBvcHVwTWVudSB7Citw
dWJsaWM6CisgICAgUG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVu
dVF0KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3
KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50
KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAg
IFF0QWJzdHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVw
TWVudVF0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBv
cHVwLmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCmluZGV4IGRh
ZDQ5OTcuLjVmNmY2MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFj
dFdlYlBvcHVwLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgUUZvbnQgZm9udCgpIHsgcmV0dXJuIG1f
cG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLmZvbnQoKS5mb250KCk7IH0KIAogcHJpdmF0ZToKLSAg
ICBmcmllbmQgY2xhc3MgUG9wdXBNZW51OworICAgIGZyaWVuZCBjbGFzcyBQb3B1cE1lbnVRdDsK
ICAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CiAgICAgUVdlYlBhZ2VDbGllbnQq
IG1fcGFnZUNsaWVudDsKICAgICBpbnQgbV9jdXJyZW50SW5kZXg7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCmluZGV4IDE4N2E1ZGUuLjg2OGI5YTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCBDIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMjYgKzE5LDI5IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi0jaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51UXQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1l
bnVRdDo6U2VhcmNoUG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBt
X3BvcHVwKGNsaWVudCkKK3sKK30KKworUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVRdDo6cG9w
dXBNZW51KCkKIHsKKyAgICByZXR1cm4gJm1fcG9wdXA7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotdm9pZCBT
ZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBW
ZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi1ib29sIFNl
YXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudVF0OjplbmFibGVk
KCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBN
ZW51UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzc0ZmI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1l
bnVRdF9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudVF0X2gKKworI2luY2x1ZGUgIlBvcHVwTWVu
dVF0LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51UXQgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsK
K3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqKTsKKworICAg
IHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworICAgIAorcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVR
dCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51UXRfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggNGJjNmRjNy4uYzYwMGM1NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUgSW5jLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsNyArMjEsNyBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnVXaW4uaCIKIAogI2luY2x1ZGUgIkJpdG1hcEluZm8uaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtODYsNyArODcsNyBAQCBzdGF0aWMgdm9pZCB0cmFuc2xhdGVQb2ludChMUEFSQU0m
IGxQYXJhbSwgSFdORCBmcm9tLCBIV05EIHRvKQogICAgIGxQYXJhbSA9IE1BS0VMUEFSQU0ocHQu
eCwgcHQueSk7CiB9CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KQorUG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fc2Nyb2xsYmFyKDApCiAgICAg
LCBtX3BvcHVwKDApCkBAIC0xMDIsNyArMTAzLDcgQEAgUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQ
b3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4oKQogewogICAgIGlmIChtX2JtcCkKICAgICAgICAg
OjpEZWxldGVPYmplY3QobV9ibXApOwpAQCAtMTE0LDEyICsxMTUsMTIgQEAgUG9wdXBNZW51Ojp+
UG9wdXBNZW51KCkKICAgICAgICAgbV9zY3JvbGxiYXItPnNldFBhcmVudCgwKTsKIH0KIAotTFBD
VFNUUiBQb3B1cE1lbnU6OnBvcHVwQ2xhc3NOYW1lKCkKK0xQQ1RTVFIgUG9wdXBNZW51V2luOjpw
b3B1cENsYXNzTmFtZSgpCiB7CiAgICAgcmV0dXJuIGtQb3B1cFdpbmRvd0NsYXNzTmFtZTsKIH0K
IAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2aWV3
LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudVdpbjo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBjYWxjdWxhdGVQb3NpdGlvbkFuZFNp
emUociwgdmlldyk7CiAgICAgaWYgKGNsaWVudFJlY3QoKS5pc0VtcHR5KCkpCkBAIC0yNjcsNyAr
MjY4LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3
KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgaGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlk
ZSgpCit2b2lkIFBvcHVwTWVudVdpbjo6aGlkZSgpCiB7CiAgICAgaWYgKCFtX3Nob3dQb3B1cCkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjgzLDcgKzI4NCw3IEBAIHZvaWQgUG9wdXBNZW51OjpoaWRl
KCkKICAgICA6OlBvc3RNZXNzYWdlKG1fcG9wdXAsIFdNX05VTEwsIDAsIDApOwogfQogCi12b2lk
IFBvcHVwTWVudTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJlY3QmIHIsIEZy
YW1lVmlldyogdikKK3ZvaWQgUG9wdXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUo
Y29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2KQogewogICAgIC8vIHIgaXMgaW4gYWJzb2x1
dGUgZG9jdW1lbnQgY29vcmRpbmF0ZXMsIGJ1dCB3ZSB3YW50IHRvIGJlIGluIHNjcmVlbiBjb29y
ZGluYXRlcwogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmNhbGN1bGF0ZVBv
c2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYpCiAgICAgcmV0dXJu
OwogfQogCi1ib29sIFBvcHVwTWVudTo6c2V0Rm9jdXNlZEluZGV4KGludCBpLCBib29sIGhvdFRy
YWNraW5nKQorYm9vbCBQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleChpbnQgaSwgYm9vbCBo
b3RUcmFja2luZykKIHsKICAgICBpZiAoaSA8IDAgfHwgaSA+PSBjbGllbnQoKS0+bGlzdFNpemUo
KSB8fCBpID09IGZvY3VzZWRJbmRleCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zOTUs
MjIgKzM5NiwyMiBAQCBib29sIFBvcHVwTWVudTo6c2V0Rm9jdXNlZEluZGV4KGludCBpLCBib29s
IGhvdFRyYWNraW5nKQogICAgIHJldHVybiB0cnVlOwogfQogCi1pbnQgUG9wdXBNZW51Ojp2aXNp
YmxlSXRlbXMoKSBjb25zdAoraW50IFBvcHVwTWVudVdpbjo6dmlzaWJsZUl0ZW1zKCkgY29uc3QK
IHsKICAgICByZXR1cm4gY2xpZW50UmVjdCgpLmhlaWdodCgpIC8gbV9pdGVtSGVpZ2h0OwogfQog
Ci1pbnQgUG9wdXBNZW51OjpsaXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkg
Y29uc3QKK2ludCBQb3B1cE1lbnVXaW46Omxpc3RJbmRleEF0UG9pbnQoY29uc3QgSW50UG9pbnQm
IHBvaW50KSBjb25zdAogewogICAgIHJldHVybiBtX3Njcm9sbE9mZnNldCArIHBvaW50LnkoKSAv
IG1faXRlbUhlaWdodDsKIH0KIAotaW50IFBvcHVwTWVudTo6Zm9jdXNlZEluZGV4KCkgY29uc3QK
K2ludCBQb3B1cE1lbnVXaW46OmZvY3VzZWRJbmRleCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
Zm9jdXNlZEluZGV4OwogfQogCi12b2lkIFBvcHVwTWVudTo6Zm9jdXNGaXJzdCgpCit2b2lkIFBv
cHVwTWVudVdpbjo6Zm9jdXNGaXJzdCgpCiB7CiAgICAgaWYgKCFjbGllbnQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNDI0LDcgKzQyNSw3IEBAIHZvaWQgUG9wdXBNZW51Ojpmb2N1c0ZpcnN0KCkK
ICAgICAgICAgfQogfQogCi12b2lkIFBvcHVwTWVudTo6Zm9jdXNMYXN0KCkKK3ZvaWQgUG9wdXBN
ZW51V2luOjpmb2N1c0xhc3QoKQogewogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTQzOCw3ICs0MzksNyBAQCB2b2lkIFBvcHVwTWVudTo6Zm9jdXNMYXN0KCkKICAgICAg
ICAgfQogfQogCi1ib29sIFBvcHVwTWVudTo6ZG93bih1bnNpZ25lZCBsaW5lcykKK2Jvb2wgUG9w
dXBNZW51V2luOjpkb3duKHVuc2lnbmVkIGxpbmVzKQogewogICAgIGlmICghY2xpZW50KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ1Nyw3ICs0NTgsNyBAQCBib29sIFBvcHVwTWVudTo6
ZG93bih1bnNpZ25lZCBsaW5lcykKICAgICByZXR1cm4gc2V0Rm9jdXNlZEluZGV4KGxhc3RTZWxl
Y3RhYmxlSW5kZXgpOwogfQogCi1ib29sIFBvcHVwTWVudTo6dXAodW5zaWduZWQgbGluZXMpCiti
b29sIFBvcHVwTWVudVdpbjo6dXAodW5zaWduZWQgbGluZXMpCiB7CiAgICAgaWYgKCFjbGllbnQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDc2LDcgKzQ3Nyw3IEBAIGJvb2wgUG9wdXBN
ZW51Ojp1cCh1bnNpZ25lZCBsaW5lcykKICAgICByZXR1cm4gc2V0Rm9jdXNlZEluZGV4KGxhc3RT
ZWxlY3RhYmxlSW5kZXgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0ZUl0ZW0oaW50
IGluZGV4KQordm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKGludCBpbmRleCkKIHsK
ICAgICBpZiAoIW1fcG9wdXApCiAgICAgICAgIHJldHVybjsKQEAgLTQ5MSw3ICs0OTIsNyBAQCB2
b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KQogICAgIDo6SW52YWxpZGF0
ZVJlY3QobV9wb3B1cCwgJnIsIFRSVUUpOwogfQogCi1JbnRSZWN0IFBvcHVwTWVudTo6Y2xpZW50
UmVjdCgpIGNvbnN0CitJbnRSZWN0IFBvcHVwTWVudVdpbjo6Y2xpZW50UmVjdCgpIGNvbnN0CiB7
CiAgICAgSW50UmVjdCBjbGllbnRSZWN0ID0gbV93aW5kb3dSZWN0OwogICAgIGNsaWVudFJlY3Qu
aW5mbGF0ZSgtcG9wdXBXaW5kb3dCb3JkZXJXaWR0aCk7CkBAIC00OTksMTIgKzUwMCwxMiBAQCBJ
bnRSZWN0IFBvcHVwTWVudTo6Y2xpZW50UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIGNsaWVudFJl
Y3Q7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjppbmNyZW1lbnRXaGVlbERlbHRhKGludCBkZWx0YSkK
K3ZvaWQgUG9wdXBNZW51V2luOjppbmNyZW1lbnRXaGVlbERlbHRhKGludCBkZWx0YSkKIHsKICAg
ICBtX3doZWVsRGVsdGEgKz0gZGVsdGE7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpyZWR1Y2VXaGVl
bERlbHRhKGludCBkZWx0YSkKK3ZvaWQgUG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKGlu
dCBkZWx0YSkKIHsKICAgICBBU1NFUlQoZGVsdGEgPj0gMCk7CiAgICAgQVNTRVJUKGRlbHRhIDw9
IGFicyhtX3doZWVsRGVsdGEpKTsKQEAgLTUxNyw3ICs1MTgsNyBAQCB2b2lkIFBvcHVwTWVudTo6
cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCiAgICAgICAgIHJldHVybjsKIH0KIAotYm9vbCBQ
b3B1cE1lbnU6OnNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCkKK2Jvb2wgUG9wdXBNZW51V2luOjpz
Y3JvbGxUb1JldmVhbFNlbGVjdGlvbigpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGJhcikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNTM3LDcgKzUzOCw3IEBAIGJvb2wgUG9wdXBNZW51OjpzY3Jv
bGxUb1JldmVhbFNlbGVjdGlvbigpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFBvcHVw
TWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVXaW46OnVwZGF0ZUZyb21F
bGVtZW50KCkKIHsKICAgICBpZiAoIW1fcG9wdXApCiAgICAgICAgIHJldHVybjsKQEAgLTU0OSwx
NCArNTUwLDkgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAg
OjpVcGRhdGVXaW5kb3cobV9wb3B1cCk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpIAoteyAKLSAgICByZXR1cm4gdHJ1ZTsgCi19Ci0KIGNvbnN0
IGludCBzZXBhcmF0b3JQYWRkaW5nID0gNDsKIGNvbnN0IGludCBzZXBhcmF0b3JIZWlnaHQgPSAx
Owotdm9pZCBQb3B1cE1lbnU6OnBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyBo
ZGMpCit2b2lkIFBvcHVwTWVudVdpbjo6cGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwg
SERDIGhkYykKIHsKICAgICBpZiAoIW1fcG9wdXApCiAgICAgICAgIHJldHVybjsKQEAgLTY2Myw3
ICs2NTksNyBAQCB2b2lkIFBvcHVwTWVudTo6cGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVj
dCwgSERDIGhkYykKICAgICAgICAgOjpSZWxlYXNlREMobV9wb3B1cCwgbG9jYWxEQyk7CiB9CiAK
LXZvaWQgUG9wdXBNZW51Ojp2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKiBzY3JvbGxCYXIpCit2b2lk
IFBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKFNjcm9sbGJhciogc2Nyb2xsQmFyKQogewogICAg
IEFTU0VSVChtX3Njcm9sbGJhcik7CiAKQEAgLTY5OSw3ICs2OTUsNyBAQCB2b2lkIFBvcHVwTWVu
dTo6dmFsdWVDaGFuZ2VkKFNjcm9sbGJhciogc2Nyb2xsQmFyKQogICAgIDo6VXBkYXRlV2luZG93
KG1fcG9wdXApOwogfQogCi12b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3Qo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lkIFBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBzY3JvbGxSZWN0ID0gcmVjdDsKICAgICBz
Y3JvbGxSZWN0Lm1vdmUoc2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+eSgpKTsKQEAgLTcwNyw3
ICs3MDMsNyBAQCB2b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlYwogICAgIDo6SW52YWxpZGF0ZVJlY3Qo
bV9wb3B1cCwgJnIsIGZhbHNlKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnJlZ2lzdGVyQ2xhc3Mo
KQordm9pZCBQb3B1cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MoKQogewogICAgIHN0YXRpYyBib29s
IGhhdmVSZWdpc3RlcmVkV2luZG93Q2xhc3MgPSBmYWxzZTsKIApAQCAtNzQzLDcgKzczOSw3IEBA
IHZvaWQgUG9wdXBNZW51OjpyZWdpc3RlckNsYXNzKCkKIH0KIAogCi1MUkVTVUxUIENBTExCQUNL
IFBvcHVwTWVudTo6UG9wdXBNZW51V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BB
UkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51V2lu
OjpQb3B1cE1lbnVXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFt
LCBMUEFSQU0gbFBhcmFtKQogewogI2lmIE9TKFdJTkNFKQogICAgIExPTkcgbG9uZ1B0ciA9IEdl
dFdpbmRvd0xvbmcoaFduZCwgMCk7CkBAIC03NzEsNyArNzY3LDcgQEAgTFJFU1VMVCBDQUxMQkFD
SyBQb3B1cE1lbnU6OlBvcHVwTWVudVduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGEKIAogY29uc3QgaW50IHNtb290aFNjcm9sbEFuaW1hdGlvbkR1cmF0aW9uID0gNTAw
MDsKIAotTFJFU1VMVCBQb3B1cE1lbnU6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCitMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25k
UHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJh
bSkKIHsKICAgICBMUkVTVUxUIGxSZXN1bHQgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxZjFlZTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtMCww
ICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVXaW5faAorI2RlZmlu
ZSBQb3B1cE1lbnVXaW5faAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgIlNjcm9sbGJh
ci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhckNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK3R5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKK3R5cGVkZWYgc3RydWN0IEhEQ19f
KiBIREM7Cit0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBQ
b3B1cE1lbnVXaW4gOiBwdWJsaWMgUG9wdXBNZW51LCBwcml2YXRlIFNjcm9sbGJhckNsaWVudCB7
CitwdWJsaWM6CisgICAgUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1
cE1lbnVXaW4oKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RD
bGllbnQoKSB7IG1fcG9wdXBDbGllbnQgPSAwOyB9CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51
Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKKyAgICBTY3JvbGxiYXIqIHNjcm9sbGJh
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CisKKyAgICBzdGF0aWMgTFBD
VFNUUiBwb3B1cENsYXNzTmFtZSgpOworCisgICAgYm9vbCB1cCh1bnNpZ25lZCBsaW5lcyA9IDEp
OworICAgIGJvb2wgZG93bih1bnNpZ25lZCBsaW5lcyA9IDEpOworCisgICAgaW50IGl0ZW1IZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1IZWlnaHQ7IH0KKyAgICBjb25zdCBJbnRSZWN0JiB3
aW5kb3dSZWN0KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dSZWN0OyB9CisgICAgSW50UmVjdCBj
bGllbnRSZWN0KCkgY29uc3Q7CisKKyAgICBpbnQgdmlzaWJsZUl0ZW1zKCkgY29uc3Q7CisKKyAg
ICBpbnQgbGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0OworCisgICAgYm9v
bCBzZXRGb2N1c2VkSW5kZXgoaW50IGluZGV4LCBib29sIGhvdFRyYWNraW5nID0gZmFsc2UpOwor
ICAgIGludCBmb2N1c2VkSW5kZXgoKSBjb25zdDsKKyAgICB2b2lkIGZvY3VzRmlyc3QoKTsKKyAg
ICB2b2lkIGZvY3VzTGFzdCgpOworCisgICAgdm9pZCBwYWludChjb25zdCBJbnRSZWN0JiBkYW1h
Z2VSZWN0LCBIREMgPSAwKTsKKworICAgIEhXTkQgcG9wdXBIYW5kbGUoKSBjb25zdCB7IHJldHVy
biBtX3BvcHVwOyB9CisKKyAgICB2b2lkIHNldFdhc0NsaWNrZWQoYm9vbCBiID0gdHJ1ZSkgeyBt
X3dhc0NsaWNrZWQgPSBiOyB9CisgICAgYm9vbCB3YXNDbGlja2VkKCkgY29uc3QgeyByZXR1cm4g
bV93YXNDbGlja2VkOyB9CisKKyAgICB2b2lkIHNldFNjcm9sbE9mZnNldChpbnQgb2Zmc2V0KSB7
IG1fc2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OyB9CisgICAgaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0OyB9CisKKyAgICBib29sIHNjcm9sbFRvUmV2ZWFsU2Vs
ZWN0aW9uKCk7CisKKyAgICB2b2lkIGluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKTsKKyAg
ICB2b2lkIHJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKTsKKyAgICBpbnQgd2hlZWxEZWx0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxEZWx0YTsgfQorCisgICAgYm9vbCBzY3JvbGxiYXJDYXB0
dXJpbmdNb3VzZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7IH0K
KyAgICB2b2lkIHNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKGJvb2wgYikgeyBtX3Njcm9sbGJh
ckNhcHR1cmluZ01vdXNlID0gYjsgfQorfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51V2lu
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCmluZGV4IGYy
NzA5YmIuLjRhNWNiMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBv
cHVwTWVudVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51
V2luLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcg
QXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMTkgKzE5
LDI0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVdpbi5oIgogCiAjaW5jbHVkZSAiQXRv
bWljU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudVdpbjo6
U2VhcmNoUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1
cChjbGllbnQpCiB7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK1BvcHVw
TWVudSogU2VhcmNoUG9wdXBNZW51V2luOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9w
b3B1cDsKK30KKworYm9vbCBTZWFyY2hQb3B1cE1lbnVXaW46OmVuYWJsZWQoKQogewogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtNDEsNyArNDcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBhdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwga2V5LmNyZWF0ZUNGU3RyaW5nKCkpOwogfQogCi12b2lk
IFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1
cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBpZiAobmFtZS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYxLDcgKzY3LDcgQEAgdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjwKICAgICBDRlByZWZlcmVuY2VzQXBwU3luY2hyb25pemUoa0NGUHJlZmVyZW5jZXNDdXJy
ZW50QXBwbGljYXRpb24pOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBp
ZiAobmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
U2VhcmNoUG9wdXBNZW51V2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MWU4N2Q3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBv
cHVwTWVudVdpbi5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRl
ZiBTZWFyY2hQb3B1cE1lbnVXaW5faAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVXaW5faAorCisj
aW5jbHVkZSAiUG9wdXBNZW51V2luLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51V2luIDogcHVibGlj
IFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51V2luKFBvcHVw
TWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAg
IHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6
CisgICAgUG9wdXBNZW51V2luIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQ
b3B1cE1lbnVXaW5faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDE3Nzky
MWMuLjE3MDMxMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgogCiAjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0
b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtODgs
OCArODksOCBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICBt
X2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdSaWdodChMZW5ndGgodGhlbWUoKS0+cG9w
dXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxv
Y2stPnN0eWxlKCktPnNldFBhZGRpbmdUb3AoTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQ
YWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwogICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+
c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0
b20oc3R5bGUoKSksIEZpeGVkKSk7Ci0gICAgICAgIAotICAgIGlmIChQb3B1cE1lbnU6Oml0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKKworICAgIGlmIChkb2N1bWVudCgpLT5wYWdl
KCktPmNocm9tZSgpLT5zZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CiAg
ICAgICAgIC8vIEl0ZW1zIGluIHRoZSBwb3B1cCB3aWxsIG5vdCByZXNwZWN0IHRoZSBDU1MgdGV4
dC1hbGlnbiBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMsCiAgICAgICAgIC8vIHNvIHdlIG11c3Qg
YWRqdXN0IG91ciBvd24gc3R5bGUgdG8gbWF0Y2guCiAgICAgICAgIG1faW5uZXJCbG9jay0+c3R5
bGUoKS0+c2V0VGV4dEFsaWduKExFRlQpOwpAQCAtMjc4LDcgKzI3OSw3IEBAIHZvaWQgUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRlIHRoZSBzaG93UG9wdXAgY2FsbCBh
bmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJsb2NrKCk7CiAgICAgaWYgKCFtX3Bv
cHVwKQotICAgICAgICBtX3BvcHVwID0gUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAg
IG1fcG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVQb3B1cE1lbnUo
dGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggZDcyZTFhOS4uOTZkZWFkNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIFJl
bmRlck1lbnVMaXN0X2gKICNkZWZpbmUgUmVuZGVyTWVudUxpc3RfaAogCisjaW5jbHVkZSAiUG9w
dXBNZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
RmxleGlibGVCb3guaCIKIApAQCAtMzUsOCArMzYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFBvcHVwTWVudTsKIGNsYXNzIFJlbmRlclRleHQ7CitjbGFzcyBTZWxlY3RVSUNs
aWVudDsKIAogI2lmIEVOQUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKIGNsYXNzIFJlbmRlck1l
bnVMaXN0IDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94LCBwcml2YXRlIExpc3RQb3B1cE1lbnVD
bGllbnQgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKaW5kZXggZDBhYjEwNy4uYTljMTY2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0yLDYgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKSAKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogCisjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzgsNyArNDAsNiBAQAogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJTZWxl
Y3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaW1w
bGVGb250RGF0YS5oIgpAQCAtNjIsNyArNjMsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNlaAog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
KCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVwLT5k
aXNjb25uZWN0Q2xpZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5k
aXNjb25uZWN0Q2xpZW50KCk7CiAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSAwOwogICAgIH0KICAK
QEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6YWRk
U2VhcmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZl
TmFtZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0g
ZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMp
OwogCiAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50
U2VhcmNoZXMpOwogfQpAQCAtMTI1LDcgKzEyNiw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2Vh
cmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0
ZSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hy
b21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKIAogICAgIGlmICghbV9zZWFyY2hQ
b3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMTQgKzE0NiwxNCBAQCB2
b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9z
ZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwog
ICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
dHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVw
TWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpLCBkb2N1bWVudCgpLT52
aWV3KCksIC0xKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCgpCiB7CiAgICAgQVNTRVJUKG5vZGUoKS0+aXNIVE1MRWxlbWVudCgpKTsKICAgICBpZiAo
bV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cC0+aGlkZSgpOworICAgICAgICBt
X3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+aGlkZSgpOwogfQogCiB2b2lkIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c3VidHJlZUhhc0NoYW5nZWQoKQpAQCAtNjg1LDcgKzY4Niw3IEBA
IHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAg
ICAgfQogCiAgICAgaWYgKG1fc2VhcmNoUG9wdXBJc1Zpc2libGUpCi0gICAgICAgIG1fc2VhcmNo
UG9wdXAtPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVw
TWVudSgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKQpAQCAtODgzLDcg
Kzg4NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQo
dW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVuCiAgICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAg
ICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlz
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKICAgICAgICAgICAgICAg
ICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hl
cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggOTJlY2FkZC4uNGZlNGY5ZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2Jp
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20v
KQorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsNiArMjUsNyBAQAogCiAj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wu
aCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMiw3ICszNCw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsK
IGNsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVu
dDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVudTsKK2NsYXNzIFNlYXJjaFVJQ2xpZW50OwogY2xhc3Mg
U3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudDsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZDQzZDg4YS4uY2ZhZDQ2
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCisjaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgiCiAjaWYgVVNFKFY4KQpA
QCAtNzY1LDQgKzc2NywxOSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmV4aXRGdWxsc2NyZWVu
Rm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgp
LT5leGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViTm9kZShub2RlKSk7CiB9CiAKK2Jvb2wgQ2hyb21l
Q2xpZW50SW1wbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IENocm9t
ZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvcmU6OlBvcHVwTWVu
dUNocm9taXVtKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0oY2xpZW50KSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCBl
ODI0MzgxLi40ZGY5YWJiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0zMiwxMiArMzMsMTUgQEAKICNkZWZpbmUgQ2hyb21lQ2xpZW50SW1wbF9o
CiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlBvcHVwTWVu
dS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogY2xhc3MgRmlsZUNob29zZXI7CiBjbGFzcyBI
VE1MUGFyc2VyUXVpcmtzOwogY2xhc3MgUG9wdXBDb250YWluZXI7CitjbGFzcyBQb3B1cE1lbnVD
bGllbnQ7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIH0K
QEAgLTE2NSw2ICsxNjksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkN1cnNvckluZm8mIGN1cnNvcik7CiAgICAgdm9pZCBzZXRDdXJzb3JGb3JQbHVnaW4oY29uc3Qg
V2ViQ3Vyc29ySW5mbyYgY3Vyc29yKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisK
IHByaXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFp
bmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggZmZiZDY0Mi4uZjM3ZGExOSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNSw2ICs1LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwOCBEaWVnbyBHb256YWxlegogICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCkBAIC00Nyw2ICs0OCw4IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnVFZmwuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVFZmwuaCIK
ICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKQEAgLTUxMyw0ICs1MTYsMTkgQEAgdm9pZCBD
aHJvbWVDbGllbnRFZmw6OmRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUs
IGNvbnN0IFZpZXdwb3J0QXIKICAgICBld2tfdmlld192aWV3cG9ydF9zZXQobV92aWV3LCBhcmd1
bWVudHMud2lkdGgsIGFyZ3VtZW50cy5oZWlnaHQsIGFyZ3VtZW50cy5pbml0aWFsU2NhbGUsIGFy
Z3VtZW50cy5taW5pbXVtU2NhbGUsIGFyZ3VtZW50cy5tYXhpbXVtU2NhbGUsIGFyZ3VtZW50cy51
c2VyU2NhbGFibGUpOwogfQogCitib29sIENocm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVm
UHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1l
bnVFZmwoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVD
bGllbnRFZmw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUVmbChjbGll
bnQpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgKaW5kZXggY2U4YWJkMS4uYjIyZDk4MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4
IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTEzNyw2ICsxMzgsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJndW1l
bnRzJiBhcmd1bWVudHMpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKKwogICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7CiAgICAgS1VSTCBt
X2hvdmVyZWRMaW5rVVJMOwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcAppbmRleCA4ODQ0MGJhLi45Mzk0MThhIDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC00LDYgKzQsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwpAQCAtMzEsOSArMzIsMTIgQEAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51R3RrLmgiCiAjaW5jbHVkZSAiSGl0
VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51R3RrLmgiCiAjaW5jbHVkZSAid2Via2l0Z2VvbG9jYXRpb25w
b2xpY3lkZWNpc2lvbi5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3
ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgpAQCAtNjE2LDQgKzYyMCwxOSBAQCB2b2lkIENocm9tZUNs
aWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lKiBmcgogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAiZ2VvbG9jYXRp
b24tcG9saWN5LWRlY2lzaW9uLWNhbmNlbGxlZCIsIHdlYkZyYW1lKTsKIH0KIAorYm9vbCBDaHJv
bWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IENocm9tZUNs
aWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51R3RrKGNsaWVudCkpOwor
fQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50Ojpj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVHdGsoY2xpZW50
KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
CmluZGV4IGNlNWM1YTcuLjNmNzZkMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTIyLDkgKzIzLDE1IEBACiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNp
bmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNo
UG9wdXBNZW51LmgiCiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3IFdlYktpdFdlYlZp
ZXc7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKK30KKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICBjbGFzcyBDaHJvbWVDbGllbnQgOiBwdWJsaWMgV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50IHsKQEAgLTEyMiw2ICsxMjksMTAgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIAorICAgICAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRX
ZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgICAgIFdlYkNvcmU6OktVUkwgbV9ob3ZlcmVkTGlua1VS
TDsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDcw
N2QwODAuLmZhMjliMzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNjcs
NiArMTY3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24q
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSB7IH0KIAorICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJW
aWV3OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0K
aW5kZXggZWI1NjI0MC4uZTkzZWEwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0KQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNjIsMTIgKzYyLDE2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZv
cm1TdHJpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9wdXBNZW51TWFjLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1l
bnVNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dp
bmRvd0ZlYXR1cmVzLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgogCisKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbXBv
cnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2VuZGlmCkBAIC03MjQsNiArNzI4LDIxIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKiBu
b2RlKQogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9y
bURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOwog
fQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpQ
b3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51TWFjKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZWFyY2hQb3B1cE1lbnVNYWMoY2xpZW50KSk7Cit9CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXll
cihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCmRpZmYgLS1naXQg
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCAyYzY0YTc4Li43OTEwYzFm
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
CisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCkBAIC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIlBhZ2VDbGll
bnRRdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCiAjaWYgZGVmaW5lZChRX1dTX01BRU1P
XzUpCiAjaW5jbHVkZSAiUXRNYWVtb1dlYlBvcHVwLmgiCiAjZWxzZQpAQCAtNTIsNiArNTQsNyBA
QAogI2VuZGlmCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJTY3JvbGxi
YXJUaGVtZS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IldpbmRvd0ZlYXR1cmVzLmgiCkBAIC02NDQsNCArNjQ3LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50
UXQ6OmRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdw
b3J0QXJnCiAgICAgZW1pdCBtX3dlYlBhZ2UtPnZpZXdwb3J0Q2hhbmdlUmVxdWVzdGVkKGhpbnRz
KTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1l
bnU+IENocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVRdChjbGllbnQp
KTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudFF0OjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVRdChjbGllbnQpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuaAppbmRleCA3MGI0YTI1Li4wNmFiNWI4IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKQEAgLTE3Niw2ICsxNzcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNaW5pbWl6ZWQoKTsKICNlbmRpZgogCisgICAgICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAg
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwog
ICAgICAgICBRdEFic3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNlbGVjdFBvcHVwKCk7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSosIGNvbnN0
IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNzM1MzJhNi4uMmU5YmE1YiAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTUsNiArNTYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVdpbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2VhcmNoUG9wdXBNZW51V2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0
dXJlcy5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtODY4LDMgKzg3MSwxOCBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKQogCiAjZW5kaWYK
IAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOwor
fQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVXaW4oY2xpZW50KSk7Cit9CisKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3ODQ1YTkuLmU3
MTdlZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY1LDYgKzE2NiwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm90aWZpY2F0
aW9uUHJlc2VudGVyKj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9CiAjZW5kaWYK
IAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ09NUHRyPElX
ZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlKCk7CiAKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62723</attachid>
            <date>2010-07-27 12:11:00 -0700</date>
            <delta_ts>2010-07-27 12:57:24 -0700</delta_ts>
            <desc>patch 5</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>186213</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA1YzhiZWIxZDQ0OWM3NjdkMGFlOGUxMDUyZGZiODBiOGVmMjc0N2QyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMjcgSnVsIDIwMTAgMTU6NTk6NDAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51IGhhdmUgYmVlbiBtYWRlIHB1cmUgdmlydHVhbC4KCiogcGxhdGZvcm0vUG9wdXBNZW51
Lmg6CihXZWJDb3JlOjpQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgoqIHBsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojp+U2VhcmNoUG9wdXBNZW51KToK
CkNsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHlDb250cm9sU2luZ2xlTGluZSBo
YXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CihXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3ZXJlIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBpbnN0YW5jZXMgb2YgY2xhc3NlcwpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCgoqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKFdlYkNvcmU6OkVtcHR5UG9w
dXBNZW51OjpoaWRlKToKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCk6CihXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CihXZWJDb3Jl
OjpFbXB0eVNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6RW1wdHlTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpFbXB0eVNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudSk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlUG9wdXBN
ZW51KToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKiBwYWdlL0No
cm9tZS5oOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CgpPcmlnaW5hbCBjb250ZW50cyBvZiBmaWxl
cyBQb3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmggaGF2ZSBiZWVuIHNwbGl0ZWQKaW4g
c2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFguaCBhbmQg
U2VhcmNoUG9wdXBNZW51WFhYLmgpLgpFYWNoIG9mIG5ldyB0aGUgZmlsZXMgY29udGFpbiB0aGUg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1lbnUgb3IKU2VhcmNoUG9w
dXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtLgoK
YnJldzoKCiogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNvcmU6OlBvcHVw
TWVudUJyZXc6OlBvcHVwTWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6Omhp
ZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL2JyZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OmNsaWVudCk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVCcmV3OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgoKY2hy
b21pdW06CgoqIFdlYkNvcmUuZ3lwaToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0p
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSk6CihXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQp
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQpOgoqIHBsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJv
bWl1bTo6Y2xpZW50KToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0pOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSk6
CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMpOgoqIHBsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmg6IEFkZGVkLgoKZWZsOgoKKiBwbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51
RWZsKToKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFk
ZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgoqIHBsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQ
b3B1cE1lbnVFZmwpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51RWZsOjplbmFibGVkKToKKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmg6IEFkZGVkLgoKZ3RrOgoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKToKKFdl
YkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVudUd0ayk6CihXZWJDb3JlOjpQb3B1cE1lbnVH
dGs6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKFdlYkNvcmU6OlBvcHVw
TWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpkaXNj
b25uZWN0Q2xpZW50KToKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQp
OgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQpOgooV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbik6CihXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKToKKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgooV2Vi
Q29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgoqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVH
dGspOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmg6IEFk
ZGVkLgoKaGFpa3U6CgoqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcDoKKFdlYkNv
cmU6OkhhaWt1UG9wdXA6OkhhaWt1UG9wdXApOgooV2ViQ29yZTo6SGFpa3VQb3B1cDo6fkhhaWt1
UG9wdXApOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KToKKFdlYkNv
cmU6OlBvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UpOgooV2ViQ29yZTo6UG9wdXBNZW51
SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OnNob3cp
OgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmhpZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBwbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5o
OiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKFdl
YkNvcmU6OlBvcHVwTWVudUhhaWt1OjpjbGllbnQpOgoqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBv
cHVwTWVudUhhaWt1LmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSk6CiogcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuaDogQWRkZWQuCgptYWM6CgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmg6IEFkZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNjb25uZWN0Q2xpZW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgooV2ViQ29yZTo6
UG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xl
YXIpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CihXZWJDb3JlOjpQb3B1cE1l
bnVNYWM6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51TWFjOjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJj
aGVzKToKCnF0OgoKKiBXZWJDb3JlLnBybzoKKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6
CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQpOgooV2ViQ29yZTo6UG9wdXBNZW51
UXQ6On5Qb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6
aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgoqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oOgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVRdDo6cG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVj
ZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CiogcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCgp3aW46CgoqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgooV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp+UG9w
dXBNZW51V2luKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmhpZGUpOgooV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp2aXNpYmxlSXRl
bXMpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9j
dXNGaXJzdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmRvd24pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp1cCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Y2xpZW50UmVjdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEp
OgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyk6
CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNsaWVudCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhcik6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46Oml0ZW1I
ZWlnaHQpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3aW5kb3dSZWN0KToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6cG9wdXBIYW5kbGUpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRXYXND
bGlja2VkKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2FzQ2xpY2tlZCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNj
cm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndoZWVsRGVsdGEpOgooV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSk6CihXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKToKKiBwbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNo
UG9wdXBNZW51V2luKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5oOiBBZGRlZC4KCndrOgoKKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6CihXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6UG9wdXBNZW51V3g6On5Q
b3B1cE1lbnVXeCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXeDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51
SXRlbVNlbGVjdGVkKToKKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
aDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6Y2xpZW50KToKKiBwbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNo
UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudVd4Ojpwb3B1cE1lbnUpOgoqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6
IEFkZGVkLgoKQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bwppbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCiogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgoKV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVw
TWVudSk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXQv
d2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6Cgoq
IFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoK
V2ViS2l0MjoKCkNsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdCBmcm9tIFBvcHVwTWVudSBhbmQKU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1
cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViS2l0
OjpXZWJQb3B1cE1lbnU6OnNob3cpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgooV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CihXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6
cG9wdXBNZW51KToKKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMpOgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCgpBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQppbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21l
Q2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCmltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpidWlsZCBpc3N1ZXM6CgoqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjc5ICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDEyICstCiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgMTQgKy0KIFdlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKwogV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrLQogV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsK
IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
OSArCiBXZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oICAgICAgICAgICAgICAgICAgICAgICB8
ICAxNzYgKy0tLS0tLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCAg
ICAgICAgICAgICAgICAgfCAgIDIxICstCiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51
QnJldy5jcHAgICAgICAgICAgICB8ICAgMjYgKystCiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9w
dXBNZW51QnJldy5oICAgICAgICAgICAgICB8ICAgNTQgKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuY3BwICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRm
b3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCAgICB8ICAgMjMgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaCAgICAgIHwgICAxOSAr
KwogLi4uL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCAgfCAg
IDE4ICstCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCAg
ICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwICAgICAg
ICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oICAg
ICAgICAgICAgICAgIHwgICA1NCArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuY3BwICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJj
aFBvcHVwTWVudUVmbC5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAgICAgICAgICAgICAgIHwgICAyNSArLQogV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUG9wdXBNZW51R3RrLmggICAgICAgICAgICAgICAgfCAgIDY3ICsrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwICAgICAgICB8ICAgMTkgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oICAgICAgICAgIHwgICA0NCAr
KysKIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwICAgICAgICAgIHwg
ICAzMSArKy0KIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaCAgICAgICAg
ICAgIHwgICA1NiArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhh
aWt1LmNwcCAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBN
ZW51SGFpa3UuaCAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVu
dU1hYy5oICAgICAgICAgICAgICAgIHwgICA2MiArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UG9wdXBNZW51TWFjLm1tICAgICAgICAgICAgICAgfCAgIDIyICstCiBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gICAgICAgICB8ICAgMTggKy0KIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwICAgICAgICAgICAgICAgIHwgICAyNSArLQog
V2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oICAgICAgICAgICAgICAgICAgfCAgIDQ5
ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggICAgICAgICAg
IHwgICAgMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgICAg
ICAgICAgfCAgIDIwICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0Lmgg
ICAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
Y3BwICAgICAgICAgICAgICB8ICAgNjUgKysrLS0tCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uaCAgICAgICAgICAgICAgICB8ICAgOTggKysrKysrKwogV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCAgICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3Bs
YXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJD
b3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcCAgICAgICAgICAgICAgICB8ICAgMjkgKy0K
IFdlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaCAgICAgICAgICAgICAgICAgIHwgICA2
NCArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAgICAgICAg
ICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmggICAg
ICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAg
ICAgICAgICAgICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmggICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcCAgfCAgIDE3ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAgICB8ICAgIDQgKy0KIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCAgICAgICAgICAgICB8ICAgIDggKwogV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsr
CiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgICAgICB8ICAg
MTggKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggICAgICAg
IHwgICAgNSArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcCAgICAgIHwgICAxOSArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCAgICAgICAgfCAgIDExICsKIFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmNwcCAgfCAgIDE4ICsrCiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICB8ICAgIDUgKwogV2ViS2l0L21hYy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgICAgICB8ICAgIDYgKy0KIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAyMSArKy0KIFdl
YktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyAr
KwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCAgICAgICAgfCAg
IDE4ICsrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAg
ICB8ICAgIDUgKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgICAgICB8ICAgMTggKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggICAgICAgIHwgICAgNSArCiBXZWJLaXQvd3gvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcCAgICAgICAgIHwgICAxOCArKwogV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaCAgICAgICAgICAgfCAgICA1ICsKIFdlYktpdDIvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MSArKysKIFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxNiArKwogLi4uL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgIDE3ICsrCiAu
Li4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8ICAgIDQg
KwogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgfCAg
IDU2ICsrKysKIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
aCAgIHwgICA0OCArKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNw
cCAgICAgICAgICB8ICAgNTAgKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmggfCAgIDQ0ICsrKwogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrCiA4NyBmaWxlcyBjaGFuZ2VkLCAyMjAy
IGluc2VydGlvbnMoKyksIDM4MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZs
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVu
dUd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1l
bnVIYWlrdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFy
Y2hQb3B1cE1lbnVIYWlrdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUG9wdXBNZW51TWFjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZWFyY2hQb3B1cE1lbnVNYWMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vcXQvUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3Bs
YXRmb3JtL3d4L1BvcHVwTWVudVd4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRm
b3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MTYwMzc2Li5mNDBjMTQ0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4MiBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAg
ICAgICBDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGhhdmUgYmVlbiBtYWRl
IHB1cmUgdmlydHVhbC4gCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgICogcGxhdGZvcm0v
U2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6On5T
ZWFyY2hQb3B1cE1lbnUpOgorCisgICAgICAgIENsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJl
bmRlclRleHlDb250cm9sU2luZ2xlTGluZSBoYXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKKyAgICAg
ICAgdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWVudUxpc3Q6OmFkanVzdElubmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoaWRlUG9wdXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgor
CisgICAgICAgIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IHdlcmUgbWFkZSByZXNwb25zaWJsZSBm
b3IgcHJvdmlkaW5nIGluc3RhbmNlcyBvZiBjbGFzc2VzIAorICAgICAgICBQb3B1cE1lbnUgYW5k
IFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eVBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlT
ZWFyY2hQb3B1cE1lbnU6OnBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNlYXJj
aFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
U2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RW1wdHlTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6Cisg
ICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWU6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorCisgICAgICAgIE9yaWdpbmFsIGNvbnRlbnRzIG9mIGZpbGVzIFBv
cHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaCBoYXZlIGJlZW4gc3BsaXRlZCAKKyAgICAg
ICAgaW4gc2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFgu
aCBhbmQgU2VhcmNoUG9wdXBNZW51WFhYLmgpLgorICAgICAgICBFYWNoIG9mIG5ldyB0aGUgZmls
ZXMgY29udGFpbiB0aGUgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1l
bnUgb3IgCisgICAgICAgIFNlYXJjaFBvcHVwTWVudSBhbmQgYXJlIHNwZWNpZmljIGZvciB0aGUg
Y29ycmVzcG9uZGluZyBwbGF0Zm9ybS4KKworICAgICAgICBicmV3OgorCisgICAgICAgICogcGxh
dGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUJyZXc6OlBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6
flBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29u
bmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Jy
ZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJy
ZXc6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVj
ZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6U2Vh
cmNoUG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3
OjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFk
ZGVkLgorCisgICAgICAgIGNocm9taXVtOgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudUNocm9taXVtOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNo
cm9taXVtOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVD
aHJvbWl1bTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVt
OjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVDaHJvbWl1bTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dUNocm9taXVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNo
cm9taXVtOjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51Q2hyb21pdW06OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaDogQWRkZWQuCisKKyAgICAgICAgZWZs
OgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6On5Qb3B1cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6aGlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudUVmbDo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9w
dXBNZW51RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6bG9hZFJlY2Vu
dFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oOiBBZGRlZC4K
KworICAgICAgICBndGs6CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUd0azo6UG9wdXBNZW51R3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6flBv
cHVwTWVudUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0
azo6bWVudUl0ZW1BY3RpdmF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpt
ZW51VW5tYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51UG9zaXRp
b25GdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1lbnVSZW1vdmVJ
dGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmg6IEFkZGVkLgorCisgICAgICAgIGhhaWt1OgorCisgICAgICAgICogcGxhdGZv
cm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFpa3VQb3B1
cDo6SGFpa3VQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpIYWlrdVBvcHVwOjp+SGFpa3VQb3B1
cCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UpOgor
ICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6On5Qb3B1cE1lbnVIYWlrdSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVIYWlrdTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5lY3RD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmNsaWVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OlNlYXJjaFBvcHVwTWVudUhhaWt1KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpzYXZlUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6ZW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6cG9wdXBNZW51KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oOiBBZGRlZC4KKwor
ICAgICAgICBtYWM6CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bv
cHVwTWVudU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6ZGlz
Y29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OmNsaWVudCk6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudU1hYzo6UG9wdXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudU1hYzo6flBvcHVwTWVudU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OnVwZGF0
ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZWFyY2hQb3B1
cE1lbnVNYWMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6U2VhcmNoUG9w
dXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6cG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6ZW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OmxvYWRSZWNlbnRTZWFyY2hl
cyk6CisKKyAgICAgICAgcXQ6CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVR
dDo6UG9wdXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6On5Qb3B1cE1l
bnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVRdDo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnVRdDo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgd2luOgorCisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbik6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aGlk
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5k
U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnZpc2libGVJdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Omxpc3RJbmRleEF0UG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpmb2N1c2VkSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpmb2N1c0ZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Zm9jdXNMYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZG93bik6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6aW52YWxpZGF0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2lu
OjpjbGllbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aW5jcmVtZW50
V2hlZWxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVs
RGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxUb1JldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwZGF0ZUZyb21FbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51V2luOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpQb3B1cE1lbnVXbmRQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdp
bjo6d25kUHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Y2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6aXRlbUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Ondp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpwb3B1cEhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldFdhc0NsaWNrZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3YXNDbGlja2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6c2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
d2hlZWxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhckNh
cHR1cmluZ01vdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1l
bnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpTZWFyY2hQ
b3B1cE1lbnVXaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpwb3B1
cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6c2F2ZVJlY2VudFNlYXJjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmg6IEFkZGVk
LgorCisgICAgICAgIHdrOgorCisgICAgICAgICogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVd4Ojp+UG9wdXBNZW51V3gpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V3g6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1T
ZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6aGlkZSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3d4L1BvcHVwTWVudVd4Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OlNlYXJjaFBvcHVwTWVu
dVd4KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjpzYXZlUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OmxvYWRSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6ZW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6cG9wdXBNZW51KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oOiBBZGRlZC4KKworCisKIDIwMTAt
MDctMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgzMzlmZmIuLjJkYjJlY2UgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMjQ2Miw2ICsyNDYyLDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51
R3RrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmggXAogCVdlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3Rr
LmNwcCBcCkBAIC0yNDcwLDYgKzI0NzEsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmggXAogCVdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQ
b3B1cE1lbnVHdGsuY3BwIFwKKwlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVH
dGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Tb3VuZEd0ay5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNjY1ZGFiNC4uOTJiYzgxNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0yNTAsNiArMjUwLDcgQEAgX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2UyN2NoZWNrSW50ZWdy
aXR5QmVmb3JlT3BlbmluZ0V2CiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTRvcGVuRVJLTlNf
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNWNsb3NlRXYKIF9fWk43V2ViQ29y
ZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJY29uRGF0YWJhc2VDbGllbnRFCitfX1pO
N1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2Vi
Q29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0
U2l6ZUUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTZpc1BhZ2VCb3hWaXNpYmxlRVBOU181
RnJhbWVFaQpAQCAtNDA4LDYgKzQwOSw3IEBAIF9fWk43V2ViQ29yZTE3bmFtZUZvckN1cnNvclR5
cGVFTlNfNkN1cnNvcjRUeXBlRQogX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVQS2NS
aQogX19aTjdXZWJDb3JlMThkZXByZWNhdGVkUGFyc2VVUkxFUktOU182U3RyaW5nRQogX19aTjdX
ZWJDb3JlMThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkUKK19fWk43
V2ViQ29yZTE4U2VhcmNoUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19a
TjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTZyZXN1bWVBbmltYXRpb25zRVBOU184RG9j
dW1lbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1c3BlbmRBbmltYXRp
b25zRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIyMHBh
dXNlQW5pbWF0aW9uQXRUaW1lRVBOU18xMlJlbmRlck9iamVjdEVSS05TXzZTdHJpbmdFZApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBiODMyNTZlLi40NGQ0NTg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjEyNCw2ICsyMTI0LDcgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTWFjLm1tJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtV2luLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0u
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TaGFyZWRUaW1lckNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU291bmRDaHJvbWl1bVBv
c2l4LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU291bmRDaHJvbWl1bVdp
bi5jcHAnLApAQCAtMjYxNiw2ICsyNjE3LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
UGFzdGVib2FyZE1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BsYXRmb3JtTW91
c2VFdmVudE1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVu
TWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0nLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tJywKQEAgLTI2MjMsNiArMjYyNSw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0nLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0nLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TZWFy
Y2hQb3B1cE1lbnVNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5t
bScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tJywKQEAgLTI3
NzMsNiArMjc3Niw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUGxhdGZvcm1Nb3VzZUV2
ZW50UXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9x
dC9RV2ViUG9wdXAuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9RV2ViUG9wdXAuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAnLApAQCAtMjc4Myw2
ICsyNzg3LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TY3JvbGxiYXJUaGVtZVF0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2Nyb2xsYmFyVGhlbWVRdC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3F0L1NoYXJlZEJ1ZmZlclF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2hhcmVk
VGltZXJRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NvdW5kUXQuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDA5MDU0MjIuLjIyMTY5ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTcwNiw2ICsxNzA2LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIFwKICAgICBwbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoRXZlbnQuaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50
LmggXAorICAgIHBsYXRmb3JtL1BvcHVwTWVudS5oIFwKICAgICBwbGF0Zm9ybS9xdC9DbGlwYm9h
cmRRdC5oIFwKICAgICBwbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oIFwKICAgICBwbGF0Zm9y
bS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCBcCkBAIC0xNzE1LDYgKzE3MTYsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBwbGF0Zm9ybS9TY3JvbGxiYXIuaCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFy
VGhlbWVDb21wb3NpdGUuaCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsVmlldy5oIFwKKyAgICBwbGF0
Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggXAog
ICAgIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIFwKICAgICBwbGF0Zm9ybS9zcWwvU1FM
aXRlRmlsZVN5c3RlbS5oIFwKQEAgLTMyODYsNiArMzI4OCw4IEBAIEhFQURFUlMgKz0gXAogICAg
IC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaCBcCiAgICAg
Li4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBvcHVwTWVudS5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmggXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oIFwKQEAgLTMzNTgsNiArMzM2Miw4IEBAIFNPVVJDRVMgKz0gXAogICAgIC4u
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmFja0ZvcndhcmRDb250cm9sbGVyQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAorICAgIC4uL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwKICAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwIFwK
ICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0Fy
ZWEuY3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYTk3ZmZhNy4uZWI2
MjgyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjQ3MSw4ICsy
MjQ3MSw4IEBACiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU2VjdXJpdHlP
cmlnaW4uaCINCiAJCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNldHRpbmdzLmNwcCINCiAJCQkJPg0K
IAkJCTwvRmlsZT4NCkBAIC0yMzc4MCw2ICsyMzc4MCwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFBvcHVw
TWVudVdpbi5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRoZW1lU2FmYXJpLmNwcCINCiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KQEAgLTIzODAwLDYgKzIzODA0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9G
aWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2Vh
cmNoUG9wdXBNZW51V2luLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2hhcmVkQnVmZmVyV2luLmNwcCINCiAJCQkJ
CT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggM2Q1YmYzMi4uZWY1ZTM0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQyLDcgKzQyLDcgQEAKIAkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEy
QjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEYzMEIw
QzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQkwNjVB
RDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGNDBCMEMyRURBMDA1
QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8qIFBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICovOyB9OworCQkwNjY4RTE4
QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBN
ZW51LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MDY2OEUxOTAwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhFMThFMEFERDk2NDAwMDQxMjhF
MCAvKiBQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCTA2NkM3NzJCMEFCNjAzQjcwMDIzOENDNCAv
KiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2Qzc3MkQwQUI2MDNE
MjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9v
c2VyTWFjLm1tICovOyB9OwpAQCAtMzU4NSwxMiArMzU4NSwxMiBAQAogCQlBQjRDQjRFQjBCOEJE
QTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI0Q0I0RUEwQjhCREEzRDAwOUY0MEIw
IC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCAqLzsgfTsKIAkJQUI2N0QxQTgwOTdGM0FF
MzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5k
ZXJUZXh0Q29udHJvbC5jcHAgKi87IH07CiAJCUFCNjdEMUE5MDk3RjNBRTMwMEY5MzkyRSAvKiBS
ZW5kZXJUZXh0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUI2N0QxQTcwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmgg
Ki87IH07Ci0JCUFCNzE3MDg5MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDg4MEIz
MTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQUI3MTcwODkwQjMx
MTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJj
aFBvcHVwTWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUFCNzE3MEEwMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA5RjBC
MzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQlBQkFGMjIw
ODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJBRjIyMDcwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9t
ZU1hYy5tbSAqLzsgfTsKIAkJQUJCNTQxOUUwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RC
b3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJC
NTQxOUMwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guY3BwICovOyB9OwogCQlBQkI1
NDE5RjBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJCNTQxOUQwQUNEREZFNDAwMjgyMEVCIC8q
IFJlbmRlckxpc3RCb3guaCAqLzsgfTsKLQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBv
cHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovOyB9
OworCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3NjBCMzNBQTZE
MDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUJEREZFNzkwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRl
ck1lbnVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFCRERGRTczMEE1QzZFNkYwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5jcHAgKi87IH07
CiAJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzQwQTVDNkU3MDAw
QTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggKi87IH07CiAJCUFCRkU3RTEyMEQzMkZBRjYwMDY2
RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkZFN0UxMDBEMzJGQUY1MDA2NkY0RDIgLyogTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwICovOyB9OwpAQCAtNTAxMSw2ICs1MDExLDggQEAKIAkJRDIzQ0E1
NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAv
KiBKU1JhbmdlRXhjZXB0aW9uLmggKi87IH07CiAJCUQyM0NBNTVGMEFCMEVBQjYwMDUxMDhBNSAv
KiBKU1JhbmdlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQyM0NBNTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9u
LmNwcCAqLzsgfTsKIAkJRDIzQ0E1NkMwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU2
QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKKwkJRDM5RDAwNkQx
MUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVw
TWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCUQzOUQwMDlEMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDlDMTFGOTA3
RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyog
Q29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
OEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8q
IEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRP
dXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmgg
Ki87IH07CkBAIC0xMDY4Myw2ICsxMDY4NSw4IEBACiAJCUQyM0NBNTVDMEFCMEVBQUUwMDUxMDhB
NSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NB
NTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhj
ZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQx
RjIgLyogUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
cHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMzlEMDA5QzExRjkw
N0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlYXJjaFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAw
MjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTIyMzIsMTAgKzEyMjM2LDEyIEBACiAJCQkJNEIyNzA5ODEwQUYyRTVFMDAwNjUx
MjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gKi8sCiAJCQkJOTM1QzQ3NkYwOUFDNEQ3MzAwQTZBQUI0
IC8qIFBsYXRmb3JtTW91c2VFdmVudE1hYy5tbSAqLywKIAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2
QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sCisJCQkJRDM5RDAwNkMxMUY4RTMwODAw
NjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICovLAogCQkJCTA2NjhFMThFMEFERDk2NDAwMDQxMjhF
MCAvKiBQb3B1cE1lbnVNYWMubW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8q
IFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgKi8sCiAJCQkJNDQ3RDY5MDEwRkE2MjY4MTAwMTVDQ0Ix
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJCTQ0N0Q2OTAyMEZBNjI2ODEw
MDE1Q0NCMSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi8sCisJCQkJRDM5RDAwOUMx
MUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovLAogCQkJCTFDRTI0Rjk2
MEQ3Q0FGMEUwMDdFMDRDMiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gKi8sCiAJCQkJQkNBQTkwQzIw
QTdFQkE2MDAwOEIxMjI5IC8qIFNjcm9sbGJhci5jcHAgKi8sCiAJCQkJQkM4Qjg1M0MwRTdDN0Yx
MTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi8sCkBAIC0xOTg2MCw2ICsxOTg2Niw4
IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29tTW9k
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDM5RDAwNkQxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVw
TWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8q
IFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IDk5MzhiYmMuLjBkM2ZhNDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xLDYgKzEsNyBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBFcmljIFNlaWRlbCAoZXJpY0B3ZWJraXQub3Jn
KQogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM5LDcgKzQwLDkgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkhhbHRlckNsaWVudC5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNs
dWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogLyoKICBUaGlzIGZpbGUgaG9sZHMgZW1wdHkgQ2xp
ZW50IHN0dWJzIGZvciB1c2UgYnkgV2ViQ29yZS4KQEAgLTU2LDYgKzU5LDI1IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRW1wdHlQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVW
aWV3KiwgaW50IGluZGV4KSB7fQorICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkge30KKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBkaXNjb25u
ZWN0Q2xpZW50KCkge30KK307CisKK2NsYXNzIEVtcHR5U2VhcmNoUG9wdXBNZW51IDogcHVibGlj
IFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVw
TWVudSgpIHsgcmV0dXJuICZtX3BvcHVwOyB9CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRT
ZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBz
ZWFyY2hJdGVtcykge30KKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSB7fQorICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKworcHJpdmF0ZToKKyAg
ICBFbXB0eVBvcHVwTWVudSBtX3BvcHVwOworfTsKKwogY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQg
OiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5FbXB0eUNocm9t
ZUNsaWVudCgpIHsgfQpAQCAtMTA4LDYgKzEzMCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0KCkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVBvcHVwTWVudSgp
KTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcg
RW1wdHlTZWFyY2hQb3B1cE1lbnUoKSk7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNi
YXJUZXh0KGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGM2NjkyNS4uOWZlZWExYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDgyLDUgKzQ4MiwyMCBAQCBib29s
IENocm9tZUNsaWVudDo6cGFpbnRDdXN0b21TY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRSZWN0JikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQ2hyb21lOjpz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIG1fY2xp
ZW50LT5zZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworfQorCitQYXNzUmVm
UHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVQb3B1cE1lbnUoY2xp
ZW50KTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVy
biBtX2NsaWVudC0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KGNsaWVudCk7Cit9CisKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDUzNzQ2OGEuLjMwZWRmMjggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI0LDYgKzI1LDggQEAKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUg
IkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIlBv
cHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC00NCw2ICs0Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAg
ICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3Ry
aW5nOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGNsYXNzIE5vdGlmaWNhdGlvblBy
ZXNlbnRlcjsKQEAgLTE0NCw2ICsxNDgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OyAK
ICNlbmRpZgogCisgICAgICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKKyAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAgICAgQ2hyb21lQ2xpZW50KiBtX2Ns
aWVudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3OTViMjVjLi4wNGFmNzdkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsNyArMjcsMTAgQEAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VyUXVpcmtzLmgiCiAjaW5jbHVkZSAiSG9zdFdp
bmRvdy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVu
dC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUzLDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQ
YWdlOworICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKICAgICBjbGFzcyBTdHJpbmc7CiAgICAg
Y2xhc3MgV2lkZ2V0OwogCkBAIC0yNTIsNiArMjU3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCBib29sIGlzTWluaW1pemVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNl
bmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3Jl
YXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCopIGNvbnN0ID0gMDsKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVh
bCB+Q2hyb21lQ2xpZW50KCkgeyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vUG9wdXBNZW51LmggYi9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCmluZGV4IGQ5ZDI3
NDAuLjhlYmJhMDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMTgwICsyMSwyMiBAQAogI2lm
bmRlZiBQb3B1cE1lbnVfaAogI2RlZmluZSBQb3B1cE1lbnVfaAogCi0jaW5jbHVkZSAiSW50UmVj
dC5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykK
LSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaWZkZWYgX19PQkpDX18KLUBjbGFzcyBOU1Bv
cFVwQnV0dG9uQ2VsbDsKLSNlbHNlCi1jbGFzcyBOU1BvcFVwQnV0dG9uQ2VsbDsKLSNlbmRpZgot
I2VsaWYgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgIlNjcm9sbGJhci5oIgotI2luY2x1ZGUgIlNj
cm9sbGJhckNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLXR5cGVkZWYgc3RydWN0
IEhXTkRfXyogSFdORDsKLXR5cGVkZWYgc3RydWN0IEhEQ19fKiBIREM7Ci10eXBlZGVmIHN0cnVj
dCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShRVCkKLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLWNsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKLX0KLSNlbGlmIFBMQVRGT1JNKEdUSykK
LXR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7Ci10eXBlZGVmIHN0cnVjdCBfR3RrTWVu
dUl0ZW0gR3RrTWVudUl0ZW07Ci10eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsK
LSNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNs
dWRlIDxnbGliLmg+Ci0jZWxpZiBQTEFURk9STShXWCkKLSNpZmRlZiBfX1dYTVNXX18KLSNpbmNs
dWRlIDx3eC9tc3cvd2ludW5kZWYuaD4KLSNlbmRpZgotY2xhc3Mgd3hNZW51OwotI2luY2x1ZGUg
PHd4L2RlZnMuaD4KLSNpbmNsdWRlIDx3eC9ldmVudC5oPgotI2VsaWYgUExBVEZPUk0oQ0hST01J
VU0pCi0jaW5jbHVkZSAiUG9wdXBNZW51UHJpdmF0ZS5oIgotI2VsaWYgUExBVEZPUk0oSEFJS1Up
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBQb3B1cE1lbnVIYWlrdTsKLX0KLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZyYW1lVmlldzsKLWNsYXNzIFNjcm9sbGJh
cjsKK2NsYXNzIEludFJlY3Q7CiAKLWNsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVk
PFBvcHVwTWVudT4KLSNpZiBQTEFURk9STShXSU4pCi0gICAgICAgICAgICAgICAgLCBwcml2YXRl
IFNjcm9sbGJhckNsaWVudAotI2VuZGlmCi0jaWYgUExBVEZPUk0oV1gpCi0gICAgICAgICAgICAg
ICAgLCBwdWJsaWMgd3hFdnRIYW5kbGVyCi0jZW5kaWYKLXsKK2NsYXNzIFBvcHVwTWVudSA6IHB1
YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVudT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBvcHVwTWVudT4gY3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51KGNsaWVudCkpOyB9Ci0gICAgflBvcHVwTWVudSgpOwotICAg
IAotICAgIHZvaWQgZGlzY29ubmVjdENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KLQot
ICAgIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKLSAg
ICB2b2lkIGhpZGUoKTsKLQotICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICAKLSAg
ICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7
IH0KLQotICAgIHN0YXRpYyBib29sIGl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0K
LSNpZiBQTEFURk9STShXSU4pCi0gICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbGJhci5nZXQoKTsgfQotCi0gICAgc3RhdGljIExQQ1RTVFIgcG9wdXBDbGFz
c05hbWUoKTsKLQotICAgIGJvb2wgdXAodW5zaWduZWQgbGluZXMgPSAxKTsKLSAgICBib29sIGRv
d24odW5zaWduZWQgbGluZXMgPSAxKTsKLQotICAgIGludCBpdGVtSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtSGVpZ2h0OyB9Ci0gICAgY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2luZG93UmVjdDsgfQotICAgIEludFJlY3QgY2xpZW50UmVjdCgpIGNv
bnN0OwotCi0gICAgaW50IHZpc2libGVJdGVtcygpIGNvbnN0OwotCi0gICAgaW50IGxpc3RJbmRl
eEF0UG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQotICAgIGJvb2wgc2V0Rm9jdXNlZElu
ZGV4KGludCBpbmRleCwgYm9vbCBob3RUcmFja2luZyA9IGZhbHNlKTsKLSAgICBpbnQgZm9jdXNl
ZEluZGV4KCkgY29uc3Q7Ci0gICAgdm9pZCBmb2N1c0ZpcnN0KCk7Ci0gICAgdm9pZCBmb2N1c0xh
c3QoKTsKLQotICAgIHZvaWQgcGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDID0g
MCk7Ci0KLSAgICBIV05EIHBvcHVwSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cDsgfQot
Ci0gICAgdm9pZCBzZXRXYXNDbGlja2VkKGJvb2wgYiA9IHRydWUpIHsgbV93YXNDbGlja2VkID0g
YjsgfQotICAgIGJvb2wgd2FzQ2xpY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2xpY2tlZDsg
fQotCi0gICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoaW50IG9mZnNldCkgeyBtX3Njcm9sbE9mZnNl
dCA9IG9mZnNldDsgfQotICAgIGludCBzY3JvbGxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbE9mZnNldDsgfQotCi0gICAgYm9vbCBzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOwotCi0g
ICAgdm9pZCBpbmNyZW1lbnRXaGVlbERlbHRhKGludCBkZWx0YSk7Ci0gICAgdm9pZCByZWR1Y2VX
aGVlbERlbHRhKGludCBkZWx0YSk7Ci0gICAgaW50IHdoZWVsRGVsdGEoKSBjb25zdCB7IHJldHVy
biBtX3doZWVsRGVsdGE7IH0KLQotICAgIGJvb2wgc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOyB9Ci0gICAgdm9pZCBzZXRT
Y3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29sIGIpIHsgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3Vz
ZSA9IGI7IH0KLSNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopOwotICAgIAotcHJpdmF0ZToKLSAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGll
bnQ7Ci0gICAgCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lk
IHBvcHVsYXRlKCk7Ci0KLSAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7
Ci0jZWxpZiBQTEFURk9STShRVCkKLSAgICBRdEFic3RyYWN0V2ViUG9wdXAqIG1fcG9wdXA7Ci0j
ZWxpZiBQTEFURk9STShXSU4pCi0gICAgLy8gU2Nyb2xsQmFyQ2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIHZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpOwotICAgIHZpcnR1YWwg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsYmFyQ29ybmVyUHJlc2VudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICB2
b2lkIGNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3Kik7
Ci0gICAgdm9pZCBpbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpOwotCi0gICAgc3RhdGljIExSRVNV
TFQgQ0FMTEJBQ0sgUG9wdXBNZW51V25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7
Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1Bh
cmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlckNsYXNzKCk7Ci0K
LSAgICBSZWZQdHI8U2Nyb2xsYmFyPiBtX3Njcm9sbGJhcjsKLSAgICBIV05EIG1fcG9wdXA7Ci0g
ICAgSERDIG1fREM7Ci0gICAgSEJJVE1BUCBtX2JtcDsKLSAgICBib29sIG1fd2FzQ2xpY2tlZDsK
LSAgICBJbnRSZWN0IG1fd2luZG93UmVjdDsKLSAgICBpbnQgbV9pdGVtSGVpZ2h0OwotICAgIGlu
dCBtX3Njcm9sbE9mZnNldDsKLSAgICBpbnQgbV93aGVlbERlbHRhOwotICAgIGludCBtX2ZvY3Vz
ZWRJbmRleDsKLSAgICBib29sIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7Ci0gICAgYm9vbCBt
X3Nob3dQb3B1cDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBJbnRQb2ludCBtX21lbnVQb3Np
dGlvbjsKLSAgICBHUmVmUHRyPEd0a01lbnU+IG1fcG9wdXA7Ci0gICAgSGFzaE1hcDxHdGtXaWRn
ZXQqLCBpbnQ+IG1faW5kZXhNYXA7Ci0gICAgc3RhdGljIHZvaWQgbWVudUl0ZW1BY3RpdmF0ZWQo
R3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudSopOwotICAgIHN0YXRpYyB2b2lkIG1lbnVVbm1h
cHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9pZCBtZW51UG9zaXRp
b25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCosIGdpbnQqLCBnYm9vbGVhbiosIFBvcHVwTWVudSop
OwotICAgIHN0YXRpYyB2b2lkIG1lbnVSZW1vdmVJdGVtKEd0a1dpZGdldCosIFBvcHVwTWVudSop
OwotI2VsaWYgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShCUkVXTVApCi0gICAgRnJhbWVWaWV3
KiBtX3ZpZXc7Ci0jZWxpZiBQTEFURk9STShXWCkKLSAgICB3eE1lbnUqIG1fbWVudTsKLSAgICB2
b2lkIE9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVudCYpOwotI2VsaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0gICAgUG9wdXBNZW51UHJpdmF0ZSBwOwotI2VsaWYgUExBVEZPUk0oSEFJS1Up
Ci0gICAgUG9wdXBNZW51SGFpa3UqIG1fbWVudTsKLSNlbmRpZgotCisgICAgdmlydHVhbCB+UG9w
dXBNZW51KCkge30KKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVW
aWV3KiwgaW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aXNjb25uZWN0Q2xpZW50KCkgPSAwOwogfTsKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBQb3B1
cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKaW5kZXggNDI4NWNkZi4uZDFlY2Qw
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMywyNCArMjMsMjEgQEAKIAog
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
dG9taWNTdHJpbmc7CiAKLWNsYXNzIFNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBQb3B1cE1lbnUg
eworY2xhc3MgU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8U2VhcmNoUG9wdXBN
ZW51PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFy
Y2hQb3B1cE1lbnUoY2xpZW50KSk7IH0KLQotICAgIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKLSAgICB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0KLSAgICBib29sIGVuYWJsZWQoKTsKLSAg
ICAKLXByaXZhdGU6Ci0gICAgU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworICAg
IHZpcnR1YWwgflNlYXJjaFBvcHVwTWVudSgpIHt9CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBv
cHVwTWVudSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBlbmFibGVkKCkgPSAwOwogfTsKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBTZWFyY2hQ
b3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJy
ZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwCmluZGV4IGVi
MDNjNjYuLjI0YjdiODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1l
bnVCcmV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5jcHAK
QEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1i
ZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJv
bmljcwogICogQ29weXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwLCBJbmMuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUJy
ZXcuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudEJyZXcu
aCIKQEAgLTMyLDIwICszMywyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVu
dTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogbWVudUxpc3QpCitQb3B1cE1lbnVCcmV3OjpQ
b3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVudCogbWVudUxpc3QpCiAgICAgOiBtX3BvcHVwQ2xp
ZW50KG1lbnVMaXN0KQogICAgICwgbV92aWV3KDApCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVw
TWVudSgpCitQb3B1cE1lbnVCcmV3Ojp+UG9wdXBNZW51QnJldygpCiB7CiAgICAgLy8gVGVsbCBj
bGllbnQgdG8gZGVzdHJveSBkYXRhIHJlbGF0ZWQgdG8gdGhpcyBwb3B1cCBzaW5jZSB0aGlzIG9i
amVjdCBpcwogICAgIC8vIGdvaW5nIGF3YXkuCiAgICAgaGlkZSgpOwogfQogCi12b2lkIFBvcHVw
TWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKK3ZvaWQgUG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1
cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9wdXBNZW51QnJldzo6c2hvdyhjb25zdCBJbnRSZWN0
JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBBU1NFUlQobV9wb3B1
cENsaWVudCk7CiAgICAgQ2hyb21lQ2xpZW50QnJldyogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nh
c3Q8Q2hyb21lQ2xpZW50QnJldyo+KHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpKTsKQEAgLTU1LDcgKzYxLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50
UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgY2hyb21lQ2xpZW50
LT5jcmVhdGVTZWxlY3RQb3B1cChtX3BvcHVwQ2xpZW50LCBpbmRleCwgcmVjdCk7CiB9CiAKLXZv
aWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51QnJldzo6aGlkZSgpCiB7CiAgICAg
QVNTRVJUKG1fdmlldyk7CiAgICAgQ2hyb21lQ2xpZW50QnJldyogY2hyb21lQ2xpZW50ID0gc3Rh
dGljX2Nhc3Q8Q2hyb21lQ2xpZW50QnJldyo+KG1fdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJv
bWUoKS0+Y2xpZW50KCkpOwpAQCAtNjQsMTQgKzcwLDE0IEBAIHZvaWQgUG9wdXBNZW51OjpoaWRl
KCkKICAgICBjaHJvbWVDbGllbnQtPmRlc3Ryb3lTZWxlY3RQb3B1cCgpOwogfQogCi12b2lkIFBv
cHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVCcmV3Ojp1cGRhdGVG
cm9tRWxlbWVudCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+
c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KKy8vIGJvb2wgUG9wdXBNZW51
QnJldzo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQorLy8geworLy8gICAgIHJldHVy
biB0cnVlOworLy8gfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3
L1BvcHVwTWVudUJyZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzg4
ZjljCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJy
ZXcuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVC
cmV3X2gKKyNkZWZpbmUgUG9wdXBNZW51QnJld19oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJhcjsK
KworY2xhc3MgUG9wdXBNZW51QnJldyA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAg
IFBvcHVwTWVudUJyZXcoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUJyZXcoKTsK
KworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQg
aW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKwor
cHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgRnJhbWVW
aWV3KiBtX3ZpZXc7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51QnJl
d19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJl
dy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAKaW5k
ZXggNzgwYzdlNS4uYzIyY2I3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1Nl
YXJjaFBvcHVwTWVudUJyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQ
b3B1cE1lbnVCcmV3LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDI5ICsyNSwzNCBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNs
dWRlICJTZWFyY2hQb3B1cE1lbnVCcmV3LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8g
U2F2ZSB0aGUgcGFzdCBzZWFyY2hlcyBzdG9yZWQgaW4gJ3NlYXJjaEl0ZW1zJyB0byBhIGRhdGFi
YXNlIGFzc29jaWF0ZWQgd2l0aCAnbmFtZScKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcykKIHsKIH0KIAogLy8gTG9hZCBwYXN0IHNlYXJjaGVzIGFzc29jaWF0ZWQgd2l0aCAn
bmFtZScgZnJvbSB0aGUgZGF0YWJhc2UgdG8gJ3NlYXJjaEl0ZW1zJwotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51QnJldzo6bG9hZFJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKQogewogfQogCiAvLyBDcmVhdGUgYSBzZWFyY2ggcG9wdXAgbWVudSAtIG5vdCBz
dXJlIHdoYXQgZWxzZSB3ZSBoYXZlIHRvIGRvIGhlcmUKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVu
dCkKK1NlYXJjaFBvcHVwTWVudUJyZXc6OlNlYXJjaFBvcHVwTWVudUJyZXcoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIAotYm9vbCBTZWFyY2hQ
b3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVCcmV3OjplbmFibGVkKCkK
IHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51QnJl
dzo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1
cE1lbnVCcmV3LmggYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZWExMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVC
cmV3X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51QnJld19oCisKKyNpbmNsdWRlICJQb3B1cE1l
bnVCcmV3LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51QnJldyA6IHB1YmxpYyBTZWFyY2hQb3B1cE1l
bnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUJyZXcoUG9wdXBNZW51Q2xpZW50Kik7
CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lk
IHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1l
bnVCcmV3IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVCcmV3
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21p
dW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAK
aW5kZXggNDcwMWE3NS4uOTA1MTIwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00OCw3ICs0OSw2
IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
Y3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJQb3B1
cE1lbnUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRo
ZW1lLmgiCiAjaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCkBAIC0xMzIxLDIwICsxMzIxLDIw
IEBAIGJvb2wgUG9wdXBMaXN0Qm94Ojppc1BvaW50SW5Cb3VuZHMoY29uc3QgSW50UG9pbnQmIHBv
aW50KQogfQogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLyBQb3B1cE1lbnUgaW1wbGVtZW50
YXRpb24KKy8vIFBvcHVwTWVudUNocm9taXVtIGltcGxlbWVudGF0aW9uCiAvLyAKIC8vIE5vdGU6
IHlvdSBjYW5ub3QgYWRkIG1ldGhvZHMgdG8gdGhpcyBjbGFzcywgc2luY2UgaXQgaXMgZGVmaW5l
ZCBhYm92ZSB0aGUgCiAvLyAgICAgICBwb3J0YWJpbGl0eSBsYXllci4gVG8gYWNjZXNzIG1ldGhv
ZHMgYW5kIHByb3BlcnRpZXMgb24gdGhlCiAvLyAgICAgICBwb3B1cCB3aWRnZXRzLCB1c2UgfHBv
cHVwV2luZG93fCBhYm92ZS4gCiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSAKK1BvcHVwTWVudUNocm9taXVtOjpQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogewogfQogCi1Q
b3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJv
bWl1bSgpCiB7Ci0gICAgLy8gV2hlbiB0aGUgUG9wdXBNZW51IGlzIGRlc3Ryb3llZCwgdGhlIGNs
aWVudCBjb3VsZCBhbHJlYWR5IGhhdmUgYmVlbgorICAgIC8vIFdoZW4gdGhlIFBvcHVwTWVudUNo
cm9taXVtIGlzIGRlc3Ryb3llZCwgdGhlIGNsaWVudCBjb3VsZCBhbHJlYWR5IGhhdmUgYmVlbgog
ICAgIC8vIGRlbGV0ZWQuCiAgICAgaWYgKHAucG9wdXApCiAgICAgICAgIHAucG9wdXAtPmxpc3RC
b3goKS0+ZGlzY29ubmVjdENsaWVudCgpOwpAQCAtMTM0NSw3ICsxMzQ1LDcgQEAgUG9wdXBNZW51
Ojp+UG9wdXBNZW51KCkKIC8vIHRvIGRpc3BsYXksIGhhbmRsZSB0aGUgaW5wdXQgdHJhY2tpbmcg
YW5kIG1lbnUgaXRlbSBzZWxlY3Rpb24gZm9yIHRoZSBwb3B1cC4KIC8vIFdpbmRvd3MgYW5kIExp
bnV4IENocm9taXVtIGxldCBvdXIgV2ViS2l0IHBvcnQgaGFuZGxlIHRoZSBkaXNwbGF5LCB3aGls
ZQogLy8gYW5vdGhlciBwcm9jZXNzIG1hbmFnZXMgdGhlIHBvcHVwIHdpbmRvdyBhbmQgaW5wdXQg
aGFuZGxpbmcuCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZp
ZXcqIHYsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06OnNob3coY29uc3QgSW50
UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7CiAgICAgaWYgKCFwLnBvcHVwKQog
ICAgICAgICBwLnBvcHVwID0gUG9wdXBDb250YWluZXI6OmNyZWF0ZShjbGllbnQoKSwgUG9wdXBD
b250YWluZXI6OlNlbGVjdCwgZHJvcERvd25TZXR0aW5ncyk7CkBAIC0xMzU2LDIwICsxMzU2LDIx
IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwg
aW50IGluZGV4KQogI2VuZGlmCiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9w
dXBNZW51Q2hyb21pdW06OmhpZGUoKQogewogICAgIGlmIChwLnBvcHVwKQogICAgICAgICBwLnBv
cHVwLT5oaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2
b2lkIFBvcHVwTWVudUNocm9taXVtOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgcC5wb3B1
cC0+bGlzdEJveCgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCi1ib29sIFBvcHVwTWVudTo6
aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAgcmV0dXJuIGZhbHNlOyAK
Kwordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9w
b3B1cENsaWVudCA9IDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaCBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaAppbmRleCBhODVjZjQ5Li5hMGEw
NTI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9t
aXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5o
CkBAIC0zNiw2ICszNiw4IEBACiAKICNpbmNsdWRlICJGcmFtZWxlc3NTY3JvbGxWaWV3LmgiCiAj
aW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBv
cHVwTWVudVByaXZhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDEsNiArMjAz
LDIzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvcHVwT3BlbjsKIH07CiAKK2NsYXNzIFBvcHVw
TWVudUNocm9taXVtIDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51
Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUNocm9taXVtKCk7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGlu
ZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
cm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3By
aXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIFBvcHVwTWVu
dVByaXZhdGUgcDsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wb3B1cENsaWVudDsgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVD
aHJvbWl1bS5jcHAKaW5kZXggODliZmRkZC4uMThlODZjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0yOSwyOSArMzAsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0uaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUo
Y2xpZW50KQorU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OlNlYXJjaFBvcHVwTWVudUNocm9taXVt
KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAK
LWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBN
ZW51Q2hyb21pdW06OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCiti
b29sIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2
b2lkIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OmxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmY4ZmYzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmgKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUNocm9taXVtX2gKKyNkZWZp
bmUgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW1faAorCisjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21p
dW0uaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bSA6IHB1YmxpYyBTZWFyY2hQb3B1cE1l
bnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVu
dCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwg
dm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAgCitwcml2YXRlOgorICAg
IFBvcHVwTWVudUNocm9taXVtIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQ
b3B1cE1lbnVDaHJvbWl1bV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1
cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcAppbmRl
eCA5ZGM2OTg2Li40MDFmMjRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1
cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAK
QEAgLTMsNiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBO
b2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVj
dHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsMjkgKzIzLDMw
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkKK1BvcHVwTWVudUVmbDo6UG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3ZpZXcoMCkKIHsKIH0KIAot
UG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCgpCiB7
CiAgICAgLy8gVGVsbCBjbGllbnQgdG8gZGVzdHJveSBkYXRhIHJlbGF0ZWQgdG8gdGhpcyBwb3B1
cCBzaW5jZSB0aGlzIG9iamVjdCBpcwogICAgIC8vIGdvaW5nIGF3YXkuCiAgICAgaGlkZSgpOwog
fQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcq
IHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpzaG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIEFTU0VSVChtX3BvcHVw
Q2xpZW50KTsKICAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0
PENocm9tZUNsaWVudEVmbCo+KHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVu
dCgpKTsKQEAgLTU0LDcgKzU2LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVj
dCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgY2hyb21lQ2xpZW50LT5j
cmVhdGVTZWxlY3RQb3B1cChtX3BvcHVwQ2xpZW50LCBpbmRleCwgcmVjdCk7CiB9CiAKLXZvaWQg
UG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpoaWRlKCkKIHsKICAgICBBU1NF
UlQobV92aWV3KTsKICAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCA9IHN0YXRpY19j
YXN0PENocm9tZUNsaWVudEVmbCo+KG1fdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCkpOwpAQCAtNjMsMTQgKzY1LDE0IEBAIHZvaWQgUG9wdXBNZW51OjpoaWRlKCkKICAg
ICBjaHJvbWVDbGllbnQtPmRlc3Ryb3lTZWxlY3RQb3B1cCgpOwogfQogCi12b2lkIFBvcHVwTWVu
dTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3Rl
ZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKQordm9pZCBQb3B1cE1lbnVFZmw6OmRpc2Nvbm5lY3RDbGllbnQoKQogewotICAgIHJl
dHVybiB0cnVlOworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1BvcHVwTWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2YmI2
YTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwu
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVFZmxf
aAorI2RlZmluZSBQb3B1cE1lbnVFZmxfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1
ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZp
ZXc7CitjbGFzcyBTY3JvbGxiYXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CisKK2NsYXNzIFBv
cHVwTWVudUVmbCA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVwTWVudUVm
bChQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51RWZsKCk7CisKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2
aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgp
OworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAg
UG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIEZyYW1lVmlldyogbV92aWV3Owor
CisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xp
ZW50OyB9CisKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudUVmbF9oCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcAppbmRleCBkMTgxNzRmLi5jYWZmZTU0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKQEAgLTIs
NiArMiw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEg
ZGUgVGVjbm9sb2dpYQogICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJv
bmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDI5ICsyMCwzNCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUu
aCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVFZmwuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xp
ZW50KQorU2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQb3B1cE1lbnVFZmwoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK1BvcHVwTWVudSogU2VhcmNo
UG9wdXBNZW51RWZsOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwor
dm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudUVmbDo6bG9h
ZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxl
ZCgpCitib29sIFNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9w
dXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjYjJlNQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVm
bC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQ
b3B1cE1lbnVFZmxfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVFZmxfaAorCisjaW5jbHVkZSAi
UG9wdXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51RWZsIDogcHVibGljIFNlYXJjaFBv
cHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVu
dCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwg
dm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgUG9w
dXBNZW51RWZsIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVF
ZmxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKaW5kZXggYmY4Y2ZiNC4uY2Ew
NjdkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCkBAIC00LDYgKzQsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1t
ZWxAZ21haWwuY29tCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDcgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51R3RrLmgiCiAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHdGtWZXJzaW9u
aW5nLmgiCkBAIC0zNCwxMiArMzUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Qb3B1
cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVudUd0azo6
UG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVu
dChjbGllbnQpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVHdGs6
On5Qb3B1cE1lbnVHdGsoKQogewogICAgIGlmIChtX3BvcHVwKSB7CiAgICAgICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX3BvcHVwLmdldCgpLCBHX1NJR05BTF9NQVRD
SF9EQVRBLCAwLCAwLCAwLCAwLCB0aGlzKTsKQEAgLTQ3LDcgKzQ4LDcgQEAgUG9wdXBNZW51Ojp+
UG9wdXBNZW51KCkKICAgICB9CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJl
Y3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVHdGs6
OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7
CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKIApAQCAtMTEwLDQzICsxMTEsNDMgQEAgdm9pZCBQb3B1
cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5k
ZXgpCiAgICAgZ3RrX21lbnVfcG9wdXAobV9wb3B1cC5nZXQoKSwgMCwgMCwgcmVpbnRlcnByZXRf
Y2FzdDxHdGtNZW51UG9zaXRpb25GdW5jPihtZW51UG9zaXRpb25GdW5jdGlvbiksIHRoaXMsIDAs
IGd0a19nZXRfY3VycmVudF9ldmVudF90aW1lKCkpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlk
ZSgpCit2b2lkIFBvcHVwTWVudUd0azo6aGlkZSgpCiB7CiAgICAgQVNTRVJUKG1fcG9wdXApOwog
ICAgIGd0a19tZW51X3BvcGRvd24obV9wb3B1cC5nZXQoKSk7CiB9CiAKLXZvaWQgUG9wdXBNZW51
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUd0azo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xpZW50KCktPnNlbGVjdGVk
SW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpCit2b2lkIFBvcHVwTWVudUd0azo6ZGlzY29ubmVjdENsaWVudCgpCiB7Ci0gICAgcmV0
dXJuIHRydWU7CisgICAgbV9wb3B1cENsaWVudCA9IDA7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpt
ZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9wdXBNZW51KiB0aGF0KQordm9p
ZCBQb3B1cE1lbnVHdGs6Om1lbnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1
cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgQVNTRVJUKHRoYXQtPmNsaWVudCgpKTsKICAgICBBU1NF
UlQodGhhdC0+bV9pbmRleE1hcC5jb250YWlucyhHVEtfV0lER0VUKGl0ZW0pKSk7CiAgICAgdGhh
dC0+Y2xpZW50KCktPnZhbHVlQ2hhbmdlZCh0aGF0LT5tX2luZGV4TWFwLmdldChHVEtfV0lER0VU
KGl0ZW0pKSk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjptZW51VW5tYXBwZWQoR3RrV2lkZ2V0Kiwg
UG9wdXBNZW51KiB0aGF0KQordm9pZCBQb3B1cE1lbnVHdGs6Om1lbnVVbm1hcHBlZChHdGtXaWRn
ZXQqLCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgQVNTRVJUKHRoYXQtPmNsaWVudCgpKTsK
ICAgICB0aGF0LT5jbGllbnQoKS0+cG9wdXBEaWRIaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51
OjptZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCogeCwgZ2ludCogeSwgZ2Jvb2xl
YW4qIHB1c2hJbiwgUG9wdXBNZW51KiB0aGF0KQordm9pZCBQb3B1cE1lbnVHdGs6Om1lbnVQb3Np
dGlvbkZ1bmN0aW9uKEd0a01lbnUqLCBnaW50KiB4LCBnaW50KiB5LCBnYm9vbGVhbiogcHVzaElu
LCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgKnggPSB0aGF0LT5tX21lbnVQb3NpdGlvbi54
KCk7CiAgICAgKnkgPSB0aGF0LT5tX21lbnVQb3NpdGlvbi55KCk7CiAgICAgKnB1c2hJbiA9IHRy
dWU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjptZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqIHdpZGdl
dCwgUG9wdXBNZW51KiB0aGF0KQordm9pZCBQb3B1cE1lbnVHdGs6Om1lbnVSZW1vdmVJdGVtKEd0
a1dpZGdldCogd2lkZ2V0LCBQb3B1cE1lbnVHdGsqIHRoYXQpCiB7CiAgICAgQVNTRVJUKHRoYXQt
Pm1fcG9wdXApOwogICAgIGd0a19jb250YWluZXJfcmVtb3ZlKEdUS19DT05UQUlORVIodGhhdC0+
bV9wb3B1cC5nZXQoKSksIHdpZGdldCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9Qb3B1cE1lbnVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYzIyZTUKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaApAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVHdGtfaAorI2RlZmluZSBQb3B1cE1l
bnVHdGtfaAorCisjaW5jbHVkZSAiR1JlZlB0ckd0ay5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIK
KyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNp
bmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK3R5cGVkZWYgc3Ry
dWN0IF9HdGtNZW51IEd0a01lbnU7Cit0eXBlZGVmIHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVu
dUl0ZW07Cit0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNz
IFBvcHVwTWVudUd0ayA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVwTWVu
dUd0ayhQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51R3RrKCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVu
dCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6Cisg
ICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIEludFBvaW50IG1fbWVudVBv
c2l0aW9uOworICAgIEdSZWZQdHI8R3RrTWVudT4gbV9wb3B1cDsKKyAgICBIYXNoTWFwPEd0a1dp
ZGdldCosIGludD4gbV9pbmRleE1hcDsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCisgICAgc3RhdGljIHZvaWQgbWVudUl0
ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudUd0ayopOworICAgIHN0YXRp
YyB2b2lkIG1lbnVVbm1hcHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnVHdGsqKTsKKyAgICBzdGF0
aWMgdm9pZCBtZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCosIGdpbnQqLCBnYm9v
bGVhbiosIFBvcHVwTWVudUd0ayopOworICAgIHN0YXRpYyB2b2lkIG1lbnVSZW1vdmVJdGVtKEd0
a1dpZGdldCosIFBvcHVwTWVudUd0ayopOworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51
R3RrX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0
ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCmluZGV4
IGZiYWE1MjcuLmRmYjg0YWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJj
aFBvcHVwTWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBN
ZW51R3RrLmNwcApAQCAtMSw0ICsxLDYgQEAKIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwogICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgpAQCAtMTUsMjkgKzE3LDM0IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBv
cHVwTWVudUd0ay5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVH
dGs6OlNlYXJjaFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1f
cG9wdXAoY2xpZW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mKQorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVHdGs6OnBvcHVwTWVu
dSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCit2b2lkIFNlYXJjaFBvcHVwTWVudUd0
azo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJp
bmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0
ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRjMmVhNAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVHdGtfaAorI2RlZmlu
ZSBTZWFyY2hQb3B1cE1lbnVHdGtfaAorCisjaW5jbHVkZSAiUG9wdXBNZW51R3RrLmgiCisjaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U2VhcmNoUG9wdXBNZW51R3RrIDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6Cisg
ICAgU2VhcmNoUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQ
b3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwg
Ym9vbCBlbmFibGVkKCk7CisgICAgCitwcml2YXRlOgorICAgIFBvcHVwTWVudUd0ayBtX3BvcHVw
OworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51R3RrX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAKaW5kZXggNWFkYmM2Ni4uZTNlZGI4MyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAKQEAgLTIsNiArMiw3IEBA
CiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgcG9wdXAgbWVudSBpbXBsZW1lbnRhdGlvbiBm
b3IgPHNlbGVjdD4gZWxlbWVudHMgaW4gV2ViQ29yZS4KICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgU3RlcGhhbiBBw59tdXMgPHN1cGVyc3RpcHBpQGdteC5kZT4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTIxLDcgKzIyLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51SGFpa3UuaCIK
IAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogCkBAIC03Miw5ICs3Myw5IEBAIHByaXZhdGU6CiAg
ICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwogfTsKIAotY2xhc3MgUG9wdXBNZW51
SGFpa3UgOiBwdWJsaWMgQlBvcFVwTWVudSB7CitjbGFzcyBIYWlrdVBvcHVwIDogcHVibGljIEJQ
b3BVcE1lbnUgewogcHVibGljOgotICAgIFBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCog
cG9wdXBDbGllbnQpCisgICAgSGFpa3VQb3B1cChQb3B1cE1lbnVDbGllbnQqIHBvcHVwQ2xpZW50
KQogICAgICAgICA6IEJQb3BVcE1lbnUoIldlYkNvcmUgUG9wdXAiLCB0cnVlLCBmYWxzZSkKICAg
ICAgICAgLCBtX3BvcHVwQ2xpZW50KHBvcHVwQ2xpZW50KQogICAgICAgICAsIG1fSGFuZGxlcihw
b3B1cENsaWVudCkKQEAgLTg2LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICBTZXRBc3luY0F1
dG9EZXN0cnVjdChmYWxzZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+UG9wdXBNZW51SGFpa3Uo
KQorICAgIHZpcnR1YWwgfkhhaWt1UG9wdXAoKQogICAgIHsKICAgICAgICAgaWYgKGJlX2FwcC0+
TG9jaygpKSB7CiAgICAgICAgICAgICBiZV9hcHAtPlJlbW92ZUhhbmRsZXIoJm1fSGFuZGxlcik7
CkBAIC0xNTMsMzkgKzE1NCwzOSBAQCBwcml2YXRlOgogICAgIFBvcHVwTWVudUhhbmRsZXIgbV9I
YW5kbGVyOwogfTsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCitQb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKLSAgICAsIG1fbWVudShuZXcgUG9wdXBN
ZW51SGFpa3UoY2xpZW50KSkKKyAgICAsIG1fbWVudShuZXcgSGFpa3VQb3B1cChjbGllbnQpKQog
ewogICAgIC8vIFdlIGRvbid0IG5lZWQgYWRkaXRpb25hbCByZWZlcmVuY2VzIHRvIHRoZSBjbGll
bnQsIHNpbmNlIHdlIGNvbXBsZXRlbHkKICAgICAvLyBjb250cm9sIGFueSBzdWItb2JqZWN0cyB3
ZSBjcmVhdGUgdGhhdCBuZWVkIGl0IGFzIHdlbGwuCiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVu
dSgpCitQb3B1cE1lbnVIYWlrdTo6flBvcHVwTWVudUhhaWt1KCkKIHsKICAgICBkZWxldGUgbV9t
ZW51OwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFt
ZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5lY3RD
bGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVudUhh
aWt1OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4
KQogewogICAgIC8vIFRoZSBtZW51IHdpbGwgdXBkYXRlIGl0c2VsZiBmcm9tIHRoZSBQb3B1cE1l
bnVDbGllbnQgYmVmb3JlIHNob3dpbmcuCiAgICAgbV9tZW51LT5zaG93KHJlY3QsIHZpZXcsIGlu
ZGV4KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVIYWlrdTo6
aGlkZSgpCiB7CiAgICAgbV9tZW51LT5oaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRh
dGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUhhaWt1Ojp1cGRhdGVGcm9tRWxlbWVudCgp
CiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxlY3Rl
ZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOTFiZTQxOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51SGFpa3VfaAorI2RlZmluZSBQb3B1cE1lbnVI
YWlrdV9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEZyYW1lVmlldzsKK2NsYXNzIEhhaWt1UG9wdXA7CitjbGFzcyBTY3JvbGxiYXI7CisKK2Ns
YXNzIFBvcHVwTWVudUhhaWt1IDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9w
dXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUhhaWt1KCk7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGlu
ZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
cm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBtX3Bv
cHVwQ2xpZW50ID0gMDsgfQorCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1
cENsaWVudDsKKyAgICBIYWlrdVBvcHVwKiBtX21lbnU7CisKKyAgICBQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworfTsKKworfQorCisj
ZW5kaWYgLy8gUG9wdXBNZW51SGFpa3VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9o
YWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Nl
YXJjaFBvcHVwTWVudUhhaWt1LmNwcAppbmRleCBmZDVkOTZjLi40NDMzOGU1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2ZW5n
b29kQGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDcg
KzE5LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51SGFpa3UuaCIKIAogI2luY2x1ZGUg
IkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCkBAIC0yNiwyNiAr
MjcsMzEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGll
bnQpCitTZWFyY2hQb3B1cE1lbnVIYWlrdTo6U2VhcmNoUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIAotdm9pZCBTZWFy
Y2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51
SGFpa3U6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQ
b3B1cE1lbnVIYWlrdTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBN
ZW51SGFpa3U6OmVuYWJsZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUhhaWt1Ojpwb3B1cE1lbnUo
KQoreworICAgIHJldHVybiBtX3BvcHVwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3Uu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTMyZDNjCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVIYWlrdV9o
CisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUhhaWt1X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUhh
aWt1LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51SGFpa3UgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51
IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqKTsK
KworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVu
dUhhaWt1IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVIYWlr
dV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjdmOGFmNTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9Qb3B1cE1lbnVNYWMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBQb3B1cE1lbnVNYWNfaAorI2RlZmluZSBQb3B1cE1lbnVNYWNfaAorCisjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CisKK2NsYXNzIE5TUG9wVXBCdXR0b25DZWxsOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9s
bGJhcjsKKworY2xhc3MgUG9wdXBNZW51TWFjIDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6
CisgICAgUG9wdXBNZW51TWFjKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVNYWMo
KTsKKworICAgIHZvaWQgZGlzY29ubmVjdENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0K
KworICAgIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsK
KyAgICB2b2lkIGhpZGUoKTsKKworICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKworICAg
IHN0YXRpYyBib29sIGl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisKK3ByaXZhdGU6
CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIFJldGFpblB0cjxOU1Bv
cFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKKworICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lkIHBv
cHVsYXRlKCk7CisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBt
X3BvcHVwQ2xpZW50OyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVNYWNfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tIGIvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCmluZGV4IDZjMDY3YjkuLjBmNTA1OTggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDcgKzE5LDcgQEAKICAqLwogCiAj
aW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlBvcHVwTWVudS5oIgorI2ltcG9ydCAiUG9wdXBN
ZW51TWFjLmgiCiAKICNpbXBvcnQgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkNocm9tZS5o
IgpAQCAtMzEsNiArMzIsNyBAQAogI2ltcG9ydCAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbXBv
cnQgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJQb3B1
cE1lbnVDbGllbnQuaCIKICNpbXBvcnQgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW1wb3J0ICJXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAKQEAgLTM4LDI0ICs0MCwyNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVBvcHVwTWVudTo6UG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKIHsK
IH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudU1hYzo6flBvcHVwTWVudU1h
YygpCiB7CiAgICAgaWYgKG1fcG9wdXApCiAgICAgICAgIFttX3BvcHVwLmdldCgpIHNldENvbnRy
b2xWaWV3Om5pbF07CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpjbGVhcigpCit2b2lkIFBvcHVwTWVu
dU1hYzo6Y2xlYXIoKQogewogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBbbV9wb3B1cC5nZXQo
KSByZW1vdmVBbGxJdGVtc107CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpwb3B1bGF0ZSgpCit2b2lk
IFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogewogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBj
bGVhcigpOwpAQCAtMTE0LDcgKzExNiw3IEBAIHZvaWQgUG9wdXBNZW51Ojpwb3B1bGF0ZSgpCiAg
ICAgW1ttX3BvcHVwLmdldCgpIG1lbnVdIHNldE1lbnVDaGFuZ2VkTWVzc2FnZXNFbmFibGVkOm1l
c3NhZ2VzRW5hYmxlZF07CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3Qm
IHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29u
c3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7CiAgICAgcG9wdWxhdGUo
KTsKICAgICBpbnQgbnVtSXRlbXMgPSBbbV9wb3B1cC5nZXQoKSBudW1iZXJPZkl0ZW1zXTsKQEAg
LTE2Miw3ICsxNjQsNyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBG
cmFtZVZpZXcqIHYsIGludCBpbmRleCkKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gdi0+ZnJh
bWUoKTsKICAgICBOU0V2ZW50KiBldmVudCA9IFtmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmN1cnJl
bnROU0V2ZW50KCkgcmV0YWluXTsKICAgICAKLSAgICBSZWZQdHI8UG9wdXBNZW51PiBwcm90ZWN0
b3IodGhpcyk7CisgICAgUmVmUHRyPFBvcHVwTWVudU1hYz4gcHJvdGVjdG9yKHRoaXMpOwogCiAg
ICAgUmV0YWluUHRyPE5TVmlldz4gZHVtbXlWaWV3KEFkb3B0TlMsIFtbTlNWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOnJdKTsKICAgICBbdmlldyBhZGRTdWJ2aWV3OmR1bW15Vmlldy5nZXQoKV07
CkBAIC0xOTQsMTYgKzE5NiwxNiBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKICAgICBbZXZlbnQgcmVsZWFzZV07CiB9CiAK
LXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51TWFjOjpoaWRlKCkKIHsKICAg
ICBbbV9wb3B1cC5nZXQoKSBkaXNtaXNzUG9wVXBdOwogfQogICAgIAotdm9pZCBQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51TWFjOjp1cGRhdGVGcm9tRWxlbWVu
dCgpCiB7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCitib29sIFBvcHVwTWVudU1hYzo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQog
ewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLmggYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1l
bnVNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGY5MWEwCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLmgK
QEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVw
TWVudU1hY19oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudU1hY19oCisKKyNpbmNsdWRlICJQb3B1
cE1lbnVNYWMuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVNYWMgOiBwdWJsaWMgU2VhcmNoUG9wdXBN
ZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50Kik7
CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lk
IHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1l
bnVNYWMgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudU1hY19o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0g
Yi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KaW5kZXggMjYyNzM0
ZC4uNzhiMjlhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBN
ZW51TWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5t
bQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDE0ICsxOSwx
NCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiU2VhcmNoUG9wdXBNZW51
LmgiCisjaW1wb3J0ICJTZWFyY2hQb3B1cE1lbnVNYWMuaCIKIAogI2ltcG9ydCAiQXRvbWljU3Ry
aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorU2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIApAQCAtMzQsMTIgKzM1LDE3
IEBAIHN0YXRpYyBOU1N0cmluZyogYXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1lKQogICAg
IHJldHVybiBbQCJjb20uYXBwbGUuV2ViS2l0LnNlYXJjaEZpZWxkOiIgc3RyaW5nQnlBcHBlbmRp
bmdTdHJpbmc6bmFtZV07CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK1Bv
cHVwTWVudSogU2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAm
bV9wb3B1cDsKK30KKworYm9vbCBTZWFyY2hQb3B1cE1lbnVNYWM6OmVuYWJsZWQoKQogewogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJj
aEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykK
IHsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU2LDcgKzYy
LDcgQEAgdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjwKICAgICB9CiB9CiAKLXZvaWQgU2VhcmNoUG9w
dXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAppbmRleCAzMTViODkxLi41NTkwNTU2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnVRdC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50
UXQuaCIKQEAgLTM1LDE4ICszNSwyNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVw
TWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51UXQ6OlBv
cHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChj
bGllbnQpCiAgICAgLCBtX3BvcHVwKDApCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgp
CitQb3B1cE1lbnVRdDo6flBvcHVwTWVudVF0KCkKIHsKICAgICBkZWxldGUgbV9wb3B1cDsKIH0K
IAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2
aWV3LCBpbnQgaW5kZXgpCisKK3ZvaWQgUG9wdXBNZW51UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQor
eworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVudVF0OjpzaG93KGNv
bnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIENo
cm9tZUNsaWVudFF0KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRRdCo+
KAogICAgICAgICB2aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBA
IC02NywxOSArNzMsMTQgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVj
dCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAKIH0KIAotdm9pZCBQb3B1cE1lbnU6Omhp
ZGUoKQordm9pZCBQb3B1cE1lbnVRdDo6aGlkZSgpCiB7CiAgICAgbV9wb3B1cC0+aGlkZSgpOwog
fQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQotewotICAgIGNsaWVudCgp
LT5zZXRUZXh0RnJvbUl0ZW0obV9wb3B1cENsaWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKLX0KLQot
Ym9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3ZvaWQgUG9w
dXBNZW51UXQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
bV9wb3B1cENsaWVudC0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5k
ZXgoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51
UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yNWE5Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaWZuZGVmIFBvcHVwTWVudVF0X2gKKyNkZWZpbmUgUG9wdXBNZW51UXRfaAorCisjaW5jbHVk
ZSAiUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3
OworY2xhc3MgUXRBYnN0cmFjdFdlYlBvcHVwOworY2xhc3MgU2Nyb2xsYmFyOworY2xhc3MgUG9w
dXBNZW51Q2xpZW50OworCitjbGFzcyBQb3B1cE1lbnVRdCA6IHB1YmxpYyBQb3B1cE1lbnUgewor
cHVibGljOgorICAgIFBvcHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1l
bnVRdCgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVu
dCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAg
ICBRdEFic3RyYWN0V2ViUG9wdXAqIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1
cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAppbmRleCBk
YWQ0OTk3Li41ZjZmNjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJh
Y3RXZWJQb3B1cC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVw
LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFFGb250IGZvbnQoKSB7IHJldHVybiBt
X3BvcHVwQ2xpZW50LT5tZW51U3R5bGUoKS5mb250KCkuZm9udCgpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIFBvcHVwTWVudTsKKyAgICBmcmllbmQgY2xhc3MgUG9wdXBNZW51UXQ7
CiAgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwogICAgIFFXZWJQYWdlQ2xpZW50
KiBtX3BhZ2VDbGllbnQ7CiAgICAgaW50IG1fY3VycmVudEluZGV4OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAppbmRleCAxODdhNWRlLi44NjhiOWE3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgQyAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDI2ICsxOSwyOSBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLQotI2luY2x1ZGUg
IkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBN
ZW51UXQ6OlNlYXJjaFBvcHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDog
bV9wb3B1cChjbGllbnQpCit7Cit9CisKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51UXQ6OnBv
cHVwTWVudSgpCiB7CisgICAgcmV0dXJuICZtX3BvcHVwOwogfQogCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51UXQ6OnNhdmVSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiB9CiAKLXZvaWQg
U2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVRdDo6bG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotYm9vbCBT
ZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxl
ZCgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1NlYXJjaFBvcHVwTWVudVF0LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVw
TWVudVF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM3NGZiOAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBN
ZW51UXRfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVRdF9oCisKKyNpbmNsdWRlICJQb3B1cE1l
bnVRdC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudVF0IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7
CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAg
ICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Cisg
ICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51
UXQgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudVF0X2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4IDRiYzZkYzcuLmNiYWNkNGYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlIEluYy4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDcgKzIxLDcgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51V2luLmgiCiAKICNpbmNsdWRlICJCaXRtYXBJbmZvLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKQEAgLTg2LDcgKzg3LDcgQEAgc3RhdGljIHZvaWQgdHJhbnNsYXRlUG9pbnQoTFBBUkFN
JiBsUGFyYW0sIEhXTkQgZnJvbSwgSFdORCB0bykKICAgICBsUGFyYW0gPSBNQUtFTFBBUkFNKHB0
LngsIHB0LnkpOwogfQogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkKK1BvcHVwTWVudVdpbjo6UG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3Njcm9sbGJhcigwKQogICAg
ICwgbV9wb3B1cCgwKQpAQCAtMTAyLDcgKzEwMyw3IEBAIFBvcHVwTWVudTo6UG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCogY2xpZW50KQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQor
UG9wdXBNZW51V2luOjp+UG9wdXBNZW51V2luKCkKIHsKICAgICBpZiAobV9ibXApCiAgICAgICAg
IDo6RGVsZXRlT2JqZWN0KG1fYm1wKTsKQEAgLTExNCwxMiArMTE1LDE3IEBAIFBvcHVwTWVudTo6
flBvcHVwTWVudSgpCiAgICAgICAgIG1fc2Nyb2xsYmFyLT5zZXRQYXJlbnQoMCk7CiB9CiAKLUxQ
Q1RTVFIgUG9wdXBNZW51Ojpwb3B1cENsYXNzTmFtZSgpCit2b2lkIFBvcHVwTWVudVdpbjo6ZGlz
Y29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK0xQQ1RTVFIg
UG9wdXBNZW51V2luOjpwb3B1cENsYXNzTmFtZSgpCiB7CiAgICAgcmV0dXJuIGtQb3B1cFdpbmRv
d0NsYXNzTmFtZTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwg
RnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudVdpbjo6c2hvdyhjb25z
dCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBjYWxjdWxh
dGVQb3NpdGlvbkFuZFNpemUociwgdmlldyk7CiAgICAgaWYgKGNsaWVudFJlY3QoKS5pc0VtcHR5
KCkpCkBAIC0yNjcsNyArMjczLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVj
dCYgciwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgaGlkZSgpOwogfQogCi12b2lk
IFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudVdpbjo6aGlkZSgpCiB7CiAgICAgaWYg
KCFtX3Nob3dQb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjgzLDcgKzI4OSw3IEBAIHZvaWQg
UG9wdXBNZW51OjpoaWRlKCkKICAgICA6OlBvc3RNZXNzYWdlKG1fcG9wdXAsIFdNX05VTEwsIDAs
IDApOwogfQogCi12b2lkIFBvcHVwTWVudTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0
IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKK3ZvaWQgUG9wdXBNZW51V2luOjpjYWxjdWxhdGVQ
b3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2KQogewogICAgIC8v
IHIgaXMgaW4gYWJzb2x1dGUgZG9jdW1lbnQgY29vcmRpbmF0ZXMsIGJ1dCB3ZSB3YW50IHRvIGJl
IGluIHNjcmVlbiBjb29yZGluYXRlcwogCkBAIC0zNzMsNyArMzc5LDcgQEAgdm9pZCBQb3B1cE1l
bnU6OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcq
IHYpCiAgICAgcmV0dXJuOwogfQogCi1ib29sIFBvcHVwTWVudTo6c2V0Rm9jdXNlZEluZGV4KGlu
dCBpLCBib29sIGhvdFRyYWNraW5nKQorYm9vbCBQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRl
eChpbnQgaSwgYm9vbCBob3RUcmFja2luZykKIHsKICAgICBpZiAoaSA8IDAgfHwgaSA+PSBjbGll
bnQoKS0+bGlzdFNpemUoKSB8fCBpID09IGZvY3VzZWRJbmRleCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0zOTUsMjIgKzQwMSwyMiBAQCBib29sIFBvcHVwTWVudTo6c2V0Rm9jdXNlZElu
ZGV4KGludCBpLCBib29sIGhvdFRyYWNraW5nKQogICAgIHJldHVybiB0cnVlOwogfQogCi1pbnQg
UG9wdXBNZW51Ojp2aXNpYmxlSXRlbXMoKSBjb25zdAoraW50IFBvcHVwTWVudVdpbjo6dmlzaWJs
ZUl0ZW1zKCkgY29uc3QKIHsKICAgICByZXR1cm4gY2xpZW50UmVjdCgpLmhlaWdodCgpIC8gbV9p
dGVtSGVpZ2h0OwogfQogCi1pbnQgUG9wdXBNZW51OjpsaXN0SW5kZXhBdFBvaW50KGNvbnN0IElu
dFBvaW50JiBwb2ludCkgY29uc3QKK2ludCBQb3B1cE1lbnVXaW46Omxpc3RJbmRleEF0UG9pbnQo
Y29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIHJldHVybiBtX3Njcm9sbE9mZnNl
dCArIHBvaW50LnkoKSAvIG1faXRlbUhlaWdodDsKIH0KIAotaW50IFBvcHVwTWVudTo6Zm9jdXNl
ZEluZGV4KCkgY29uc3QKK2ludCBQb3B1cE1lbnVXaW46OmZvY3VzZWRJbmRleCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fZm9jdXNlZEluZGV4OwogfQogCi12b2lkIFBvcHVwTWVudTo6Zm9jdXNG
aXJzdCgpCit2b2lkIFBvcHVwTWVudVdpbjo6Zm9jdXNGaXJzdCgpCiB7CiAgICAgaWYgKCFjbGll
bnQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDI0LDcgKzQzMCw3IEBAIHZvaWQgUG9wdXBNZW51
Ojpmb2N1c0ZpcnN0KCkKICAgICAgICAgfQogfQogCi12b2lkIFBvcHVwTWVudTo6Zm9jdXNMYXN0
KCkKK3ZvaWQgUG9wdXBNZW51V2luOjpmb2N1c0xhc3QoKQogewogICAgIGlmICghY2xpZW50KCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTQzOCw3ICs0NDQsNyBAQCB2b2lkIFBvcHVwTWVudTo6Zm9j
dXNMYXN0KCkKICAgICAgICAgfQogfQogCi1ib29sIFBvcHVwTWVudTo6ZG93bih1bnNpZ25lZCBs
aW5lcykKK2Jvb2wgUG9wdXBNZW51V2luOjpkb3duKHVuc2lnbmVkIGxpbmVzKQogewogICAgIGlm
ICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ1Nyw3ICs0NjMsNyBAQCBi
b29sIFBvcHVwTWVudTo6ZG93bih1bnNpZ25lZCBsaW5lcykKICAgICByZXR1cm4gc2V0Rm9jdXNl
ZEluZGV4KGxhc3RTZWxlY3RhYmxlSW5kZXgpOwogfQogCi1ib29sIFBvcHVwTWVudTo6dXAodW5z
aWduZWQgbGluZXMpCitib29sIFBvcHVwTWVudVdpbjo6dXAodW5zaWduZWQgbGluZXMpCiB7CiAg
ICAgaWYgKCFjbGllbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDc2LDcgKzQ4Miw3
IEBAIGJvb2wgUG9wdXBNZW51Ojp1cCh1bnNpZ25lZCBsaW5lcykKICAgICByZXR1cm4gc2V0Rm9j
dXNlZEluZGV4KGxhc3RTZWxlY3RhYmxlSW5kZXgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aW52
YWxpZGF0ZUl0ZW0oaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVt
KGludCBpbmRleCkKIHsKICAgICBpZiAoIW1fcG9wdXApCiAgICAgICAgIHJldHVybjsKQEAgLTQ5
MSw3ICs0OTcsNyBAQCB2b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KQog
ICAgIDo6SW52YWxpZGF0ZVJlY3QobV9wb3B1cCwgJnIsIFRSVUUpOwogfQogCi1JbnRSZWN0IFBv
cHVwTWVudTo6Y2xpZW50UmVjdCgpIGNvbnN0CitJbnRSZWN0IFBvcHVwTWVudVdpbjo6Y2xpZW50
UmVjdCgpIGNvbnN0CiB7CiAgICAgSW50UmVjdCBjbGllbnRSZWN0ID0gbV93aW5kb3dSZWN0Owog
ICAgIGNsaWVudFJlY3QuaW5mbGF0ZSgtcG9wdXBXaW5kb3dCb3JkZXJXaWR0aCk7CkBAIC00OTks
MTIgKzUwNSwxMiBAQCBJbnRSZWN0IFBvcHVwTWVudTo6Y2xpZW50UmVjdCgpIGNvbnN0CiAgICAg
cmV0dXJuIGNsaWVudFJlY3Q7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjppbmNyZW1lbnRXaGVlbERl
bHRhKGludCBkZWx0YSkKK3ZvaWQgUG9wdXBNZW51V2luOjppbmNyZW1lbnRXaGVlbERlbHRhKGlu
dCBkZWx0YSkKIHsKICAgICBtX3doZWVsRGVsdGEgKz0gZGVsdGE7CiB9CiAKLXZvaWQgUG9wdXBN
ZW51OjpyZWR1Y2VXaGVlbERlbHRhKGludCBkZWx0YSkKK3ZvaWQgUG9wdXBNZW51V2luOjpyZWR1
Y2VXaGVlbERlbHRhKGludCBkZWx0YSkKIHsKICAgICBBU1NFUlQoZGVsdGEgPj0gMCk7CiAgICAg
QVNTRVJUKGRlbHRhIDw9IGFicyhtX3doZWVsRGVsdGEpKTsKQEAgLTUxNyw3ICs1MjMsNyBAQCB2
b2lkIFBvcHVwTWVudTo6cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCiAgICAgICAgIHJldHVy
bjsKIH0KIAotYm9vbCBQb3B1cE1lbnU6OnNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCkKK2Jvb2wg
UG9wdXBNZW51V2luOjpzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpCiB7CiAgICAgaWYgKCFtX3Nj
cm9sbGJhcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTM3LDcgKzU0Myw3IEBAIGJvb2wg
UG9wdXBNZW51OjpzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVX
aW46OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBpZiAoIW1fcG9wdXApCiAgICAgICAgIHJl
dHVybjsKQEAgLTU0OSwxNCArNTU1LDkgQEAgdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKICAgICAgICAgOjpVcGRhdGVXaW5kb3cobV9wb3B1cCk7CiB9CiAKLWJvb2wgUG9wdXBN
ZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIAoteyAKLSAgICByZXR1cm4gdHJ1
ZTsgCi19Ci0KIGNvbnN0IGludCBzZXBhcmF0b3JQYWRkaW5nID0gNDsKIGNvbnN0IGludCBzZXBh
cmF0b3JIZWlnaHQgPSAxOwotdm9pZCBQb3B1cE1lbnU6OnBhaW50KGNvbnN0IEludFJlY3QmIGRh
bWFnZVJlY3QsIEhEQyBoZGMpCit2b2lkIFBvcHVwTWVudVdpbjo6cGFpbnQoY29uc3QgSW50UmVj
dCYgZGFtYWdlUmVjdCwgSERDIGhkYykKIHsKICAgICBpZiAoIW1fcG9wdXApCiAgICAgICAgIHJl
dHVybjsKQEAgLTY2Myw3ICs2NjQsNyBAQCB2b2lkIFBvcHVwTWVudTo6cGFpbnQoY29uc3QgSW50
UmVjdCYgZGFtYWdlUmVjdCwgSERDIGhkYykKICAgICAgICAgOjpSZWxlYXNlREMobV9wb3B1cCwg
bG9jYWxEQyk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKiBz
Y3JvbGxCYXIpCit2b2lkIFBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKFNjcm9sbGJhciogc2Ny
b2xsQmFyKQogewogICAgIEFTU0VSVChtX3Njcm9sbGJhcik7CiAKQEAgLTY5OSw3ICs3MDAsNyBA
QCB2b2lkIFBvcHVwTWVudTo6dmFsdWVDaGFuZ2VkKFNjcm9sbGJhciogc2Nyb2xsQmFyKQogICAg
IDo6VXBkYXRlV2luZG93KG1fcG9wdXApOwogfQogCi12b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit2b2lkIFBvcHVwTWVudVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBzY3JvbGxSZWN0
ID0gcmVjdDsKICAgICBzY3JvbGxSZWN0Lm1vdmUoc2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+
eSgpKTsKQEAgLTcwNyw3ICs3MDgsNyBAQCB2b2lkIFBvcHVwTWVudTo6aW52YWxpZGF0ZVNjcm9s
bGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlYwogICAgIDo6
SW52YWxpZGF0ZVJlY3QobV9wb3B1cCwgJnIsIGZhbHNlKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6
OnJlZ2lzdGVyQ2xhc3MoKQordm9pZCBQb3B1cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MoKQogewog
ICAgIHN0YXRpYyBib29sIGhhdmVSZWdpc3RlcmVkV2luZG93Q2xhc3MgPSBmYWxzZTsKIApAQCAt
NzQzLDcgKzc0NCw3IEBAIHZvaWQgUG9wdXBNZW51OjpyZWdpc3RlckNsYXNzKCkKIH0KIAogCi1M
UkVTVUxUIENBTExCQUNLIFBvcHVwTWVudTo6UG9wdXBNZW51V25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgQ0FMTEJB
Q0sgUG9wdXBNZW51V2luOjpQb3B1cE1lbnVXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdl
LCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewogI2lmIE9TKFdJTkNFKQogICAgIExP
TkcgbG9uZ1B0ciA9IEdldFdpbmRvd0xvbmcoaFduZCwgMCk7CkBAIC03NzEsNyArNzcyLDcgQEAg
TFJFU1VMVCBDQUxMQkFDSyBQb3B1cE1lbnU6OlBvcHVwTWVudVduZFByb2MoSFdORCBoV25kLCBV
SU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGEKIAogY29uc3QgaW50IHNtb290aFNjcm9sbEFuaW1hdGlv
bkR1cmF0aW9uID0gNTAwMDsKIAotTFJFU1VMVCBQb3B1cE1lbnU6OnduZFByb2MoSFdORCBoV25k
LCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCitMUkVTVUxUIFBv
cHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJh
bSwgTFBBUkFNIGxQYXJhbSkKIHsKICAgICBMUkVTVUxUIGxSZXN1bHQgPSAwOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaCBiL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjE4ZWU2YjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1l
bnVXaW5faAorI2RlZmluZSBQb3B1cE1lbnVXaW5faAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2lu
Y2x1ZGUgIlNjcm9sbGJhci5oIgorI2luY2x1ZGUgIlNjcm9sbGJhckNsaWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKK3R5cGVk
ZWYgc3RydWN0IEhEQ19fKiBIREM7Cit0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xs
YmFyOworCitjbGFzcyBQb3B1cE1lbnVXaW4gOiBwdWJsaWMgUG9wdXBNZW51LCBwcml2YXRlIFNj
cm9sbGJhckNsaWVudCB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVu
dCopOworICAgIH5Qb3B1cE1lbnVXaW4oKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0
IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRl
KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2
b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQq
IG1fcG9wdXBDbGllbnQ7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KKworICAgIHN0YXRpYyBMUENUU1RSIHBv
cHVwQ2xhc3NOYW1lKCk7CisKKyAgICBib29sIHVwKHVuc2lnbmVkIGxpbmVzID0gMSk7CisgICAg
Ym9vbCBkb3duKHVuc2lnbmVkIGxpbmVzID0gMSk7CisKKyAgICBpbnQgaXRlbUhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1faXRlbUhlaWdodDsgfQorICAgIGNvbnN0IEludFJlY3QmIHdpbmRvd1Jl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd1JlY3Q7IH0KKyAgICBJbnRSZWN0IGNsaWVudFJl
Y3QoKSBjb25zdDsKKworICAgIGludCB2aXNpYmxlSXRlbXMoKSBjb25zdDsKKworICAgIGludCBs
aXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisKKyAgICBib29sIHNldEZv
Y3VzZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgaG90VHJhY2tpbmcgPSBmYWxzZSk7CisgICAgaW50
IGZvY3VzZWRJbmRleCgpIGNvbnN0OworICAgIHZvaWQgZm9jdXNGaXJzdCgpOworICAgIHZvaWQg
Zm9jdXNMYXN0KCk7CisKKyAgICB2b2lkIHBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3Qs
IEhEQyA9IDApOworCisgICAgSFdORCBwb3B1cEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9w
dXA7IH0KKworICAgIHZvaWQgc2V0V2FzQ2xpY2tlZChib29sIGIgPSB0cnVlKSB7IG1fd2FzQ2xp
Y2tlZCA9IGI7IH0KKyAgICBib29sIHdhc0NsaWNrZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0Ns
aWNrZWQ7IH0KKworICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9zY3Jv
bGxPZmZzZXQgPSBvZmZzZXQ7IH0KKyAgICBpbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxPZmZzZXQ7IH0KKworICAgIGJvb2wgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24o
KTsKKworICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpOworICAgIHZvaWQg
cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpOworICAgIGludCB3aGVlbERlbHRhKCkgY29uc3Qg
eyByZXR1cm4gbV93aGVlbERlbHRhOyB9CisKKyAgICBib29sIHNjcm9sbGJhckNhcHR1cmluZ01v
dXNlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsgfQorICAgIHZv
aWQgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVy
aW5nTW91c2UgPSBiOyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVXaW5faApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKaW5kZXggZjI3MDliYi4u
NGE1Y2IyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51
V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCwxOSArMTksMjQgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51V2luLmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJp
bmcuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51V2luOjpTZWFyY2hQ
b3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVu
dCkKIHsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorUG9wdXBNZW51KiBT
ZWFyY2hQb3B1cE1lbnVXaW46OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOwor
fQorCitib29sIFNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC00MSw3ICs0Nyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGF1
dG9zYXZlS2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gUmV0YWluUHRyPENGU3Ry
aW5nUmVmPihBZG9wdENGLCBrZXkuY3JlYXRlQ0ZTdHJpbmcoKSk7CiB9CiAKLXZvaWQgU2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudVdp
bjo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjEsNyArNjcsNyBAQCB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2
ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPAog
ICAgIENGUHJlZmVyZW5jZXNBcHBTeW5jaHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBs
aWNhdGlvbik7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2
b2lkIFNlYXJjaFBvcHVwTWVudVdpbjo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1l
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmggYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQ
b3B1cE1lbnVXaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTg3ZDc2
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51
V2luLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJj
aFBvcHVwTWVudVdpbl9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudVdpbl9oCisKKyNpbmNsdWRl
ICJQb3B1cE1lbnVXaW4uaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVXaW4gOiBwdWJsaWMgU2VhcmNo
UG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xp
ZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVh
bCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQ
b3B1cE1lbnVXaW4gbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVu
dVdpbl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwCmluZGV4IDliMGRlYmEuLmU4OGQx
ZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwCkBAIC0yLDYgKzIsNyBAQAogICog
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHBvcHVwIG1lbnUgaW1wbGVtZW50YXRpb24gZm9yIDxz
ZWxlY3Q+IGVsZW1lbnRzIGluIFdlYkNvcmUuCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MSw3ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVd4LmgiCiAKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDEsMTggKzQyLDIzIEBAIHN0YXRpYyBpbnQgc19t
ZW51U3RhcnRJZCA9IHd4TmV3SWQoKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Qb3B1cE1l
bnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVudVd4OjpQb3B1
cE1lbnVXeChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xp
ZW50KQogICAgICwgbV9tZW51KE5VTEwpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgp
CitQb3B1cE1lbnVXeDo6flBvcHVwTWVudVd4KCkKIHsKICAgICBkZWxldGUgbV9tZW51OwogfQog
Ci12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGlu
dCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51V3g6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1f
cG9wdXBDbGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVudVd4OjpzaG93KGNvbnN0IEludFJl
Y3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogewogICAgIC8vIGp1c3QgZGVsZXRlIGFu
ZCByZWNyZWF0ZQogICAgIGRlbGV0ZSBtX21lbnU7CkBAIC03OCwxMyArODQsMTMgQEAgdm9pZCBQ
b3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgp
CiAgICAgICAgICAgICAgICAgICAgIG1fbWVudS0+QXBwZW5kKHNfbWVudVN0YXJ0SWQgKyBpLCBj
bGllbnQoKS0+aXRlbVRleHQoaSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAg
IG5hdGl2ZVdpbi0+Q29ubmVjdChzX21lbnVTdGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUt
MSksIHd4RVZUX0NPTU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBv
cHVwTWVudTo6T25NZW51SXRlbVNlbGVjdGVkKSwgTlVMTCwgdGhpcyk7CisgICAgICAgIG5hdGl2
ZVdpbi0+Q29ubmVjdChzX21lbnVTdGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUtMSksIHd4
RVZUX0NPTU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVu
dVd4OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCAwLCB0aGlzKTsKICAgICAgICAgbmF0aXZlV2luLT5Q
b3B1cE1lbnUobV9tZW51LCByLngoKSAtIHYtPnNjcm9sbFgoKSwgci55KCkgLSB2LT5zY3JvbGxZ
KCkpOwotICAgICAgICBuYXRpdmVXaW4tPkRpc2Nvbm5lY3Qoc19tZW51U3RhcnRJZCwgc19tZW51
U3RhcnRJZCArIChzaXplLTEpLCB3eEVWVF9DT01NQU5EX01FTlVfU0VMRUNURUQsIHd4Q29tbWFu
ZEV2ZW50SGFuZGxlcihQb3B1cE1lbnU6Ok9uTWVudUl0ZW1TZWxlY3RlZCksIE5VTEwsIHRoaXMp
OworICAgICAgICBuYXRpdmVXaW4tPkRpc2Nvbm5lY3Qoc19tZW51U3RhcnRJZCwgc19tZW51U3Rh
cnRJZCArIChzaXplLTEpLCB3eEVWVF9DT01NQU5EX01FTlVfU0VMRUNURUQsIHd4Q29tbWFuZEV2
ZW50SGFuZGxlcihQb3B1cE1lbnVXeDo6T25NZW51SXRlbVNlbGVjdGVkKSwgMCwgdGhpcyk7CiAg
ICAgfQogfQogCi12b2lkIFBvcHVwTWVudTo6T25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2
ZW50JiBldmVudCkKK3ZvaWQgUG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1h
bmRFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKGNsaWVudCgpKSB7CiAgICAgICAgIGNsaWVudCgp
LT52YWx1ZUNoYW5nZWQoZXZlbnQuR2V0SWQoKSAtIHNfbWVudVN0YXJ0SWQpOwpAQCAtOTMsMjAg
Kzk5LDE1IEBAIHZvaWQgUG9wdXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZl
bnQmIGV2ZW50KQogICAgIC8vIFRPRE86IERvIHdlIG5lZWQgdG8gY2FsbCBEaXNjb25uZWN0IGhl
cmU/IERvIHdlIGhhdmUgYSByZWYgdG8gdGhlIG5hdGl2ZSB3aW5kb3cgc3RpbGw/CiB9CiAKLXZv
aWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51V3g6OmhpZGUoKQogewogICAgIC8v
IHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZSwgdGhlIG5hdGl2ZSBjb250cm9sIG9u
bHkgZXhpc3RzIGR1cmluZyB0aGUgdGltZQogICAgIC8vIHNob3cgaXMgY2FsbGVkCiB9CiAKLXZv
aWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudVd4Ojp1cGRh
dGVGcm9tRWxlbWVudCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShtX3BvcHVw
Q2xpZW50LT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS93eC9Qb3B1cE1lbnVXeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjU2MDRiOTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVu
dVd4LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFBvcHVw
TWVudVd4X2gKKyNkZWZpbmUgUG9wdXBNZW51V3hfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
I2lmZGVmIF9fV1hNU1dfXworI2luY2x1ZGUgPHd4L21zdy93aW51bmRlZi5oPgorI2VuZGlmCitj
bGFzcyB3eE1lbnU7CisjaW5jbHVkZSA8d3gvZGVmcy5oPgorI2luY2x1ZGUgPHd4L2V2ZW50Lmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xs
YmFyOworCitjbGFzcyBQb3B1cE1lbnVXeCA6IHB1YmxpYyBQb3B1cE1lbnUsIHB1YmxpYyB3eEV2
dEhhbmRsZXIgeworcHVibGljOgorICAgIFBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCopOwor
ICAgIH5Qb3B1cE1lbnVXeCgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVj
dCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
Y29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1
cENsaWVudDsKKworICAgIHd4TWVudSogbV9tZW51OworICAgIHZvaWQgT25NZW51SXRlbVNlbGVj
dGVkKHd4Q29tbWFuZEV2ZW50Jik7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworfTsKKworfQorCisjZW5kaWYgLy8gUG9w
dXBNZW51V3hfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1l
bnVXeC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmNwcAppbmRl
eCBkYmJlMzM5Li5hNWFlYjFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJj
aFBvcHVwTWVudVd4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVu
dVd4LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjQsMzIgKzI1LDM3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVw
TWVudVd4LmgiCiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudVd4OjpT
ZWFyY2hQb3B1cE1lbnVXeChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAo
Y2xpZW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudVd4OjpzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBT
ZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51V3g6
OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFNl
YXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVk
KCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVX
eDo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjZkYzc3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4
L1NlYXJjaFBvcHVwTWVudVd4LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudVd4X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51V3hf
aAorCisjaW5jbHVkZSAiUG9wdXBNZW51V3guaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVXeCA6IHB1
YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudVd4KFBv
cHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOwor
ICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9p
ZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZh
dGU6CisgICAgUG9wdXBNZW51V3ggbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJj
aFBvcHVwTWVudVd4X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxNzc5
MjFjLi4xNzAzMTBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKIAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVj
dG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTg4
LDggKzg5LDggQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSgpCiAgICAg
bV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3RoKHRoZW1lKCktPnBv
cHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7CiAgICAgbV9pbm5lckJs
b2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFs
UGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCkt
PnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90
dG9tKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgICAgICAKLSAgICBpZiAoUG9wdXBNZW51OjppdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CisKKyAgICBpZiAoZG9jdW1lbnQoKS0+cGFn
ZSgpLT5jaHJvbWUoKS0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkgewog
ICAgICAgICAvLyBJdGVtcyBpbiB0aGUgcG9wdXAgd2lsbCBub3QgcmVzcGVjdCB0aGUgQ1NTIHRl
eHQtYWxpZ24gYW5kIGRpcmVjdGlvbiBwcm9wZXJ0aWVzLAogICAgICAgICAvLyBzbyB3ZSBtdXN0
IGFkanVzdCBvdXIgb3duIHN0eWxlIHRvIG1hdGNoLgogICAgICAgICBtX2lubmVyQmxvY2stPnN0
eWxlKCktPnNldFRleHRBbGlnbihMRUZUKTsKQEAgLTI3OCw3ICsyNzksNyBAQCB2b2lkIFJlbmRl
ck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUgc2hvd1BvcHVwIGNhbGwg
YW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygpOwogICAgIGlmICghbV9w
b3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAg
ICBtX3BvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlUG9wdXBNZW51
KHRoaXMpOwogICAgIFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRydWU7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IGQ3MmUxYTkuLjk2ZGVhZDUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBS
ZW5kZXJNZW51TGlzdF9oCiAjZGVmaW5lIFJlbmRlck1lbnVMaXN0X2gKIAorI2luY2x1ZGUgIlBv
cHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckZsZXhpYmxlQm94LmgiCiAKQEAgLTM1LDggKzM2LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBQb3B1cE1lbnU7CiBjbGFzcyBSZW5kZXJUZXh0OworY2xhc3MgU2VsZWN0VUlD
bGllbnQ7CiAKICNpZiBFTkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcpCiBjbGFzcyBSZW5kZXJN
ZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCwgcHJpdmF0ZSBMaXN0UG9wdXBNZW51
Q2xpZW50IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwCmluZGV4IGQwYWIxMDcuLmE5YzE2NmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMiw2ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykgCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDYgKzI0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKIAorI2luY2x1ZGUgIkNo
cm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTM4LDcgKzQwLDYgQEAKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiU2Vs
ZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2lt
cGxlRm9udERhdGEuaCIKQEAgLTYyLDcgKzYzLDcgQEAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoTm9kZSogbm9kZSwgYm9vbCBwbGFjZWgK
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZSgpCiB7CiAgICAgaWYgKG1fc2VhcmNoUG9wdXApIHsKLSAgICAgICAgbV9zZWFyY2hQb3B1cC0+
ZGlzY29ubmVjdENsaWVudCgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+
ZGlzY29ubmVjdENsaWVudCgpOwogICAgICAgICBtX3NlYXJjaFBvcHVwID0gMDsKICAgICB9CiAg
CkBAIC0xMDcsNyArMTA4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFk
ZFNlYXJjaFJlc3VsdCgpCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2
ZU5hbWUoKTsKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAg
PSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlz
KTsKIAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2Vu
dFNlYXJjaGVzKTsKIH0KQEAgLTEyNSw3ICsxMjYsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3Nl
YXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVh
dGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNo
cm9tZSgpLT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNo
UG9wdXAtPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ1LDE0ICsxNDYsMTQgQEAg
dm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCgpCiAgICAgICAgIG1f
c2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsK
ICAgICB9CiAKLSAgICBtX3NlYXJjaFBvcHVwLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0
KHRydWUpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKKyAgICBtX3NlYXJjaFBvcHVwLT5wb3B1
cE1lbnUoKS0+c2hvdyhhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0cnVlKSwgZG9jdW1lbnQoKS0+
dmlldygpLCAtMSk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoaWRl
UG9wdXAoKQogewogICAgIEFTU0VSVChub2RlKCktPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgaWYg
KG1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAtPmhpZGUoKTsKKyAgICAgICAg
bV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmhpZGUoKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKQEAgLTY4NSw3ICs2ODYsNyBA
QCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQoKQog
ICAgIH0KIAogICAgIGlmIChtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKQotICAgICAgICBtX3NlYXJj
aFBvcHVwLT51cGRhdGVGcm9tRWxlbWVudCgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT5wb3B1
cE1lbnUoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OmNhY2hlU2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCkKQEAgLTg4Myw3
ICs4ODQsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2Vk
KHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbgogICAgICAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgICAgICAgICBpZiAoIW5hbWUu
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAg
ICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhp
cyk7CisgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdl
KCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CiAgICAgICAgICAgICAg
ICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNo
ZXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCmluZGV4IDkyZWNhZGQuLjRmZTRmOWYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0x
LDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9i
aWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29t
LykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0LDYgKzI1LDcgQEAKIAog
I2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9s
LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsNyArMzQsNyBAQCBjbGFzcyBJbnB1dEVsZW1lbnQ7
CiBjbGFzcyBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDsKIGNsYXNzIFNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uRWxlbWVudDsKIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ7Ci1jbGFzcyBTZWFyY2hQb3B1cE1lbnU7CitjbGFzcyBTZWFyY2hVSUNsaWVudDsKIGNsYXNz
IFNwaW5CdXR0b25FbGVtZW50OwogY2xhc3MgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ7CiAKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDAzMDk5NTIuLjJjMjUwMDggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBv
cHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIEFz
IENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVu
dSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xhc3Nl
cyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8K
KyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIHNyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6c2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnRJbXBsOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6CisKIDIwMTAtMDctMjYgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGQ0M2Q4OGEuLmNmYWQ0NmQgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01NSw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZS5oIgogI2lmIFVTRShWOCkKQEAgLTc2NSw0
ICs3NjcsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpleGl0RnVsbHNjcmVlbkZvck5vZGUo
V2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZXhpdEZ1
bGxzY3JlZW5Gb3JOb2RlKFdlYk5vZGUobm9kZSkpOwogfQogCitib29sIENocm9tZUNsaWVudElt
cGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBDaHJvbWVDbGllbnRJ
bXBsOjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bShjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IENo
cm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudUNocm9taXVtKGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggZTgyNDM4MS4u
NGRmOWFiYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtMzIsMTIgKzMzLDE1IEBACiAjZGVmaW5lIENocm9tZUNsaWVudEltcGxfaAogCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
QWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIEZpbGVDaG9vc2VyOwogY2xhc3MgSFRNTFBhcnNl
clF1aXJrczsKIGNsYXNzIFBvcHVwQ29udGFpbmVyOworY2xhc3MgUG9wdXBNZW51Q2xpZW50Owog
Y2xhc3MgU2VjdXJpdHlPcmlnaW47CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiB9CkBAIC0xNjUs
NiArMTY5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJzb3JJ
bmZvJiBjdXJzb3IpOwogICAgIHZvaWQgc2V0Q3Vyc29yRm9yUGx1Z2luKGNvbnN0IFdlYkN1cnNv
ckluZm8mIGN1cnNvcik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBN
ZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiBwcml2YXRl
OgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdl
YlBvcHVwTWVudUluZm8qKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBmYzk0MGQ4Li41NzFjNjdlIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAg
IEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVw
TWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xh
c3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQg
dG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKwogMjAxMC0wNy0yMyAgUmFmYWVs
IEFudG9nbm9sbGkgIDxhbnRvZ25vbGxpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHAKaW5kZXggZmZiZDY0Mi4uZjM3ZGExOSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNSw2ICs1LDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwOCBEaWVnbyBHb256YWxlegogICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCkBAIC00Nyw2ICs0OCw4IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRl
ICJQb3B1cE1lbnVFZmwuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVFZmwuaCIKICNpbmNs
dWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKQEAgLTUxMyw0ICs1MTYsMTkgQEAgdm9pZCBDaHJvbWVD
bGllbnRFZmw6OmRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0
IFZpZXdwb3J0QXIKICAgICBld2tfdmlld192aWV3cG9ydF9zZXQobV92aWV3LCBhcmd1bWVudHMu
d2lkdGgsIGFyZ3VtZW50cy5oZWlnaHQsIGFyZ3VtZW50cy5pbml0aWFsU2NhbGUsIGFyZ3VtZW50
cy5taW5pbXVtU2NhbGUsIGFyZ3VtZW50cy5tYXhpbXVtU2NhbGUsIGFyZ3VtZW50cy51c2VyU2Nh
bGFibGUpOwogfQogCitib29sIENocm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFBv
cHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVFZmwo
Y2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRF
Zmw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUVmbChjbGllbnQpKTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5k
ZXggY2U4YWJkMS4uYjIyZDk4MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5oCkBAIC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQg
LSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTEzNyw2ICsxMzgsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVW
aWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBh
cmd1bWVudHMpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3Jl
YXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKwogICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7CiAgICAgS1VSTCBtX2hvdmVy
ZWRMaW5rVVJMOwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKaW5kZXggODAzYmYxMi4uNDBhOWM1NiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1
cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBD
aHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUg
YW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMg
dGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisg
ICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhlQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCA4ODQ0MGJhLi45Mzk0MThh
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBA
IC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAo
QykgMjAwOCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsOSArMzIsMTIgQEAKICNpbmNsdWRlICJHdGtW
ZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51
R3RrLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkljb24uaCIKICNp
bmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51R3RrLmgiCiAjaW5jbHVk
ZSAid2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5oIgogI2luY2x1ZGUgIndlYmtpdHdl
YnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgpAQCAtNjE2LDQgKzYy
MCwxOSBAQCB2b2lkIENocm9tZUNsaWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcgogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZSh3ZWJWaWV3LCAiZ2VvbG9jYXRpb24tcG9saWN5LWRlY2lzaW9uLWNhbmNlbGxlZCIsIHdlYkZy
YW1lKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3Jl
OjpQb3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51R3RrKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFy
Y2hQb3B1cE1lbnVHdGsoY2xpZW50KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IGNlNWM1YTcuLjNmNzZkMTkgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDkgKzIzLDE1IEBACiAKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51
LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKIHR5cGVkZWYgc3RydWN0IF9XZWJL
aXRXZWJWaWV3IFdlYktpdFdlYlZpZXc7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBv
cHVwTWVudUNsaWVudDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICBjbGFzcyBDaHJv
bWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKQEAgLTEyMiw2ICsxMjks
MTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9s
b2NhdGlvbiopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24q
KTsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICBwcml2
YXRlOgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgICAgIFdlYkNvcmU6
OktVUkwgbV9ob3ZlcmVkTGlua1VSTDsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9DaGFuZ2VM
b2cgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCmluZGV4IDg0MWE5NGMuLmNmZGRkZjMgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29z
dGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJL
aXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5
MgorCisgICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJv
dmlkaW5nIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRv
IGJlIGNoYW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlUG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6
CisKIDIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCmluZGV4IGQxOGI4NGQuLjZkNjRhYzcgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKKysr
IGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcApAQCAt
Miw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2
ZW5nb29kQGdtYWlsLmNvbT4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMzUsNiArMzYsOCBAQAogI2luY2x1ZGUgIkljb24uaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51SGFpa3UuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVIYWlr
dS5oIgogCiAjaW5jbHVkZSA8QWxlcnQuaD4KICNpbmNsdWRlIDxTdHJpbmcuaD4KQEAgLTM4MCw1
ICszODMsMjAgQEAgUGFzc093blB0cjxIVE1MUGFyc2VyUXVpcmtzPiBDaHJvbWVDbGllbnRIYWlr
dTo6Y3JlYXRlSFRNTFBhcnNlclF1aXJrcygpCiAgICAgcmV0dXJuIDA7CiB9CiAKK2Jvb2wgQ2hy
b21lQ2xpZW50SGFpa3U6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGll
bnRIYWlrdTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51SGFpa3UoY2xpZW50KSk7Cit9CisK
K1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51SGFpa3UoY2xpZW50KSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmggYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50SGFpa3UuaAppbmRleCA5NjNlNzJmLi4zOGZlZjI1IDEwMDY0NAotLS0gYS9XZWJL
aXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaApAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA3IFJ5YW4gTGVhdmVuZ29vZCA8bGVhdmVuZ29vZEBnbWFpbC5jb20+
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
QEAgLTEyOCw2ICsxMjksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUp
OwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKKwogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDdiZDZiNDcuLjM4ODcyNTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51
IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21l
Q2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBT
ZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQg
aW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAg
ICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVu
dSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisK
IDIwMTAtMDctMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IDcwN2QwODAuLmZhMjliMzIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xNjcsNiArMTY3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
KiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R2VvbG9jYXRpb24qKSB7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZh
dGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggZWI1NjI0MC4uZTkzZWEwOSAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTEsNiArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjIsMTIgKzYyLDE2IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9w
dXBNZW51TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnVNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lkZ2V0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW1wb3J0IDx3dGYvUGFz
c1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCisKKwogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2Vu
ZGlmCkBAIC03MjQsNiArNzI4LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlkQmx1
cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmll
dywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0PFdl
YkNvcmU6Ok5vZGUqPihub2RlKSkpOwogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0
SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30K
KworUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51TWFjKGNsaWVudCkpOworfQorCitQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVNYWMoY2xpZW50KSk7Cit9CisK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdy
YXBoaWNzTGF5ZXIpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0
L0NoYW5nZUxvZwppbmRleCA3NzljYWEwLi44MGFjYTgzIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
MC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUg
cmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVD
bGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNl
YXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBp
bmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAg
IGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDA5LTEwLTMwICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9y
LmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwCmluZGV4IDJjNjRhNzguLjc5MTBjMWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNs
aWVudFF0LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudFF0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51
UXQuaCIKICNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkKICNpbmNsdWRlICJRdE1hZW1vV2ViUG9w
dXAuaCIKICNlbHNlCkBAIC01Miw2ICs1NCw3IEBACiAjZW5kaWYKICNpbmNsdWRlICJRV2ViUGFn
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAiU2VhcmNo
UG9wdXBNZW51UXQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZp
ZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKQEAgLTY0NCw0
ICs2NDcsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6ZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1l
bnRzKEZyYW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcmcKICAgICBlbWl0IG1fd2ViUGFnZS0+
dmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQoaGludHMpOwogfQogCitib29sIENocm9tZUNsaWVudFF0
OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFBvcHVwTWVudVF0KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBv
cHVwTWVudVF0KGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRhMjUuLjA2YWI1Yjgg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTc2LDYg
KzE3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc01p
bmltaXplZCgpOwogI2VuZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgICAgIFF0QWJzdHJhY3RXZWJQb3B1cCog
Y3JlYXRlU2VsZWN0UG9wdXAoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZp
ZXdwb3J0QXJndW1lbnRzKEZyYW1lKiwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggY2VjNDFjNy4uMDA2NWQ2YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAg
THVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jp
bmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZy
b20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVu
dCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVw
TWVudSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDct
MjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBN
YWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAppbmRleCA3MzUzMmE2Li4yZTliYTViIDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw2
ICs1Niw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUG9wdXBNZW51V2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWFy
Y2hQb3B1cE1lbnVXaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAj
cHJhZ21hIHdhcm5pbmcocG9wKQogCkBAIC04NjgsMyArODcxLDE4IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopCiAKICNlbmRpZgogCitib29sIFdl
YkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQorewor
ICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7Cit9CisKK1Bhc3NS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNlYXJjaFBvcHVwTWVudVdpbihjbGllbnQpKTsKK30KKwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZTc4NDVhOS4uZTcxN2VmMSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysg
Yi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xNjUsNiArMTY2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29u
c3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50
ZXIqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCisgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVsZWdh
dGU+IHVpRGVsZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dl
YktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMzJmZjZmZS4uNDRhNTYwMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9w
dXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMg
Q2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51
IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2Vz
IHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bwor
ICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRX
eDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50V3g6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRXeDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJLaXRT
dXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisKIDIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhlQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcCBiL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAppbmRleCBkODFhMjBjLi4yNTMxMmI0
IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAK
KysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBLZXZpbiBPbGxpdmllciA8a2V2aW5v
QHRoZW9sbGl2aWVycy5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgpAQCAtMzgsNiArMzksOCBAQAogI2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
UG9wdXBNZW51V3guaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVXeC5oIgogI2luY2x1ZGUg
IldpbmRvd0ZlYXR1cmVzLmgiCiAKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDU4LDQgKzQ2MSwx
OSBAQCB2b2lkIENocm9tZUNsaWVudFd4OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAor
Ym9vbCBDaHJvbWVDbGllbnRXeDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXeChjbGllbnQpKTsKK30KKwor
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudFd4OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVXeChjbGllbnQpKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKaW5kZXggNGIxNTZlZC4uNWYyMmNiZSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAorKysgYi9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBLZXZpbiBPbGxpdmllciA8a2V2aW5vQHRoZW9sbGl2
aWVycy5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpA
QCAtMTQxLDYgKzE0MiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHd4V2ViVmlldyogbV93ZWJWaWV3Owog
fTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNmVkNGIwNy4uZmM1N2FiOCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29z
dGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJl
cGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBDbGFzc2VzIFdlYlBvcHVwTWVudSBhbmQgV2Vi
U2VhcmNoUG9wdXBNZW51IGluaGVyaXQgZnJvbSBQb3B1cE1lbnUgYW5kCisgICAgICAgIFNlYXJj
aFBvcHVwTWVudSByZXNwZWN0aXZlbHkuIEF0IHRoaXMgcG9pbnQgdGhleSBhcmUganVzdCBlbXB0
eSBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6
OldlYlBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6fldlYlBvcHVw
TWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBvcHVwTWVudTo6aGlkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UG9wdXBNZW51Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJj
aFBvcHVwTWVudTo6V2ViU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2Vh
cmNoUG9wdXBNZW51Ojpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBv
cHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNo
UG9wdXBNZW51OjplbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5oOiBBZGRlZC4KKworICAgICAgICBBcyBDaHJvbWVDbGllbnQg
d2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBv
cHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0
IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxl
bWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCisgICAgICAgIGJ1aWxkIGlz
c3VlczoKKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTAtMDctMjYgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4M2Y3MGIuLjRm
Yzg2M2UgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
NTUsNiArMjU1LDEwIEBACiAJCUJDRjY5RkEzMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0
aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuY3BwICovOyB9
OwogCQlCQ0Y2OUZBOTExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTcxMTc2RDFD
QjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJDRjY5RkFBMTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05h
dmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRjY5RkE4MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmNwcCAq
LzsgfTsKKwkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MjExRkY0
QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLzsgfTsKKwkJRDNCOTQ4NDcxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVu
dS5oICovOyB9OworCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
Qjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovOyB9Owor
CQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1
MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENG
QzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMEND
QkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKIAkJRTFFRTUz
RTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTNFNjEx
RjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLzsg
fTsKIAkJRTFFRTU1RjQxMUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1NUYzMTFGOEYxODkw
MENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHVibGljLCApOyB9OyB9OwpAQCAtNTQyLDYgKzU0NiwxMCBAQAogCQlCQ0Y2OUZBMTExNzZEMDE0
MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViTmF2aWdhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0Y2OUZBNzExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05hdmlnYXRpb25EYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5RkE4MTE3NkQxQ0IwMDQ3MUE1MiAvKiBX
S05hdmlnYXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdLTmF2aWdhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0I5
NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U2VhcmNoUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4
NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNs
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUVFNTVGMzExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04MjcsNiArODM1LDEwIEBACiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkluc3BlY3RvckNsaWVudC5oICovLAogCQkJCTFBM0U3MzYwMTFDQzI2NTkwMDdCRDUz
OSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBM0U3MzVGMTFDQzI2NTkw
MDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKKwkJCQlEM0I5NDg0MjExRkY0
QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLywKKwkJCQlEM0I5NDg0MzExRkY0QjY1
MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8sCisJCQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCisJCQkJRDNCOTQ4NDUxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJD
b3JlU3VwcG9ydDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjgxLDYgKzEyOTMs
OCBAQAogCQkJCUUxRUU1NjMwMTFGOEY2QUEwMENDQkVFNCAvKiBXS0J1bmRsZU5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRjA0OUU2MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZUZyYW1l
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGMDQ5RTcxMUZFMjBGNjAwRjg2QTU4IC8q
IFdLQnVuZGxlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4NDcxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4NDkxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0x
NDc4LDYgKzE0OTIsOCBAQAogCQkJCUUxRUU1M0U3MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRTU1Rjgx
MUY4RjFCQzAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTFFRTU2NTYxMUY4RjcxNzAwQ0NCRUU0IC8qIFdLQnVuZGxlTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlEM0I5NDg0NjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDIzMjU4MDkuLjE5NjdlNjkg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC0zNCw4ICszNCwxMCBAQAogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VLaW5kcy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlBy
ZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2Vi
U2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+
CkBAIC00NjgsNiArNDcwLDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlkQmx1cihj
b25zdCBOb2RlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkNocm9tZUNs
aWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVy
biB0cnVlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnUoY2xpZW50KSk7Cit9
CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlYXJjaFBvcHVwTWVudShjbGll
bnQpKTsKK30KKwogUGFzc093blB0cjxIVE1MUGFyc2VyUXVpcmtzPiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYg
LS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggZGQ0ODdiNC4uYmQ2NzFiMyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTYyLDYgKzE2MiwxMCBAQCBwcml2
YXRlOgogICAgIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpIVE1MUGFyc2VyUXVp
cmtzPiBjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNv
bnN0OworCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNo
cm9uaXphdGlvbigpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBvcHVwTWVudS5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUG9wdXBNZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2U3
MzhjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJQb3B1cE1lbnU6OldlYlBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQoreworfQorCitXZWJQ
b3B1cE1lbnU6On5XZWJQb3B1cE1lbnUoKQoreworfQorCisKK3ZvaWQgV2ViUG9wdXBNZW51Ojpk
aXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBX
ZWJQb3B1cE1lbnU6OnNob3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV2ViQ29yZTo6
RnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit7CisKK30KKwordm9pZCBXZWJQb3B1cE1lbnU6
OmhpZGUoKQoreworfQorCit2b2lkIFdlYlBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQor
eworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUG9wdXBNZW51LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9w
dXBNZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY1NTFjOQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1
cE1lbnUuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV2Vi
UG9wdXBNZW51X2gKKyNkZWZpbmUgV2ViUG9wdXBNZW51X2gKKworI2luY2x1ZGUgIlBvcHVwTWVu
dS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQb3B1cE1lbnUgOiBwdWJsaWMgV2ViQ29y
ZTo6UG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBXZWJQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
Kik7CisgICAgfldlYlBvcHVwTWVudSgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OkZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAg
dmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAg
IFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKK307CisKK30KKworI2Vu
ZGlmIC8vIFdlYlBvcHVwTWVudV9oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNiZjI1MWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU2VhcmNo
UG9wdXBNZW51OjpXZWJTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKK3sKK30KKworUG9wdXBNZW51KiBXZWJTZWFy
Y2hQb3B1cE1lbnU6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCit2
b2lkIFdlYlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IFdlYkNvcmU6
OkF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK3sKK30KKwordm9pZCBXZWJT
ZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNT
dHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit7Cit9CisKK2Jvb2wgV2ViU2VhcmNoUG9wdXBNZW51
OjplbmFibGVkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTgzM2UwCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXZWJTZWFyY2hQ
b3B1cE1lbnVfaAorI2RlZmluZSBXZWJTZWFyY2hQb3B1cE1lbnVfaAorCisjaW5jbHVkZSAiU2Vh
cmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBXZWJTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudSogcG9wdXBNZW51KCk7
CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9t
aWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAg
dmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29s
IGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBXZWJQb3B1cE1lbnUgbV9wb3B1cDsKK307CisK
K30KKworI2VuZGlmIC8vIFdlYlNlYXJjaFBvcHVwTWVudV9oCmRpZmYgLS1naXQgYS9XZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvaiBiL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IGE3
NGNjMjYuLjc4ZDQ3YTggMTAwNzU1Ci0tLSBhL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisr
KyBiL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC01NTksNiArNTU5LDIyIEBACiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJJbnNwZWN0b3JD
bGllbnQuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYlBvcHVwTWVudS5jcHAiDQor
CQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
V2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJQb3B1cE1lbnUuaCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdl
YkNvcmVTdXBwb3J0XFdlYlNlYXJjaFBvcHVwTWVudS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmls
ZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3Jl
U3VwcG9ydFxXZWJTZWFyY2hQb3B1cE1lbnUuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KIAkJ
CQk8RmlsdGVyDQogCQkJCQlOYW1lPSJ3aW4iDQogCQkJCQk+DQotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62730</attachid>
            <date>2010-07-27 12:57:24 -0700</date>
            <delta_ts>2010-07-27 13:19:59 -0700</delta_ts>
            <desc>patch 6</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>186189</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA2NmQyMmY4ZWVkNmQwZTczZGVmZTc3Nzk3ZDUxMDUzZDQ3ODM0NDBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMjcgSnVsIDIwMTAgMTU6NTk6NDAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51IGhhdmUgYmVlbiBtYWRlIHB1cmUgdmlydHVhbC4KCiogcGxhdGZvcm0vUG9wdXBNZW51
Lmg6CihXZWJDb3JlOjpQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgoqIHBsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojp+U2VhcmNoUG9wdXBNZW51KToK
CkNsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHlDb250cm9sU2luZ2xlTGluZSBo
YXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CihXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3ZXJlIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBpbnN0YW5jZXMgb2YgY2xhc3NlcwpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCgoqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKFdlYkNvcmU6OkVtcHR5UG9w
dXBNZW51OjpoaWRlKToKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCk6CihXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CihXZWJDb3Jl
OjpFbXB0eVNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6RW1wdHlTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpFbXB0eVNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudSk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlUG9wdXBN
ZW51KToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKiBwYWdlL0No
cm9tZS5oOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CgpPcmlnaW5hbCBjb250ZW50cyBvZiBmaWxl
cyBQb3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmggaGF2ZSBiZWVuIHNwbGl0ZWQKaW4g
c2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFguaCBhbmQg
U2VhcmNoUG9wdXBNZW51WFhYLmgpLgpFYWNoIG9mIG5ldyB0aGUgZmlsZXMgY29udGFpbiB0aGUg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1lbnUgb3IKU2VhcmNoUG9w
dXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtLgoK
YnJldzoKCiogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNvcmU6OlBvcHVw
TWVudUJyZXc6OlBvcHVwTWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6Omhp
ZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL2JyZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OmNsaWVudCk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVCcmV3OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgoKY2hy
b21pdW06CgoqIFdlYkNvcmUuZ3lwaToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0p
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSk6CihXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQp
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQpOgoqIHBsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJv
bWl1bTo6Y2xpZW50KToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0pOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSk6
CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMpOgoqIHBsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmg6IEFkZGVkLgoKZWZsOgoKKiBwbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51
RWZsKToKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFk
ZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgoqIHBsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQ
b3B1cE1lbnVFZmwpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51RWZsOjplbmFibGVkKToKKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmg6IEFkZGVkLgoKZ3RrOgoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKToKKFdl
YkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVudUd0ayk6CihXZWJDb3JlOjpQb3B1cE1lbnVH
dGs6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKFdlYkNvcmU6OlBvcHVw
TWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpkaXNj
b25uZWN0Q2xpZW50KToKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQp
OgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQpOgooV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbik6CihXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKToKKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgooV2Vi
Q29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgoqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVH
dGspOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmg6IEFk
ZGVkLgoKaGFpa3U6CgoqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcDoKKFdlYkNv
cmU6OkhhaWt1UG9wdXA6OkhhaWt1UG9wdXApOgooV2ViQ29yZTo6SGFpa3VQb3B1cDo6fkhhaWt1
UG9wdXApOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KToKKFdlYkNv
cmU6OlBvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UpOgooV2ViQ29yZTo6UG9wdXBNZW51
SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OnNob3cp
OgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmhpZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBwbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5o
OiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKFdl
YkNvcmU6OlBvcHVwTWVudUhhaWt1OjpjbGllbnQpOgoqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBv
cHVwTWVudUhhaWt1LmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSk6CiogcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuaDogQWRkZWQuCgptYWM6CgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmg6IEFkZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNjb25uZWN0Q2xpZW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgooV2ViQ29yZTo6
UG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xl
YXIpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CihXZWJDb3JlOjpQb3B1cE1l
bnVNYWM6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51TWFjOjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJj
aGVzKToKCnF0OgoKKiBXZWJDb3JlLnBybzoKKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6
CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQpOgooV2ViQ29yZTo6UG9wdXBNZW51
UXQ6On5Qb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6
aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgoqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oOgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVRdDo6cG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVj
ZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CiogcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCgp3aW46CgoqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgooV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp+UG9w
dXBNZW51V2luKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmhpZGUpOgooV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp2aXNpYmxlSXRl
bXMpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9j
dXNGaXJzdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmRvd24pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp1cCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Y2xpZW50UmVjdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEp
OgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyk6
CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNsaWVudCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhcik6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46Oml0ZW1I
ZWlnaHQpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3aW5kb3dSZWN0KToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6cG9wdXBIYW5kbGUpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRXYXND
bGlja2VkKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2FzQ2xpY2tlZCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNj
cm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndoZWVsRGVsdGEpOgooV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSk6CihXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKToKKiBwbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNo
UG9wdXBNZW51V2luKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5oOiBBZGRlZC4KCndrOgoKKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6CihXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6UG9wdXBNZW51V3g6On5Q
b3B1cE1lbnVXeCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXeDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51
SXRlbVNlbGVjdGVkKToKKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
aDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6Y2xpZW50KToKKiBwbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNo
UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudVd4Ojpwb3B1cE1lbnUpOgoqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6
IEFkZGVkLgoKQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bwppbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCiogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgoKV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVw
TWVudSk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXQv
d2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6Cgoq
IFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoK
V2ViS2l0MjoKCkNsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdCBmcm9tIFBvcHVwTWVudSBhbmQKU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1
cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViS2l0
OjpXZWJQb3B1cE1lbnU6OnNob3cpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgooV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CihXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6
cG9wdXBNZW51KToKKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMpOgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCgpBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQppbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21l
Q2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCmltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpidWlsZCBpc3N1ZXM6CgoqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjc5ICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDEyICstCiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgMTQgKy0KIFdlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKwogV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrLQogV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsK
IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
OSArCiBXZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oICAgICAgICAgICAgICAgICAgICAgICB8
ICAxNzYgKy0tLS0tLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCAg
ICAgICAgICAgICAgICAgfCAgIDIxICstCiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51
QnJldy5jcHAgICAgICAgICAgICB8ICAgMjYgKystCiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9w
dXBNZW51QnJldy5oICAgICAgICAgICAgICB8ICAgNTQgKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuY3BwICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRm
b3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCAgICB8ICAgMjMgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaCAgICAgIHwgICAxOSAr
KwogLi4uL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCAgfCAg
IDE4ICstCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCAg
ICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwICAgICAg
ICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oICAg
ICAgICAgICAgICAgIHwgICA1NCArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuY3BwICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJj
aFBvcHVwTWVudUVmbC5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAgICAgICAgICAgICAgIHwgICAyNSArLQogV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUG9wdXBNZW51R3RrLmggICAgICAgICAgICAgICAgfCAgIDY3ICsrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwICAgICAgICB8ICAgMTkgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oICAgICAgICAgIHwgICA0NCAr
KysKIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwICAgICAgICAgIHwg
ICAzMSArKy0KIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaCAgICAgICAg
ICAgIHwgICA1NiArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhh
aWt1LmNwcCAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBN
ZW51SGFpa3UuaCAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVu
dU1hYy5oICAgICAgICAgICAgICAgIHwgICA2MiArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UG9wdXBNZW51TWFjLm1tICAgICAgICAgICAgICAgfCAgIDIyICstCiBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gICAgICAgICB8ICAgMTggKy0KIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwICAgICAgICAgICAgICAgIHwgICAyNSArLQog
V2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oICAgICAgICAgICAgICAgICAgfCAgIDQ5
ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggICAgICAgICAg
IHwgICAgMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgICAg
ICAgICAgfCAgIDIwICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0Lmgg
ICAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
Y3BwICAgICAgICAgICAgICB8ICAgNjUgKysrLS0tCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uaCAgICAgICAgICAgICAgICB8ICAgOTggKysrKysrKwogV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCAgICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3Bs
YXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJD
b3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcCAgICAgICAgICAgICAgICB8ICAgMjkgKy0K
IFdlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaCAgICAgICAgICAgICAgICAgIHwgICA2
NCArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAgICAgICAg
ICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmggICAg
ICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAg
ICAgICAgICAgICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmggICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcCAgfCAgIDE3ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAgICB8ICAgIDQgKy0KIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCAgICAgICAgICAgICB8ICAgIDggKwogV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsr
CiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgICAgICB8ICAg
MTggKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggICAgICAg
IHwgICAgNSArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcCAgICAgIHwgICAxOSArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCAgICAgICAgfCAgIDExICsKIFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmNwcCAgfCAgIDE4ICsrCiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICB8ICAgIDUgKwogV2ViS2l0L21hYy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgICAgICB8ICAgIDYgKy0KIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAyMSArKy0KIFdl
YktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyAr
KwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCAgICAgICAgfCAg
IDE4ICsrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAg
ICB8ICAgIDUgKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgICAgICB8ICAgMTggKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggICAgICAgIHwgICAgNSArCiBXZWJLaXQvd3gvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcCAgICAgICAgIHwgICAxOCArKwogV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaCAgICAgICAgICAgfCAgICA1ICsKIFdlYktpdDIvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MSArKysKIFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxNiArKwogLi4uL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgIDE3ICsrCiAu
Li4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8ICAgIDQg
KwogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgfCAg
IDU2ICsrKysKIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
aCAgIHwgICA0OCArKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNw
cCAgICAgICAgICB8ICAgNTAgKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmggfCAgIDQ0ICsrKwogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrCiA4NyBmaWxlcyBjaGFuZ2VkLCAyMjAy
IGluc2VydGlvbnMoKyksIDM4MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZs
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVu
dUd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1l
bnVIYWlrdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFy
Y2hQb3B1cE1lbnVIYWlrdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUG9wdXBNZW51TWFjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZWFyY2hQb3B1cE1lbnVNYWMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vcXQvUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3Bs
YXRmb3JtL3d4L1BvcHVwTWVudVd4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRm
b3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MzhkNTBhLi4wNTI5OGJiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4MiBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAg
ICAgICBDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGhhdmUgYmVlbiBtYWRl
IHB1cmUgdmlydHVhbC4gCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgICogcGxhdGZvcm0v
U2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6On5T
ZWFyY2hQb3B1cE1lbnUpOgorCisgICAgICAgIENsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJl
bmRlclRleHlDb250cm9sU2luZ2xlTGluZSBoYXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKKyAgICAg
ICAgdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWVudUxpc3Q6OmFkanVzdElubmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoaWRlUG9wdXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgor
CisgICAgICAgIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IHdlcmUgbWFkZSByZXNwb25zaWJsZSBm
b3IgcHJvdmlkaW5nIGluc3RhbmNlcyBvZiBjbGFzc2VzIAorICAgICAgICBQb3B1cE1lbnUgYW5k
IFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eVBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlT
ZWFyY2hQb3B1cE1lbnU6OnBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNlYXJj
aFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
U2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RW1wdHlTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6Cisg
ICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWU6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorCisgICAgICAgIE9yaWdpbmFsIGNvbnRlbnRzIG9mIGZpbGVzIFBv
cHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaCBoYXZlIGJlZW4gc3BsaXRlZCAKKyAgICAg
ICAgaW4gc2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFgu
aCBhbmQgU2VhcmNoUG9wdXBNZW51WFhYLmgpLgorICAgICAgICBFYWNoIG9mIG5ldyB0aGUgZmls
ZXMgY29udGFpbiB0aGUgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1l
bnUgb3IgCisgICAgICAgIFNlYXJjaFBvcHVwTWVudSBhbmQgYXJlIHNwZWNpZmljIGZvciB0aGUg
Y29ycmVzcG9uZGluZyBwbGF0Zm9ybS4KKworICAgICAgICBicmV3OgorCisgICAgICAgICogcGxh
dGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUJyZXc6OlBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6
flBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29u
bmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Jy
ZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJy
ZXc6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVj
ZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6U2Vh
cmNoUG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3
OjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFk
ZGVkLgorCisgICAgICAgIGNocm9taXVtOgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudUNocm9taXVtOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNo
cm9taXVtOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVD
aHJvbWl1bTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVt
OjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVDaHJvbWl1bTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dUNocm9taXVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNo
cm9taXVtOjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51Q2hyb21pdW06OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaDogQWRkZWQuCisKKyAgICAgICAgZWZs
OgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6On5Qb3B1cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6aGlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudUVmbDo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9w
dXBNZW51RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6bG9hZFJlY2Vu
dFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oOiBBZGRlZC4K
KworICAgICAgICBndGs6CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUd0azo6UG9wdXBNZW51R3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6flBv
cHVwTWVudUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0
azo6bWVudUl0ZW1BY3RpdmF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpt
ZW51VW5tYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51UG9zaXRp
b25GdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1lbnVSZW1vdmVJ
dGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmg6IEFkZGVkLgorCisgICAgICAgIGhhaWt1OgorCisgICAgICAgICogcGxhdGZv
cm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFpa3VQb3B1
cDo6SGFpa3VQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpIYWlrdVBvcHVwOjp+SGFpa3VQb3B1
cCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UpOgor
ICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6On5Qb3B1cE1lbnVIYWlrdSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVIYWlrdTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5lY3RD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmNsaWVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OlNlYXJjaFBvcHVwTWVudUhhaWt1KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpzYXZlUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6ZW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6cG9wdXBNZW51KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oOiBBZGRlZC4KKwor
ICAgICAgICBtYWM6CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bv
cHVwTWVudU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6ZGlz
Y29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OmNsaWVudCk6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudU1hYzo6UG9wdXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudU1hYzo6flBvcHVwTWVudU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OnVwZGF0
ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZWFyY2hQb3B1
cE1lbnVNYWMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6U2VhcmNoUG9w
dXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6cG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6ZW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OmxvYWRSZWNlbnRTZWFyY2hl
cyk6CisKKyAgICAgICAgcXQ6CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVR
dDo6UG9wdXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6On5Qb3B1cE1l
bnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVRdDo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnVRdDo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgd2luOgorCisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbik6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aGlk
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5k
U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnZpc2libGVJdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Omxpc3RJbmRleEF0UG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpmb2N1c2VkSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpmb2N1c0ZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Zm9jdXNMYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZG93bik6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6aW52YWxpZGF0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2lu
OjpjbGllbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aW5jcmVtZW50
V2hlZWxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVs
RGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxUb1JldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwZGF0ZUZyb21FbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51V2luOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpQb3B1cE1lbnVXbmRQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdp
bjo6d25kUHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Y2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6aXRlbUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Ondp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpwb3B1cEhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldFdhc0NsaWNrZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3YXNDbGlja2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6c2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
d2hlZWxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhckNh
cHR1cmluZ01vdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1l
bnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpTZWFyY2hQ
b3B1cE1lbnVXaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpwb3B1
cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6c2F2ZVJlY2VudFNlYXJjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmg6IEFkZGVk
LgorCisgICAgICAgIHdrOgorCisgICAgICAgICogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVd4Ojp+UG9wdXBNZW51V3gpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V3g6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1T
ZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6aGlkZSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3d4L1BvcHVwTWVudVd4Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OlNlYXJjaFBvcHVwTWVu
dVd4KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjpzYXZlUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OmxvYWRSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6ZW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6cG9wdXBNZW51KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oOiBBZGRlZC4KKworCisKIDIwMTAt
MDctMjcgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNmZlZmM4Yi4uMTg4NWM5MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCkBAIC0yNDYwLDYgKzI0NjAsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1
cE1lbnVHdGsuY3BwIFwKKwlXZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxi
YXJHdGsuY3BwIFwKQEAgLTI0NjgsNiArMjQ2OSw3IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBc
CiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nl
YXJjaFBvcHVwTWVudUd0ay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVw
TWVudUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRUaW1lckd0ay5jcHAgXAogCVdlYkNvcmUvcGxh
dGZvcm0vZ3RrL1NvdW5kR3RrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkZmJkMTUwLi5kNjY3OWNiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTI1MCw2ICsyNTAsNyBAQCBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTI3Y2hlY2tJ
bnRlZ3JpdHlCZWZvcmVPcGVuaW5nRXYKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNG9wZW5F
UktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U1Y2xvc2VFdgogX19aTjdX
ZWJDb3JlMTJJY29uRGF0YWJhc2U5c2V0Q2xpZW50RVBOU18xOEljb25EYXRhYmFzZUNsaWVudEUK
K19fWk43V2ViQ29yZTEyUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19a
TjdXZWJDb3JlMTJQcmludENvbnRleHQxMnBhZ2VQcm9wZXJ0eUVQTlNfNUZyYW1lRVBLY2kKIF9f
Wk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTNudW1iZXJPZlBhZ2VzRVBOU181RnJhbWVFUktOU185
RmxvYXRTaXplRQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQxNmlzUGFnZUJveFZpc2libGVF
UE5TXzVGcmFtZUVpCkBAIC00MDgsNiArNDA5LDcgQEAgX19aTjdXZWJDb3JlMTduYW1lRm9yQ3Vy
c29yVHlwZUVOU182Q3Vyc29yNFR5cGVFCiBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxl
RVBLY1JpCiBfX1pON1dlYkNvcmUxOGRlcHJlY2F0ZWRQYXJzZVVSTEVSS05TXzZTdHJpbmdFCiBf
X1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQor
X19aTjdXZWJDb3JlMThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRF
CiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxNnJlc3VtZUFuaW1hdGlvbnNFUE5T
XzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE3c3VzcGVuZEFu
aW1hdGlvbnNFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxl
cjIwcGF1c2VBbmltYXRpb25BdFRpbWVFUE5TXzEyUmVuZGVyT2JqZWN0RVJLTlNfNlN0cmluZ0Vk
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGFhZmIyMjIuLjZjYjVmY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMTIyLDYgKzIxMjIsNyBAQAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1NYWMubW0nLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4u
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVu
dUNocm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NoYXJlZFRpbWVy
Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9Tb3VuZENocm9t
aXVtUG9zaXguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9Tb3VuZENocm9t
aXVtV2luLmNwcCcsCkBAIC0yNjE0LDYgKzI2MTUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1Nb3VzZUV2ZW50TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUGxhdGZvcm1T
Y3JlZW5NYWMubW0nLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbScsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0nLApAQCAtMjYyMSw2ICsyNjIzLDcgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbScsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0vbWFj
L1NlYXJjaFBvcHVwTWVudU1hYy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2VhcmNo
UG9wdXBNZW51TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVy
TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJNYWMubW0nLApA
QCAtMjc3MSw2ICsyNzc0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9QbGF0Zm9ybU1v
dXNlRXZlbnRRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVu
UXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3F0L1FXZWJQb3B1cC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1FXZWJQb3B1
cC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcCcsCkBAIC0y
NzgxLDYgKzI3ODUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1Njcm9sbGJhclRoZW1l
UXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TY3JvbGxiYXJUaGVtZVF0LmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vcXQvU2hhcmVkQnVmZmVyUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9T
aGFyZWRUaW1lclF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU291bmRRdC5jcHAn
LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
aW5kZXggMDc1MTgwOS4uYzBkY2QxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xNzA1LDYgKzE3MDUsNyBAQCBIRUFERVJTICs9
IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmggXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaCBcCisgICAgcGxhdGZvcm0vUG9wdXBNZW51LmggXAogICAgIHBsYXRmb3JtL3F0L0Ns
aXBib2FyZFF0LmggXAogICAgIHBsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmggXAogICAgIHBs
YXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIFwKQEAgLTE3MTQsNiArMTcxNSw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1Njcm9sbGJhci5oIFwKICAgICBwbGF0Zm9ybS9TY3Jv
bGxiYXJUaGVtZUNvbXBvc2l0ZS5oIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3LmggXAorICAg
IHBsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oIFwKICAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIu
aCBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggXAogICAgIHBsYXRmb3JtL3Nx
bC9TUUxpdGVGaWxlU3lzdGVtLmggXApAQCAtMzI4NSw2ICszMjg3LDggQEAgSEVBREVSUyArPSBc
CiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oIFwK
ICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUG9wdXBNZW51LmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmggXAogICAgIC4uL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmggXApAQCAtMzM1Nyw2ICszMzYxLDggQEAgU09VUkNFUyArPSBcCiAg
ICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJCYWNrRm9yd2FyZENvbnRyb2xsZXJDbGllbnQuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCisgICAgLi4vV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXAog
ICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5j
cHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYS5jcHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4OWMwN2Q1
Li4wMWVkOGNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIyNDE1
LDggKzIyNDE1LDggQEAKIAkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTZWN1
cml0eU9yaWdpbi5oIg0KIAkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU2V0dGluZ3MuY3BwIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KQEAgLTIzNzIwLDYgKzIzNzIwLDEwIEBACiAJCQkJCT4NCiAJCQkJ
PC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5c
UG9wdXBNZW51V2luLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIg0KIAkJ
CQkJPg0KIAkJCQk8L0ZpbGU+DQpAQCAtMjM3NDAsNiArMjM3NDQsMTAgQEAKIAkJCQkJPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdp
blxTZWFyY2hQb3B1cE1lbnVXaW4uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxTaGFyZWRCdWZmZXJXaW4uY3BwIg0K
IAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5NDVhYTVkLi4yMDNkZmU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDIsNyArNDIsNyBAQAogCQkwNjVBRDRGNTBCMEMyRURB
MDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEYyMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0
TWVudUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA2NUFENEY2MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0
RjMwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAgKi87IH07CiAJ
CTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEY0MEIwQzJF
REEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAg
LyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi87IH07CisJCTA2
NjhFMThCMEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQ
b3B1cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNjY4RTE5MDBBREQ5NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAw
NDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAqLzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4
Q0M0IC8qIEZpbGVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNjZDNzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjZDNzcyRDBB
QjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmls
ZUNob29zZXJNYWMubW0gKi87IH07CkBAIC0zNTgyLDEyICszNTgyLDEyIEBACiAJCUFCNENCNEVC
MEI4QkRBM0QwMDlGNDBCMCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjRDQjRFQTBCOEJEQTNEMDA5
RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oICovOyB9OwogCQlBQjY3RDFBODA5
N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8q
IFJlbmRlclRleHRDb250cm9sLmNwcCAqLzsgfTsKIAkJQUI2N0QxQTkwOTdGM0FFMzAwRjkzOTJF
IC8qIFJlbmRlclRleHRDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQjY3RDFBNzA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRy
b2wuaCAqLzsgfTsKLQkJQUI3MTcwODkwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVu
dS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcw
ODgwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oICovOyB9OworCQlBQjcxNzA4
OTBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyog
U2VhcmNoUG9wdXBNZW51LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQUI3MTcwQTAwQjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3
MDlGMEIzMTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCUFC
QUYyMjA4MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkFGMjIwNzBDMDNCMUM3MDBCMEJDRjAgLyog
Q2hyb21lTWFjLm1tICovOyB9OwogCQlBQkI1NDE5RTBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVy
TGlzdEJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBQkI1NDE5QzBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgKi87IH07CiAJ
CUFCQjU0MTlGMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5RDBBQ0RERkU0MDAyODIw
RUIgLyogUmVuZGVyTGlzdEJveC5oICovOyB9OwotCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUg
LyogUG9wdXBNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQkMxMjg3NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50Lmgg
Ki87IH07CisJCUFCQzEyODc3MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIz
M0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBQkRERkU3OTBBNUM2RTcwMDBBM0UxMUQgLyog
UmVuZGVyTWVudUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUJEREZFNzMwQTVDNkU2RjAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmNwcCAq
LzsgfTsKIAkJQUJEREZFN0EwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2
RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCAqLzsgfTsKIAkJQUJGRTdFMTIwRDMyRkFG
NjAwNjZGNEQyIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBN
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi87IH07CkBAIC01MDA4LDYgKzUwMDgsOCBAQAogCQlE
MjNDQTU1RDBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEw
OEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEw
OEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNl
cHRpb24uY3BwICovOyB9OwogCQlEMjNDQTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNl
cHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQy
M0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzlE
MDA2RDExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyog
UG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJRDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwOUMx
MUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0
QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91
dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuaCAqLzsgfTsKQEAgLTEwNjc2LDYgKzEwNjc4LDggQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAw
NTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFu
Z2VFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhj
ZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzOUQwMDZDMTFGOEUzMDgw
MDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzOUQwMDlD
MTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4
RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMjIyMiwxMCArMTIyMjYsMTIgQEAKIAkJCQk0QjI3MDk4MTBBRjJFNUUw
MDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLywKIAkJCQk5MzVDNDc2RjA5QUM0RDczMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50TWFjLm1tICovLAogCQkJCUJDOTREMTA3MEMyNzRG
ODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVlbk1hYy5tbSAqLywKKwkJCQlEMzlEMDA2QzExRjhF
MzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0MDAw
NDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2RUE5
NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLywKIAkJCQk0NDdENjkwMTBGQTYyNjgxMDAx
NUNDQjEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8sCiAJCQkJNDQ3RDY5MDIwRkE2
MjY4MTAwMTVDQ0IxIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbSAqLywKKwkJCQlEMzlE
MDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJMUNF
MjRGOTYwRDdDQUYwRTAwN0UwNEMyIC8qIFNjaGVkdWxlUGFpck1hYy5tbSAqLywKIAkJCQlCQ0FB
OTBDMjBBN0VCQTYwMDA4QjEyMjkgLyogU2Nyb2xsYmFyLmNwcCAqLywKIAkJCQlCQzhCODUzQzBF
N0M3RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCAqLywKQEAgLTE5ODQ3LDYgKzE5
ODUzLDggQEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVk
aXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpv
b21Nb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyog
UG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQx
RjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKaW5kZXggOTkzOGJiYy4uZTI3MWZhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEsNiAr
MSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMgU2VpZGVsIChlcmljQHdlYmtp
dC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzksNyArNDAsOSBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50
LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgor
I2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogCiAvKgogIFRoaXMgZmlsZSBob2xkcyBlbXB0
eSBDbGllbnQgc3R1YnMgZm9yIHVzZSBieSBXZWJDb3JlLgpAQCAtNTYsNiArNTksMjUgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFbXB0eVBvcHVwTWVudSA6IHB1YmxpYyBQb3B1
cE1lbnUgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBG
cmFtZVZpZXcqLCBpbnQpIHt9CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKSB7fQorICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIHt9CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5l
Y3RDbGllbnQoKSB7fQorfTsKKworY2xhc3MgRW1wdHlTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMg
U2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBN
ZW51KCkgeyByZXR1cm4gJm1fcG9wdXA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jikge30KKyAg
ICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JnMpIHt9CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSB7IHJldHVybiBm
YWxzZTsgfQorCitwcml2YXRlOgorICAgIEVtcHR5UG9wdXBNZW51IG1fcG9wdXA7Cit9OworCiBj
bGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogcHVibGljOgog
ICAgIHZpcnR1YWwgfkVtcHR5Q2hyb21lQ2xpZW50KCkgeyB9CkBAIC0xMDgsNiArMTMwLDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxz
ZTsgfQogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IEVtcHR5UG9wdXBNZW51KCkpOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVNlYXJjaFBvcHVwTWVudSgpKTsgfQorCiAgICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgeyB9CiAKICAgICB2
aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApp
bmRleCAwYzY2OTI1Li45ZmVlYTFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC00ODIsNSArNDgyLDIwIEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpwYWludEN1c3RvbVNjcm9sbENv
cm5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorYm9vbCBDaHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGll
bnQtPmNyZWF0ZVBvcHVwTWVudShjbGllbnQpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUo
Y2xpZW50KTsKK30KKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNTM3NDY4YS4u
MzBlZGYyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsNiArMjUsOCBAQAogI2luY2x1ZGUgIkZp
bGVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJIb3N0
V2luZG93LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKQEAgLTQ0LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFJl
Y3Q7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOworICAgIGNsYXNzIFBvcHVwTWVu
dUNsaWVudDsKICAgICBjbGFzcyBTdHJpbmc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAg
ICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOwpAQCAtMTQ0LDYgKzE0OCwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0
aW9uUHJlc2VudGVyKCkgY29uc3Q7IAogI2VuZGlmCiAKKyAgICAgICAgYm9vbCBzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgICAgICBQYXNzUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICBQYXNz
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0OworCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGFnZSogbV9wYWdlOwogICAg
ICAgICBDaHJvbWVDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDc5NWIyNWMu
LjA0YWY3N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiw3ICsyNywxMCBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJRdWly
a3MuaCIKICNpbmNsdWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTMs
NiArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBj
bGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUG9wdXBNZW51Q2xpZW50Owog
ICAgIGNsYXNzIFN0cmluZzsKICAgICBjbGFzcyBXaWRnZXQ7CiAKQEAgLTI1Miw2ICsyNTcsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNaW5pbWl6ZWQo
KSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgPSAwOworICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29u
c3QgPSAwOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVh
dGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOworCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
UG9wdXBNZW51LmgKaW5kZXggZDlkMjc0MC4uOGViYmEwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9Qb3B1cE1lbnUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMSwxODAgKzIxLDIyIEBACiAjaWZuZGVmIFBvcHVwTWVudV9oCiAjZGVmaW5lIFBvcHVwTWVu
dV9oCiAKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50Lmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCi0jaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpZmRl
ZiBfX09CSkNfXwotQGNsYXNzIE5TUG9wVXBCdXR0b25DZWxsOwotI2Vsc2UKLWNsYXNzIE5TUG9w
VXBCdXR0b25DZWxsOwotI2VuZGlmCi0jZWxpZiBQTEFURk9STShXSU4pCi0jaW5jbHVkZSAiU2Ny
b2xsYmFyLmgiCi0jaW5jbHVkZSAiU2Nyb2xsYmFyQ2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgotdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwotdHlwZWRlZiBzdHJ1Y3QgSERD
X18qIEhEQzsKLXR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsKLSNlbGlmIFBMQVRG
T1JNKFFUKQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUXRBYnN0cmFjdFdlYlBvcHVwOwot
fQotI2VsaWYgUExBVEZPUk0oR1RLKQotdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsK
LXR5cGVkZWYgc3RydWN0IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKLXR5cGVkZWYgc3RydWN0
IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OwotI2luY2x1ZGUgIkdSZWZQdHJHdGsuaCIKLSNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPGdsaWIuaD4KLSNlbGlmIFBMQVRGT1JNKFdYKQot
I2lmZGVmIF9fV1hNU1dfXwotI2luY2x1ZGUgPHd4L21zdy93aW51bmRlZi5oPgotI2VuZGlmCi1j
bGFzcyB3eE1lbnU7Ci0jaW5jbHVkZSA8d3gvZGVmcy5oPgotI2luY2x1ZGUgPHd4L2V2ZW50Lmg+
Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgi
Ci0jZWxpZiBQTEFURk9STShIQUlLVSkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBvcHVw
TWVudUhhaWt1OwotfQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJh
bWVWaWV3OwotY2xhc3MgU2Nyb2xsYmFyOworY2xhc3MgSW50UmVjdDsKIAotY2xhc3MgUG9wdXBN
ZW51IDogcHVibGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PgotI2lmIFBMQVRGT1JNKFdJTikKLSAg
ICAgICAgICAgICAgICAsIHByaXZhdGUgU2Nyb2xsYmFyQ2xpZW50Ci0jZW5kaWYKLSNpZiBQTEFU
Rk9STShXWCkKLSAgICAgICAgICAgICAgICAsIHB1YmxpYyB3eEV2dEhhbmRsZXIKLSNlbmRpZgot
eworY2xhc3MgUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnUoY2xpZW50KSk7IH0K
LSAgICB+UG9wdXBNZW51KCk7Ci0gICAgCi0gICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBt
X3BvcHVwQ2xpZW50ID0gMDsgfQotCi0gICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpOwotICAgIHZvaWQgaGlkZSgpOwotCi0gICAgdm9pZCB1cGRhdGVG
cm9tRWxlbWVudCgpOwotICAgIAotICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQotCi0gICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBTY3JvbGxiYXIq
IHNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9Ci0KLSAgICBz
dGF0aWMgTFBDVFNUUiBwb3B1cENsYXNzTmFtZSgpOwotCi0gICAgYm9vbCB1cCh1bnNpZ25lZCBs
aW5lcyA9IDEpOwotICAgIGJvb2wgZG93bih1bnNpZ25lZCBsaW5lcyA9IDEpOwotCi0gICAgaW50
IGl0ZW1IZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1IZWlnaHQ7IH0KLSAgICBjb25zdCBJ
bnRSZWN0JiB3aW5kb3dSZWN0KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dSZWN0OyB9Ci0gICAg
SW50UmVjdCBjbGllbnRSZWN0KCkgY29uc3Q7Ci0KLSAgICBpbnQgdmlzaWJsZUl0ZW1zKCkgY29u
c3Q7Ci0KLSAgICBpbnQgbGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0Owot
Ci0gICAgYm9vbCBzZXRGb2N1c2VkSW5kZXgoaW50IGluZGV4LCBib29sIGhvdFRyYWNraW5nID0g
ZmFsc2UpOwotICAgIGludCBmb2N1c2VkSW5kZXgoKSBjb25zdDsKLSAgICB2b2lkIGZvY3VzRmly
c3QoKTsKLSAgICB2b2lkIGZvY3VzTGFzdCgpOwotCi0gICAgdm9pZCBwYWludChjb25zdCBJbnRS
ZWN0JiBkYW1hZ2VSZWN0LCBIREMgPSAwKTsKLQotICAgIEhXTkQgcG9wdXBIYW5kbGUoKSBjb25z
dCB7IHJldHVybiBtX3BvcHVwOyB9Ci0KLSAgICB2b2lkIHNldFdhc0NsaWNrZWQoYm9vbCBiID0g
dHJ1ZSkgeyBtX3dhc0NsaWNrZWQgPSBiOyB9Ci0gICAgYm9vbCB3YXNDbGlja2VkKCkgY29uc3Qg
eyByZXR1cm4gbV93YXNDbGlja2VkOyB9Ci0KLSAgICB2b2lkIHNldFNjcm9sbE9mZnNldChpbnQg
b2Zmc2V0KSB7IG1fc2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OyB9Ci0gICAgaW50IHNjcm9sbE9mZnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0OyB9Ci0KLSAgICBib29sIHNjcm9sbFRv
UmV2ZWFsU2VsZWN0aW9uKCk7Ci0KLSAgICB2b2lkIGluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRl
bHRhKTsKLSAgICB2b2lkIHJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKTsKLSAgICBpbnQgd2hl
ZWxEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxEZWx0YTsgfQotCi0gICAgYm9vbCBzY3Jv
bGxiYXJDYXB0dXJpbmdNb3VzZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyQ2FwdHVyaW5n
TW91c2U7IH0KLSAgICB2b2lkIHNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKGJvb2wgYikgeyBt
X3Njcm9sbGJhckNhcHR1cmluZ01vdXNlID0gYjsgfQotI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAg
ICBQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7Ci0gICAgCi1wcml2YXRlOgotICAgIFBvcHVw
TWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKLSAgICAKLSNpZiBQTEFURk9STShNQUMpCi0gICAg
dm9pZCBjbGVhcigpOwotICAgIHZvaWQgcG9wdWxhdGUoKTsKLQotICAgIFJldGFpblB0cjxOU1Bv
cFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIFF0QWJzdHJh
Y3RXZWJQb3B1cCogbV9wb3B1cDsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICAvLyBTY3JvbGxC
YXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKFNjcm9sbGJhciopOwotICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqLCBjb25zdCBJ
bnRSZWN0Jik7Ci0gICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJDb3JuZXJQcmVzZW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KLQotICAgIHZvaWQgY2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0
IEludFJlY3QmLCBGcmFtZVZpZXcqKTsKLSAgICB2b2lkIGludmFsaWRhdGVJdGVtKGludCBpbmRl
eCk7Ci0KLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBQb3B1cE1lbnVXbmRQcm9jKEhXTkQs
IFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLSAgICBMUkVTVUxUIHduZFByb2MoSFdORCBoV25kLCBV
SU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOwotICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyQ2xhc3MoKTsKLQotICAgIFJlZlB0cjxTY3JvbGxiYXI+IG1fc2Nyb2xsYmFy
OwotICAgIEhXTkQgbV9wb3B1cDsKLSAgICBIREMgbV9EQzsKLSAgICBIQklUTUFQIG1fYm1wOwot
ICAgIGJvb2wgbV93YXNDbGlja2VkOwotICAgIEludFJlY3QgbV93aW5kb3dSZWN0OwotICAgIGlu
dCBtX2l0ZW1IZWlnaHQ7Ci0gICAgaW50IG1fc2Nyb2xsT2Zmc2V0OwotICAgIGludCBtX3doZWVs
RGVsdGE7Ci0gICAgaW50IG1fZm9jdXNlZEluZGV4OwotICAgIGJvb2wgbV9zY3JvbGxiYXJDYXB0
dXJpbmdNb3VzZTsKLSAgICBib29sIG1fc2hvd1BvcHVwOwotI2VsaWYgUExBVEZPUk0oR1RLKQot
ICAgIEludFBvaW50IG1fbWVudVBvc2l0aW9uOwotICAgIEdSZWZQdHI8R3RrTWVudT4gbV9wb3B1
cDsKLSAgICBIYXNoTWFwPEd0a1dpZGdldCosIGludD4gbV9pbmRleE1hcDsKLSAgICBzdGF0aWMg
dm9pZCBtZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9wdXBNZW51Kik7Ci0g
ICAgc3RhdGljIHZvaWQgbWVudVVubWFwcGVkKEd0a1dpZGdldCosIFBvcHVwTWVudSopOwotICAg
IHN0YXRpYyB2b2lkIG1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01lbnUqLCBnaW50KiwgZ2ludCos
IGdib29sZWFuKiwgUG9wdXBNZW51Kik7Ci0gICAgc3RhdGljIHZvaWQgbWVudVJlbW92ZUl0ZW0o
R3RrV2lkZ2V0KiwgUG9wdXBNZW51Kik7Ci0jZWxpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JN
KEJSRVdNUCkKLSAgICBGcmFtZVZpZXcqIG1fdmlldzsKLSNlbGlmIFBMQVRGT1JNKFdYKQotICAg
IHd4TWVudSogbV9tZW51OwotICAgIHZvaWQgT25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2
ZW50Jik7Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBQb3B1cE1lbnVQcml2YXRlIHA7
Ci0jZWxpZiBQTEFURk9STShIQUlLVSkKLSAgICBQb3B1cE1lbnVIYWlrdSogbV9tZW51OwotI2Vu
ZGlmCi0KKyAgICB2aXJ0dWFsIH5Qb3B1cE1lbnUoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBzaG93
KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaGlkZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSA9IDA7CiB9OwogCiB9CiAK
LSNlbmRpZgorI2VuZGlmIC8vIFBvcHVwTWVudV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL1NlYXJjaFBvcHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUu
aAppbmRleCA0Mjg1Y2RmLi5kMWVjZDBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Nl
YXJjaFBvcHVwTWVudS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIzLDI0ICsyMywyMSBAQAogCiAjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF0b21pY1N0cmluZzsKIAotY2xhc3MgU2VhcmNoUG9wdXBN
ZW51IDogcHVibGljIFBvcHVwTWVudSB7CitjbGFzcyBTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMg
UmVmQ291bnRlZDxTZWFyY2hQb3B1cE1lbnU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsgfQotCi0gICAgdm9p
ZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLQot
ICAgIGJvb2wgZW5hYmxlZCgpOwotICAgIAotcHJpdmF0ZToKLSAgICBTZWFyY2hQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50Kik7CisgICAgdmlydHVhbCB+U2VhcmNoUG9wdXBNZW51KCkge30KKyAg
ICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKSA9IDA7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSA9IDA7CiB9OwogCiB9CiAKLSNl
bmRpZgorI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9w
dXBNZW51QnJldy5jcHAKaW5kZXggZWIwM2M2Ni4uMjRiN2I4OCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
YnJldy9Qb3B1cE1lbnVCcmV3LmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29tcGFu
eSAxMDAsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDcgKzI0
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSAiUG9wdXBNZW51QnJldy5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50QnJldy5oIgpAQCAtMzIsMjAgKzMzLDI1IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBtZW51
TGlzdCkKK1BvcHVwTWVudUJyZXc6OlBvcHVwTWVudUJyZXcoUG9wdXBNZW51Q2xpZW50KiBtZW51
TGlzdCkKICAgICA6IG1fcG9wdXBDbGllbnQobWVudUxpc3QpCiAgICAgLCBtX3ZpZXcoMCkKIHsK
IH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUJyZXc6On5Qb3B1cE1lbnVC
cmV3KCkKIHsKICAgICAvLyBUZWxsIGNsaWVudCB0byBkZXN0cm95IGRhdGEgcmVsYXRlZCB0byB0
aGlzIHBvcHVwIHNpbmNlIHRoaXMgb2JqZWN0IGlzCiAgICAgLy8gZ29pbmcgYXdheS4KICAgICBo
aWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZy
YW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVCcmV3OjpkaXNjb25uZWN0
Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVC
cmV3OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4
KQogewogICAgIEFTU0VSVChtX3BvcHVwQ2xpZW50KTsKICAgICBDaHJvbWVDbGllbnRCcmV3KiBj
aHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRCcmV3Kj4odmlldy0+ZnJhbWUo
KS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAtNTUsNyArNjEsNyBAQCB2b2lkIFBv
cHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBp
bmRleCkKICAgICBjaHJvbWVDbGllbnQtPmNyZWF0ZVNlbGVjdFBvcHVwKG1fcG9wdXBDbGllbnQs
IGluZGV4LCByZWN0KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1l
bnVCcmV3OjpoaWRlKCkKIHsKICAgICBBU1NFUlQobV92aWV3KTsKICAgICBDaHJvbWVDbGllbnRC
cmV3KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRCcmV3Kj4obV92aWV3
LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC02NCwxNCArNzAsMTQg
QEAgdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogICAgIGNocm9tZUNsaWVudC0+ZGVzdHJveVNlbGVj
dFBvcHVwKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lk
IFBvcHVwTWVudUJyZXc6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0
VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVw
TWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiB0cnVl
OwotfQorLy8gYm9vbCBQb3B1cE1lbnVCcmV3OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCisvLyB7CisvLyAgICAgcmV0dXJuIHRydWU7CisvLyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjJjODhmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWZuZGVmIFBvcHVwTWVudUJyZXdfaAorI2RlZmluZSBQb3B1cE1lbnVCcmV3X2gKKwor
I2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQ
b3B1cE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVW
aWV3OworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBQb3B1cE1lbnVCcmV3IDogcHVibGljIFBv
cHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51QnJldyhQb3B1cE1lbnVDbGllbnQqKTsK
KyAgICB+UG9wdXBNZW51QnJldygpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50
UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9w
b3B1cENsaWVudDsKKyAgICBGcmFtZVZpZXcqIG1fdmlldzsKKworICAgIFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCit9OworCit9CisK
KyNlbmRpZiAvLyBQb3B1cE1lbnVCcmV3X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
YnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFy
Y2hQb3B1cE1lbnVCcmV3LmNwcAppbmRleCA3ODBjN2U1Li5jMjJjYjc4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBDb21wYW55IDEwMCwgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjQsMjkgKzI1LDM0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUJyZXcuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAvLyBTYXZlIHRoZSBwYXN0IHNlYXJjaGVzIHN0b3JlZCBpbiAn
c2VhcmNoSXRlbXMnIHRvIGEgZGF0YWJhc2UgYXNzb2NpYXRlZCB3aXRoICduYW1lJwotdm9pZCBT
ZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBN
ZW51QnJldzo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogfQogCiAvLyBMb2FkIHBhc3Qgc2Vh
cmNoZXMgYXNzb2NpYXRlZCB3aXRoICduYW1lJyBmcm9tIHRoZSBkYXRhYmFzZSB0byAnc2VhcmNo
SXRlbXMnCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFy
Y2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiB9CiAKIC8vIENyZWF0ZSBhIHNl
YXJjaCBwb3B1cCBtZW51IC0gbm90IHN1cmUgd2hhdCBlbHNlIHdlIGhhdmUgdG8gZG8gaGVyZQot
U2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
Ci0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51QnJldzo6U2VhcmNoUG9w
dXBNZW51QnJldyhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50
KQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBv
cHVwTWVudUJyZXc6OmVuYWJsZWQoKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUG9wdXBN
ZW51KiBTZWFyY2hQb3B1cE1lbnVCcmV3Ojpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9w
b3B1cDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJl
dy9TZWFyY2hQb3B1cE1lbnVCcmV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMThlYTEwMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFy
Y2hQb3B1cE1lbnVCcmV3LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIFNlYXJjaFBvcHVwTWVudUJyZXdfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVCcmV3
X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUJyZXcuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVCcmV3
IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51
QnJldyhQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1l
bnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwor
Citwcml2YXRlOgorICAgIFBvcHVwTWVudUJyZXcgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlm
IC8vIFNlYXJjaFBvcHVwTWVudUJyZXdfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA0NzAxYTc1Li45MDUxMjA4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTQ4LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxF
dmVudC5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3Iu
aCIKQEAgLTEzMjEsMjAgKzEzMjEsMjAgQEAgYm9vbCBQb3B1cExpc3RCb3g6OmlzUG9pbnRJbkJv
dW5kcyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB9CiAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
LS8vIFBvcHVwTWVudSBpbXBsZW1lbnRhdGlvbgorLy8gUG9wdXBNZW51Q2hyb21pdW0gaW1wbGVt
ZW50YXRpb24KIC8vIAogLy8gTm90ZTogeW91IGNhbm5vdCBhZGQgbWV0aG9kcyB0byB0aGlzIGNs
YXNzLCBzaW5jZSBpdCBpcyBkZWZpbmVkIGFib3ZlIHRoZSAKIC8vICAgICAgIHBvcnRhYmlsaXR5
IGxheWVyLiBUbyBhY2Nlc3MgbWV0aG9kcyBhbmQgcHJvcGVydGllcyBvbiB0aGUKIC8vICAgICAg
IHBvcHVwIHdpZGdldHMsIHVzZSB8cG9wdXBXaW5kb3d8IGFib3ZlLiAKIAotUG9wdXBNZW51OjpQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIAorUG9wdXBNZW51Q2hyb21pdW06OlBv
cHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENs
aWVudChjbGllbnQpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVD
aHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKCkKIHsKLSAgICAvLyBXaGVuIHRoZSBQb3B1cE1l
bnUgaXMgZGVzdHJveWVkLCB0aGUgY2xpZW50IGNvdWxkIGFscmVhZHkgaGF2ZSBiZWVuCisgICAg
Ly8gV2hlbiB0aGUgUG9wdXBNZW51Q2hyb21pdW0gaXMgZGVzdHJveWVkLCB0aGUgY2xpZW50IGNv
dWxkIGFscmVhZHkgaGF2ZSBiZWVuCiAgICAgLy8gZGVsZXRlZC4KICAgICBpZiAocC5wb3B1cCkK
ICAgICAgICAgcC5wb3B1cC0+bGlzdEJveCgpLT5kaXNjb25uZWN0Q2xpZW50KCk7CkBAIC0xMzQ1
LDcgKzEzNDUsNyBAQCBQb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQogLy8gdG8gZGlzcGxheSwgaGFu
ZGxlIHRoZSBpbnB1dCB0cmFja2luZyBhbmQgbWVudSBpdGVtIHNlbGVjdGlvbiBmb3IgdGhlIHBv
cHVwLgogLy8gV2luZG93cyBhbmQgTGludXggQ2hyb21pdW0gbGV0IG91ciBXZWJLaXQgcG9ydCBo
YW5kbGUgdGhlIGRpc3BsYXksIHdoaWxlCiAvLyBhbm90aGVyIHByb2Nlc3MgbWFuYWdlcyB0aGUg
cG9wdXAgd2luZG93IGFuZCBpbnB1dCBoYW5kbGluZy4KLXZvaWQgUG9wdXBNZW51OjpzaG93KGNv
bnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVD
aHJvbWl1bTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkK
IHsKICAgICBpZiAoIXAucG9wdXApCiAgICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6
Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENvbnRhaW5lcjo6U2VsZWN0LCBkcm9wRG93blNldHRpbmdz
KTsKQEAgLTEzNTYsMjAgKzEzNTYsMjEgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50
UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAjZW5kaWYKIH0KIAotdm9pZCBQb3B1
cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6aGlkZSgpCiB7CiAgICAgaWYg
KHAucG9wdXApCiAgICAgICAgIHAucG9wdXAtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06OnVwZGF0ZUZyb21F
bGVtZW50KCkKIHsKICAgICBwLnBvcHVwLT5saXN0Qm94KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7
CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIAot
eyAKLSAgICByZXR1cm4gZmFsc2U7IAorCit2b2lkIFBvcHVwTWVudUNocm9taXVtOjpkaXNjb25u
ZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1l
bnVDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1
bS5oCmluZGV4IGE4NWNmNDkuLmEwYTA1MjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmgKQEAgLTM2LDYgKzM2LDggQEAKIAogI2luY2x1ZGUgIkZy
YW1lbGVzc1Njcm9sbFZpZXcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51UHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTIwMSw2ICsyMDMsMjMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcG9wdXBP
cGVuOwogfTsKIAorY2xhc3MgUG9wdXBNZW51Q2hyb21pdW0gOiBwdWJsaWMgUG9wdXBNZW51IHsK
K3B1YmxpYzoKKyAgICBQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+
UG9wdXBNZW51Q2hyb21pdW0oKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJl
Y3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRp
c2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9w
dXBDbGllbnQ7CisgICAgUG9wdXBNZW51UHJpdmF0ZSBwOworCisgICAgUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9Cit9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA4OWJmZGRkLi4xOGU4NmM2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVu
dUNocm9taXVtLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgs
IDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICog
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5LDI5ICszMCwzNCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oIgogCiAjaW5jbHVkZSAiQXRvbWljU3Ry
aW5nLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6
U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBt
X3BvcHVwKGNsaWVudCkKIHsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQor
UG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6cG9wdXBNZW51KCkKK3sKKyAgICBy
ZXR1cm4gJm1fcG9wdXA7Cit9CisKK2Jvb2wgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OmVuYWJs
ZWQoKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNh
dmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNl
YXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVt
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhmZjNhZgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0u
aApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9w
dXBNZW51Q2hyb21pdW1faAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bV9oCisKKyNp
bmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUNocm9taXVt
IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9w
dXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAg
dmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQo
KTsKKyAgICAKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2hyb21pdW0gbV9wb3B1cDsKK307CisK
K30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUNocm9taXVtX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9Qb3B1cE1lbnVFZmwuY3BwCmluZGV4IDlkYzY5ODYuLjQwMWYyNGYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMiwyOSArMjMsMzAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51RWZsLmgiCiAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51RWZsOjpQb3B1cE1lbnVFZmwo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAg
ICAsIG1fdmlldygwKQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51
RWZsOjp+UG9wdXBNZW51RWZsKCkKIHsKICAgICAvLyBUZWxsIGNsaWVudCB0byBkZXN0cm95IGRh
dGEgcmVsYXRlZCB0byB0aGlzIHBvcHVwIHNpbmNlIHRoaXMgb2JqZWN0IGlzCiAgICAgLy8gZ29p
bmcgYXdheS4KICAgICBoaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IElu
dFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVF
Zmw6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgp
CiB7CiAgICAgQVNTRVJUKG1fcG9wdXBDbGllbnQpOwogICAgIENocm9tZUNsaWVudEVmbCogY2hy
b21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50RWZsKj4odmlldy0+ZnJhbWUoKS0+
cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAtNTQsNyArNTYsNyBAQCB2b2lkIFBvcHVw
TWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKICAgICBjaHJvbWVDbGllbnQtPmNyZWF0ZVNlbGVjdFBvcHVwKG1fcG9wdXBDbGllbnQsIGlu
ZGV4LCByZWN0KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVF
Zmw6OmhpZGUoKQogewogICAgIEFTU0VSVChtX3ZpZXcpOwogICAgIENocm9tZUNsaWVudEVmbCog
Y2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50RWZsKj4obV92aWV3LT5mcmFt
ZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC02MywxNCArNjUsMTQgQEAgdm9p
ZCBQb3B1cE1lbnU6OmhpZGUoKQogICAgIGNocm9tZUNsaWVudC0+ZGVzdHJveVNlbGVjdFBvcHVw
KCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVw
TWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJv
bUl0ZW0oY2xpZW50KCktPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51Ojpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit2b2lkIFBvcHVwTWVudUVmbDo6ZGlzY29u
bmVjdENsaWVudCgpCiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgbV9wb3B1cENsaWVudCA9IDA7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYjZiYjZhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaWZuZGVmIFBvcHVwTWVudUVmbF9oCisjZGVmaW5lIFBvcHVwTWVudUVmbF9oCisKKyNpbmNs
dWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJhcjsKK2NsYXNzIFBvcHVw
TWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51RWZsIDogcHVibGljIFBvcHVwTWVudSB7Citw
dWJsaWM6CisgICAgUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1l
bnVFZmwoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZp
ZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGll
bnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7Cisg
ICAgRnJhbWVWaWV3KiBtX3ZpZXc7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworfTsKKworfQorCisjZW5kaWYgLy8gUG9w
dXBNZW51RWZsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVw
TWVudUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3Bw
CmluZGV4IGQxODE3NGYuLmNhZmZlNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNo
UG9wdXBNZW51RWZsLmNwcApAQCAtMiw2ICsyLDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
SU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiAgQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqICBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwpAQCAtMTksMjkgKzIwLDM0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUVmbC5o
IgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVFZmw6OlNlYXJjaFBv
cHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKQorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVFZmw6OnBvcHVwTWVudSgpCit7CisgICAg
cmV0dXJuICZtX3BvcHVwOworfQorCit2b2lkIFNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQg
U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wg
U2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51RWZsOjplbmFi
bGVkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wNGNiMmU1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUVmbF9oCisjZGVmaW5lIFNlYXJjaFBvcHVw
TWVudUVmbF9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVFZmwuaCIKKyNpbmNsdWRlICJTZWFyY2hQ
b3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1l
bnVFZmwgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1
cE1lbnVFZmwoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9w
dXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAg
dmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQo
KTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVFZmwgbV9wb3B1cDsKK307CisKK30KKworI2Vu
ZGlmIC8vIFNlYXJjaFBvcHVwTWVudUVmbF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3Rr
LmNwcAppbmRleCBiZjhjZmI0Li5jYTA2N2Q5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVu
dUd0ay5jcHAKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2
IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KICAqIENvcHlyaWdodCAoQykgMjAw
OCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMs
NyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1l
bnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVHdGsuaCIKIAogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKQEAgLTM0LDEyICszNSwxMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KQorUG9wdXBNZW51R3RrOjpQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9w
dXBNZW51KCkKK1BvcHVwTWVudUd0azo6flBvcHVwTWVudUd0aygpCiB7CiAgICAgaWYgKG1fcG9w
dXApIHsKICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKG1fcG9w
dXAuZ2V0KCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAsIDAsIDAsIDAsIHRoaXMpOwpAQCAtNDcs
NyArNDgsNyBAQCBQb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQogICAgIH0KIH0KIAotdm9pZCBQb3B1
cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5k
ZXgpCit2b2lkIFBvcHVwTWVudUd0azo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZp
ZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBBU1NFUlQoY2xpZW50KCkpOwogCkBAIC0xMTAs
NDMgKzExMSw0MyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICBndGtfbWVudV9wb3B1cChtX3BvcHVwLmdl
dCgpLCAwLCAwLCByZWludGVycHJldF9jYXN0PEd0a01lbnVQb3NpdGlvbkZ1bmM+KG1lbnVQb3Np
dGlvbkZ1bmN0aW9uKSwgdGhpcywgMCwgZ3RrX2dldF9jdXJyZW50X2V2ZW50X3RpbWUoKSk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpoaWRlKCkKIHsK
ICAgICBBU1NFUlQobV9wb3B1cCk7CiAgICAgZ3RrX21lbnVfcG9wZG93bihtX3BvcHVwLmdldCgp
KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBN
ZW51R3RrOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9t
SXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpkaXNjb25u
ZWN0Q2xpZW50KCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsK
IH0KIAotdm9pZCBQb3B1cE1lbnU6Om1lbnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVt
LCBQb3B1cE1lbnUqIHRoYXQpCit2b2lkIFBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQo
R3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudUd0ayogdGhhdCkKIHsKICAgICBBU1NFUlQodGhh
dC0+Y2xpZW50KCkpOwogICAgIEFTU0VSVCh0aGF0LT5tX2luZGV4TWFwLmNvbnRhaW5zKEdUS19X
SURHRVQoaXRlbSkpKTsKICAgICB0aGF0LT5jbGllbnQoKS0+dmFsdWVDaGFuZ2VkKHRoYXQtPm1f
aW5kZXhNYXAuZ2V0KEdUS19XSURHRVQoaXRlbSkpKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6Om1l
bnVVbm1hcHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnUqIHRoYXQpCit2b2lkIFBvcHVwTWVudUd0
azo6bWVudVVubWFwcGVkKEd0a1dpZGdldCosIFBvcHVwTWVudUd0ayogdGhhdCkKIHsKICAgICBB
U1NFUlQodGhhdC0+Y2xpZW50KCkpOwogICAgIHRoYXQtPmNsaWVudCgpLT5wb3B1cERpZEhpZGUo
KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6Om1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01lbnUqLCBn
aW50KiB4LCBnaW50KiB5LCBnYm9vbGVhbiogcHVzaEluLCBQb3B1cE1lbnUqIHRoYXQpCit2b2lk
IFBvcHVwTWVudUd0azo6bWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqIHgsIGdp
bnQqIHksIGdib29sZWFuKiBwdXNoSW4sIFBvcHVwTWVudUd0ayogdGhhdCkKIHsKICAgICAqeCA9
IHRoYXQtPm1fbWVudVBvc2l0aW9uLngoKTsKICAgICAqeSA9IHRoYXQtPm1fbWVudVBvc2l0aW9u
LnkoKTsKICAgICAqcHVzaEluID0gdHJ1ZTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6Om1lbnVSZW1v
dmVJdGVtKEd0a1dpZGdldCogd2lkZ2V0LCBQb3B1cE1lbnUqIHRoYXQpCit2b2lkIFBvcHVwTWVu
dUd0azo6bWVudVJlbW92ZUl0ZW0oR3RrV2lkZ2V0KiB3aWRnZXQsIFBvcHVwTWVudUd0ayogdGhh
dCkKIHsKICAgICBBU1NFUlQodGhhdC0+bV9wb3B1cCk7CiAgICAgZ3RrX2NvbnRhaW5lcl9yZW1v
dmUoR1RLX0NPTlRBSU5FUih0aGF0LT5tX3BvcHVwLmdldCgpKSwgd2lkZ2V0KTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUG9wdXBNZW51R3RrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDJjMjJlNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVu
dUd0ay5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVu
dUd0a19oCisjZGVmaW5lIFBvcHVwTWVudUd0a19oCisKKyNpbmNsdWRlICJHUmVmUHRyR3RrLmgi
CisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUg
IlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKwordHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKK3R5cGVkZWYgc3Ry
dWN0IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKK3R5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQg
R3RrV2lkZ2V0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2Ns
YXNzIFNjcm9sbGJhcjsKKworY2xhc3MgUG9wdXBNZW51R3RrIDogcHVibGljIFBvcHVwTWVudSB7
CitwdWJsaWM6CisgICAgUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1
cE1lbnVHdGsoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RD
bGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7
CisgICAgSW50UG9pbnQgbV9tZW51UG9zaXRpb247CisgICAgR1JlZlB0cjxHdGtNZW51PiBtX3Bv
cHVwOworICAgIEhhc2hNYXA8R3RrV2lkZ2V0KiwgaW50PiBtX2luZGV4TWFwOworCisgICAgUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisK
KyAgICBzdGF0aWMgdm9pZCBtZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9w
dXBNZW51R3RrKik7CisgICAgc3RhdGljIHZvaWQgbWVudVVubWFwcGVkKEd0a1dpZGdldCosIFBv
cHVwTWVudUd0ayopOworICAgIHN0YXRpYyB2b2lkIG1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01l
bnUqLCBnaW50KiwgZ2ludCosIGdib29sZWFuKiwgUG9wdXBNZW51R3RrKik7CisgICAgc3RhdGlj
IHZvaWQgbWVudVJlbW92ZUl0ZW0oR3RrV2lkZ2V0KiwgUG9wdXBNZW51R3RrKik7Cit9OworCit9
CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVHdGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJj
aFBvcHVwTWVudUd0ay5jcHAKaW5kZXggZmJhYTUyNy4uZGZiODRhYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCkBAIC0xLDQgKzEsNiBAQAogLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCisgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0xNSwyOSArMTcsMzQg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51R3RrLmgiCiAKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNs
aWVudCkKK1NlYXJjaFBvcHVwTWVudUd0azo6U2VhcmNoUG9wdXBNZW51R3RrKFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCitQb3B1cE1lbnUqIFNlYXJj
aFBvcHVwTWVudUd0azo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisK
K3ZvaWQgU2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVHdGs6Omxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJs
ZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVHdGs6OmVuYWJsZWQoKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQ
b3B1cE1lbnVHdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGMyZWE0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJj
aFBvcHVwTWVudUd0a19oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUd0a19oCisKKyNpbmNsdWRl
ICJQb3B1cE1lbnVHdGsuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVHdGsgOiBwdWJsaWMgU2VhcmNo
UG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xp
ZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVh
bCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKyAgICAKK3ByaXZhdGU6Cisg
ICAgUG9wdXBNZW51R3RrIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1
cE1lbnVHdGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVI
YWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcAppbmRl
eCA1YWRiYzY2Li5lM2VkYjgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bv
cHVwTWVudUhhaWt1LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhh
aWt1LmNwcApAQCAtMiw2ICsyLDcgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1
cCBtZW51IGltcGxlbWVudGF0aW9uIGZvciA8c2VsZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgog
ICoKICAqIENvcHlyaWdodCAoQykgMjAxMCBTdGVwaGFuIEHDn211cyA8c3VwZXJzdGlwcGlAZ214
LmRlPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsNyArMjIsNyBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNs
dWRlICJQb3B1cE1lbnVIYWlrdS5oIgogCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKQEAgLTcy
LDkgKzczLDkgQEAgcHJpdmF0ZToKICAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7
CiB9OwogCi1jbGFzcyBQb3B1cE1lbnVIYWlrdSA6IHB1YmxpYyBCUG9wVXBNZW51IHsKK2NsYXNz
IEhhaWt1UG9wdXAgOiBwdWJsaWMgQlBvcFVwTWVudSB7CiBwdWJsaWM6Ci0gICAgUG9wdXBNZW51
SGFpa3UoUG9wdXBNZW51Q2xpZW50KiBwb3B1cENsaWVudCkKKyAgICBIYWlrdVBvcHVwKFBvcHVw
TWVudUNsaWVudCogcG9wdXBDbGllbnQpCiAgICAgICAgIDogQlBvcFVwTWVudSgiV2ViQ29yZSBQ
b3B1cCIsIHRydWUsIGZhbHNlKQogICAgICAgICAsIG1fcG9wdXBDbGllbnQocG9wdXBDbGllbnQp
CiAgICAgICAgICwgbV9IYW5kbGVyKHBvcHVwQ2xpZW50KQpAQCAtODYsNyArODcsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNldEFzeW5jQXV0b0Rlc3RydWN0KGZhbHNlKTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIH5Qb3B1cE1lbnVIYWlrdSgpCisgICAgdmlydHVhbCB+SGFpa3VQb3B1cCgpCiAgICAg
ewogICAgICAgICBpZiAoYmVfYXBwLT5Mb2NrKCkpIHsKICAgICAgICAgICAgIGJlX2FwcC0+UmVt
b3ZlSGFuZGxlcigmbV9IYW5kbGVyKTsKQEAgLTE1MywzOSArMTU0LDM5IEBAIHByaXZhdGU6CiAg
ICAgUG9wdXBNZW51SGFuZGxlciBtX0hhbmRsZXI7CiB9OwogCi1Qb3B1cE1lbnU6OlBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVudUhhaWt1OjpQb3B1cE1lbnVIYWlr
dShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQot
ICAgICwgbV9tZW51KG5ldyBQb3B1cE1lbnVIYWlrdShjbGllbnQpKQorICAgICwgbV9tZW51KG5l
dyBIYWlrdVBvcHVwKGNsaWVudCkpCiB7CiAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhZGRpdGlvbmFs
IHJlZmVyZW5jZXMgdG8gdGhlIGNsaWVudCwgc2luY2Ugd2UgY29tcGxldGVseQogICAgIC8vIGNv
bnRyb2wgYW55IHN1Yi1vYmplY3RzIHdlIGNyZWF0ZSB0aGF0IG5lZWQgaXQgYXMgd2VsbC4KIH0K
IAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFp
a3UoKQogewogICAgIGRlbGV0ZSBtX21lbnU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNv
bnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1
cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7
Cit9CisKK3ZvaWQgUG9wdXBNZW51SGFpa3U6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJh
bWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgLy8gVGhlIG1lbnUgd2lsbCB1cGRhdGUg
aXRzZWxmIGZyb20gdGhlIFBvcHVwTWVudUNsaWVudCBiZWZvcmUgc2hvd2luZy4KICAgICBtX21l
bnUtPnNob3cocmVjdCwgdmlldywgaW5kZXgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgp
Cit2b2lkIFBvcHVwTWVudUhhaWt1OjpoaWRlKCkKIHsKICAgICBtX21lbnUtPmhpZGUoKTsKIH0K
IAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVt
KG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51Ojpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvUG9wdXBNZW51SGFpa3UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51
SGFpa3UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWJlNDE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVIYWlr
dV9oCisjZGVmaW5lIFBvcHVwTWVudUhhaWt1X2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgSGFpa3VQb3B1cDsK
K2NsYXNzIFNjcm9sbGJhcjsKKworY2xhc3MgUG9wdXBNZW51SGFpa3UgOiBwdWJsaWMgUG9wdXBN
ZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqKTsKKyAg
ICB+UG9wdXBNZW51SGFpa3UoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJl
Y3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRp
c2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQgPSAwOyB9CisKK3ByaXZhdGU6CisgICAg
UG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIEhhaWt1UG9wdXAqIG1fbWVudTsK
KworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENs
aWVudDsgfQorCit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVIYWlrdV9oCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwCmluZGV4IGZkNWQ5
NmMuLjQ0MzM4ZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9w
dXBNZW51SGFpa3UuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBN
ZW51SGFpa3UuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBS
eWFuIExlYXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMTgsNyArMTksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnVIYWlrdS5oIgogCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKQEAgLTI2LDI2ICsyNywzMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xp
ZW50KQogewogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KQordm9pZCBTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJs
ZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVIYWlrdTo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1BvcHVwTWVudSogU2VhcmNoUG9w
dXBNZW51SGFpa3U6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuIG1fcG9wdXA7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlr
dS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQ
b3B1cE1lbnVIYWlrdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MzJk
M2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVw
TWVudUhhaWt1LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IFNlYXJjaFBvcHVwTWVudUhhaWt1X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51SGFpa3VfaAor
CisjaW5jbHVkZSAiUG9wdXBNZW51SGFpa3UuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVIYWlrdSA6
IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUhh
aWt1KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVu
dSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1
YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisK
K3ByaXZhdGU6CisgICAgUG9wdXBNZW51SGFpa3UgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlm
IC8vIFNlYXJjaFBvcHVwTWVudUhhaWt1X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BvcHVwTWVudU1hYy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y4YWY1NAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oCkBAIC0wLDAgKzEsNjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudU1hY19oCisjZGVmaW5lIFBvcHVw
TWVudU1hY19oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworY2xhc3Mg
RnJhbWVWaWV3OworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBQb3B1cE1lbnVNYWMgOiBwdWJs
aWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50
Kik7CisgICAgflBvcHVwTWVudU1hYygpOworCisgICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkg
eyBtX3BvcHVwQ2xpZW50ID0gMDsgfQorCisgICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBG
cmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZvaWQgaGlkZSgpOworCisgICAgdm9pZCB1cGRh
dGVGcm9tRWxlbWVudCgpOworCisgICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGll
bnQ7CisgICAgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25DZWxsPiBtX3BvcHVwOworCisgICAgdm9p
ZCBjbGVhcigpOworICAgIHZvaWQgcG9wdWxhdGUoKTsKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KK307CisKK30KKworI2VuZGlm
IC8vIFBvcHVwTWVudU1hY19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1
cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KaW5kZXgg
NmMwNjdiOS4uMGY1MDU5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBN
ZW51TWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQpAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTgsNyArMTksNyBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUG9wdXBN
ZW51LmgiCisjaW1wb3J0ICJQb3B1cE1lbnVNYWMuaCIKIAogI2ltcG9ydCAiQVhPYmplY3RDYWNo
ZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgiCkBAIC0zMSw2ICszMiw3IEBACiAjaW1wb3J0ICJIVE1M
T3B0aW9uRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbXBvcnQg
IlBhZ2UuaCIKKyNpbXBvcnQgIlBvcHVwTWVudUNsaWVudC5oIgogI2ltcG9ydCAiU2ltcGxlRm9u
dERhdGEuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKIApAQCAtMzgsMjQg
KzQwLDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1
cE1lbnVNYWM6OlBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1f
cG9wdXBDbGllbnQoY2xpZW50KQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9w
dXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKCkKIHsKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAg
W21fcG9wdXAuZ2V0KCkgc2V0Q29udHJvbFZpZXc6bmlsXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6
OmNsZWFyKCkKK3ZvaWQgUG9wdXBNZW51TWFjOjpjbGVhcigpCiB7CiAgICAgaWYgKG1fcG9wdXAp
CiAgICAgICAgIFttX3BvcHVwLmdldCgpIHJlbW92ZUFsbEl0ZW1zXTsKIH0KIAotdm9pZCBQb3B1
cE1lbnU6OnBvcHVsYXRlKCkKK3ZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiB7CiAgICAg
aWYgKG1fcG9wdXApCiAgICAgICAgIGNsZWFyKCk7CkBAIC0xMTQsNyArMTE2LDcgQEAgdm9pZCBQ
b3B1cE1lbnU6OnBvcHVsYXRlKCkKICAgICBbW21fcG9wdXAuZ2V0KCkgbWVudV0gc2V0TWVudUNo
YW5nZWRNZXNzYWdlc0VuYWJsZWQ6bWVzc2FnZXNFbmFibGVkXTsKIH0KIAotdm9pZCBQb3B1cE1l
bnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lk
IFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBp
bmRleCkKIHsKICAgICBwb3B1bGF0ZSgpOwogICAgIGludCBudW1JdGVtcyA9IFttX3BvcHVwLmdl
dCgpIG51bWJlck9mSXRlbXNdOwpAQCAtMTYyLDcgKzE2NCw3IEBAIHZvaWQgUG9wdXBNZW51Ojpz
aG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgIFJlZlB0
cjxGcmFtZT4gZnJhbWUgPSB2LT5mcmFtZSgpOwogICAgIE5TRXZlbnQqIGV2ZW50ID0gW2ZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+Y3VycmVudE5TRXZlbnQoKSByZXRhaW5dOwogICAgIAotICAgIFJl
ZlB0cjxQb3B1cE1lbnU+IHByb3RlY3Rvcih0aGlzKTsKKyAgICBSZWZQdHI8UG9wdXBNZW51TWFj
PiBwcm90ZWN0b3IodGhpcyk7CiAKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBkdW1teVZpZXcoQWRv
cHROUywgW1tOU1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cl0pOwogICAgIFt2aWV3IGFkZFN1
YnZpZXc6ZHVtbXlWaWV3LmdldCgpXTsKQEAgLTE5NCwxNiArMTk2LDE2IEBAIHZvaWQgUG9wdXBN
ZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAg
IFtldmVudCByZWxlYXNlXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1
cE1lbnVNYWM6OmhpZGUoKQogewogICAgIFttX3BvcHVwLmdldCgpIGRpc21pc3NQb3BVcF07CiB9
CiAgICAgCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1l
bnVNYWM6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK2Jvb2wgUG9wdXBNZW51TWFjOjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQ0ZjkxYTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZWFyY2hQb3B1cE1lbnVNYWMuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51TWFjX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51
TWFjX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudU1hYy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVw
TWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudU1h
YyA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVu
dU1hYyhQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1l
bnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwor
Citwcml2YXRlOgorICAgIFBvcHVwTWVudU1hYyBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYg
Ly8gU2VhcmNoUG9wdXBNZW51TWFjX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1NlYXJjaFBvcHVwTWVudU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5tbQppbmRleCAyNjI3MzRkLi43OGIyOWE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMTgsMTQgKzE5LDE0IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0j
aW1wb3J0ICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1hYy5o
IgogCiAjaW1wb3J0ICJBdG9taWNTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1T
ZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
LSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVNYWM6OlNlYXJjaFBvcHVw
TWVudU1hYyhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQog
ewogfQogCkBAIC0zNCwxMiArMzUsMTcgQEAgc3RhdGljIE5TU3RyaW5nKiBhdXRvc2F2ZUtleShj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIFtAImNvbS5hcHBsZS5XZWJLaXQuc2VhcmNo
RmllbGQ6IiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpuYW1lXTsKIH0KIAotYm9vbCBTZWFyY2hQ
b3B1cE1lbnU6OmVuYWJsZWQoKQorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVNYWM6OnBvcHVw
TWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCitib29sIFNlYXJjaFBvcHVwTWVu
dU1hYzo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2VhcmNoUG9w
dXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTYsNyArNjIsNyBAQCB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPAogICAg
IH0KIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2Vh
cmNoUG9wdXBNZW51TWFjOjpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bv
cHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmluZGV4
IDMxNWI4OTEuLjU1OTA1NTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBAIC0y
NCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnRRdC5oIgpAQCAtMzUsMTggKzM1LDI0IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpCitQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fcG9wdXAoMCkKIHsKIH0KIAot
UG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudVF0Ojp+UG9wdXBNZW51UXQoKQogewog
ICAgIGRlbGV0ZSBtX3BvcHVwOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKKwordm9pZCBQb3B1cE1lbnVR
dDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3Zv
aWQgUG9wdXBNZW51UXQ6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3
LCBpbnQgaW5kZXgpCiB7CiAgICAgQ2hyb21lQ2xpZW50UXQqIGNocm9tZUNsaWVudCA9IHN0YXRp
Y19jYXN0PENocm9tZUNsaWVudFF0Kj4oCiAgICAgICAgIHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+
Y2hyb21lKCktPmNsaWVudCgpKTsKQEAgLTY3LDE5ICs3MywxNCBAQCB2b2lkIFBvcHVwTWVudTo6
c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIAog
fQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudVF0OjpoaWRlKCkKIHsK
ICAgICBtX3BvcHVwLT5oaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxl
bWVudCgpCi17Ci0gICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5z
ZWxlY3RlZEluZGV4KCkpOwotfQotCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQordm9pZCBQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewot
ICAgIHJldHVybiBmYWxzZTsKKyAgICBtX3BvcHVwQ2xpZW50LT5zZXRUZXh0RnJvbUl0ZW0obV9w
b3B1cENsaWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1l
bnVRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YTlmNzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51UXRfaAorI2RlZmluZSBQ
b3B1cE1lbnVRdF9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7CitjbGFz
cyBTY3JvbGxiYXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CisKK2NsYXNzIFBvcHVwTWVudVF0
IDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51UXQoUG9wdXBNZW51
Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVF0KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhj
b25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQg
aGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1
YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xp
ZW50KiBtX3BvcHVwQ2xpZW50OworICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKK307
CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudVF0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJz
dHJhY3RXZWJQb3B1cC5oCmluZGV4IGRhZDQ5OTcuLjVmNmY2MTkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAg
UUZvbnQgZm9udCgpIHsgcmV0dXJuIG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLmZvbnQoKS5m
b250KCk7IH0KIAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUG9wdXBNZW51OworICAgIGZy
aWVuZCBjbGFzcyBQb3B1cE1lbnVRdDsKICAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGll
bnQ7CiAgICAgUVdlYlBhZ2VDbGllbnQqIG1fcGFnZUNsaWVudDsKICAgICBpbnQgbV9jdXJyZW50
SW5kZXg7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCmluZGV4IDE4
N2E1ZGUuLjg2OGI5YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9w
dXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCBDIDIwMDYgWmFjayBSdXNpbiA8
emFja0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMjYg
KzE5LDI5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBv
cHVwTWVudS5oIgotCi0jaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiU2VhcmNo
UG9wdXBNZW51UXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6
OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVu
dShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVRdDo6U2VhcmNoUG9wdXBNZW51UXQoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKK3sKK30KKworUG9wdXBNZW51
KiBTZWFyY2hQb3B1cE1lbnVRdDo6cG9wdXBNZW51KCkKIHsKKyAgICByZXR1cm4gJm1fcG9wdXA7
CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVR
dDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JikKIHsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVw
TWVudVF0Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0
cmluZz4mKQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNl
YXJjaFBvcHVwTWVudVF0OjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4xMzc0ZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVRdF9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudVF0
X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51UXQgOiBw
dWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVRdChQ
b3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0
cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworICAgIAor
cHJpdmF0ZToKKyAgICBQb3B1cE1lbnVRdCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8g
U2VhcmNoUG9wdXBNZW51UXRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5k
ZXggNGJjNmRjNy4uY2JhY2Q0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3Bw
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBUb3JjaCBNb2JpbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjAsNyArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1
cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVXaW4uaCIKIAogI2luY2x1ZGUgIkJpdG1hcElu
Zm8uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtODYsNyArODcsNyBAQCBzdGF0aWMgdm9p
ZCB0cmFuc2xhdGVQb2ludChMUEFSQU0mIGxQYXJhbSwgSFdORCBmcm9tLCBIV05EIHRvKQogICAg
IGxQYXJhbSA9IE1BS0VMUEFSQU0ocHQueCwgcHQueSk7CiB9CiAKLVBvcHVwTWVudTo6UG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4o
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAg
ICAsIG1fc2Nyb2xsYmFyKDApCiAgICAgLCBtX3BvcHVwKDApCkBAIC0xMDIsNyArMTAzLDcgQEAg
UG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiB7CiB9CiAKLVBv
cHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4oKQogewog
ICAgIGlmIChtX2JtcCkKICAgICAgICAgOjpEZWxldGVPYmplY3QobV9ibXApOwpAQCAtMTE0LDEy
ICsxMTUsMTcgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICAgICAgbV9zY3JvbGxiYXIt
PnNldFBhcmVudCgwKTsKIH0KIAotTFBDVFNUUiBQb3B1cE1lbnU6OnBvcHVwQ2xhc3NOYW1lKCkK
K3ZvaWQgUG9wdXBNZW51V2luOjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xp
ZW50ID0gMDsKK30KKworTFBDVFNUUiBQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKCkKIHsK
ICAgICByZXR1cm4ga1BvcHVwV2luZG93Q2xhc3NOYW1lOwogfQogCi12b2lkIFBvcHVwTWVudTo6
c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQg
UG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmlldywgaW50
IGluZGV4KQogewogICAgIGNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShyLCB2aWV3KTsKICAgICBp
ZiAoY2xpZW50UmVjdCgpLmlzRW1wdHkoKSkKQEAgLTI2Nyw3ICsyNzMsNyBAQCB2b2lkIFBvcHVw
TWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkK
ICAgICBoaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51
V2luOjpoaWRlKCkKIHsKICAgICBpZiAoIW1fc2hvd1BvcHVwKQogICAgICAgICByZXR1cm47CkBA
IC0yODMsNyArMjg5LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogICAgIDo6UG9zdE1lc3Nh
Z2UobV9wb3B1cCwgV01fTlVMTCwgMCwgMCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpjYWxjdWxh
dGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2KQordm9pZCBQ
b3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiByLCBG
cmFtZVZpZXcqIHYpCiB7CiAgICAgLy8gciBpcyBpbiBhYnNvbHV0ZSBkb2N1bWVudCBjb29yZGlu
YXRlcywgYnV0IHdlIHdhbnQgdG8gYmUgaW4gc2NyZWVuIGNvb3JkaW5hdGVzCiAKQEAgLTM3Myw3
ICszNzksNyBAQCB2b2lkIFBvcHVwTWVudTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0
IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKICAgICByZXR1cm47CiB9CiAKLWJvb2wgUG9wdXBN
ZW51OjpzZXRGb2N1c2VkSW5kZXgoaW50IGksIGJvb2wgaG90VHJhY2tpbmcpCitib29sIFBvcHVw
TWVudVdpbjo6c2V0Rm9jdXNlZEluZGV4KGludCBpLCBib29sIGhvdFRyYWNraW5nKQogewogICAg
IGlmIChpIDwgMCB8fCBpID49IGNsaWVudCgpLT5saXN0U2l6ZSgpIHx8IGkgPT0gZm9jdXNlZElu
ZGV4KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5NSwyMiArNDAxLDIyIEBAIGJvb2wg
UG9wdXBNZW51OjpzZXRGb2N1c2VkSW5kZXgoaW50IGksIGJvb2wgaG90VHJhY2tpbmcpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWludCBQb3B1cE1lbnU6OnZpc2libGVJdGVtcygpIGNvbnN0Citp
bnQgUG9wdXBNZW51V2luOjp2aXNpYmxlSXRlbXMoKSBjb25zdAogewogICAgIHJldHVybiBjbGll
bnRSZWN0KCkuaGVpZ2h0KCkgLyBtX2l0ZW1IZWlnaHQ7CiB9CiAKLWludCBQb3B1cE1lbnU6Omxp
c3RJbmRleEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoraW50IFBvcHVwTWVu
dVdpbjo6bGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0ICsgcG9pbnQueSgpIC8gbV9pdGVtSGVpZ2h0OwogfQog
Ci1pbnQgUG9wdXBNZW51Ojpmb2N1c2VkSW5kZXgoKSBjb25zdAoraW50IFBvcHVwTWVudVdpbjo6
Zm9jdXNlZEluZGV4KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mb2N1c2VkSW5kZXg7CiB9CiAK
LXZvaWQgUG9wdXBNZW51Ojpmb2N1c0ZpcnN0KCkKK3ZvaWQgUG9wdXBNZW51V2luOjpmb2N1c0Zp
cnN0KCkKIHsKICAgICBpZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm47CkBAIC00MjQsNyAr
NDMwLDcgQEAgdm9pZCBQb3B1cE1lbnU6OmZvY3VzRmlyc3QoKQogICAgICAgICB9CiB9CiAKLXZv
aWQgUG9wdXBNZW51Ojpmb2N1c0xhc3QoKQordm9pZCBQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCgp
CiB7CiAgICAgaWYgKCFjbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDM4LDcgKzQ0NCw3
IEBAIHZvaWQgUG9wdXBNZW51Ojpmb2N1c0xhc3QoKQogICAgICAgICB9CiB9CiAKLWJvb2wgUG9w
dXBNZW51Ojpkb3duKHVuc2lnbmVkIGxpbmVzKQorYm9vbCBQb3B1cE1lbnVXaW46OmRvd24odW5z
aWduZWQgbGluZXMpCiB7CiAgICAgaWYgKCFjbGllbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtNDU3LDcgKzQ2Myw3IEBAIGJvb2wgUG9wdXBNZW51Ojpkb3duKHVuc2lnbmVkIGxpbmVz
KQogICAgIHJldHVybiBzZXRGb2N1c2VkSW5kZXgobGFzdFNlbGVjdGFibGVJbmRleCk7CiB9CiAK
LWJvb2wgUG9wdXBNZW51Ojp1cCh1bnNpZ25lZCBsaW5lcykKK2Jvb2wgUG9wdXBNZW51V2luOjp1
cCh1bnNpZ25lZCBsaW5lcykKIHsKICAgICBpZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC00NzYsNyArNDgyLDcgQEAgYm9vbCBQb3B1cE1lbnU6OnVwKHVuc2lnbmVkIGxp
bmVzKQogICAgIHJldHVybiBzZXRGb2N1c2VkSW5kZXgobGFzdFNlbGVjdGFibGVJbmRleCk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpCit2b2lkIFBvcHVw
TWVudVdpbjo6aW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KQogewogICAgIGlmICghbV9wb3B1cCkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDkxLDcgKzQ5Nyw3IEBAIHZvaWQgUG9wdXBNZW51OjppbnZh
bGlkYXRlSXRlbShpbnQgaW5kZXgpCiAgICAgOjpJbnZhbGlkYXRlUmVjdChtX3BvcHVwLCAmciwg
VFJVRSk7CiB9CiAKLUludFJlY3QgUG9wdXBNZW51OjpjbGllbnRSZWN0KCkgY29uc3QKK0ludFJl
Y3QgUG9wdXBNZW51V2luOjpjbGllbnRSZWN0KCkgY29uc3QKIHsKICAgICBJbnRSZWN0IGNsaWVu
dFJlY3QgPSBtX3dpbmRvd1JlY3Q7CiAgICAgY2xpZW50UmVjdC5pbmZsYXRlKC1wb3B1cFdpbmRv
d0JvcmRlcldpZHRoKTsKQEAgLTQ5OSwxMiArNTA1LDEyIEBAIEludFJlY3QgUG9wdXBNZW51Ojpj
bGllbnRSZWN0KCkgY29uc3QKICAgICByZXR1cm4gY2xpZW50UmVjdDsKIH0KIAotdm9pZCBQb3B1
cE1lbnU6OmluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKQordm9pZCBQb3B1cE1lbnVXaW46
OmluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKQogewogICAgIG1fd2hlZWxEZWx0YSArPSBk
ZWx0YTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKQor
dm9pZCBQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKQogewogICAgIEFT
U0VSVChkZWx0YSA+PSAwKTsKICAgICBBU1NFUlQoZGVsdGEgPD0gYWJzKG1fd2hlZWxEZWx0YSkp
OwpAQCAtNTE3LDcgKzUyMyw3IEBAIHZvaWQgUG9wdXBNZW51OjpyZWR1Y2VXaGVlbERlbHRhKGlu
dCBkZWx0YSkKICAgICAgICAgcmV0dXJuOwogfQogCi1ib29sIFBvcHVwTWVudTo6c2Nyb2xsVG9S
ZXZlYWxTZWxlY3Rpb24oKQorYm9vbCBQb3B1cE1lbnVXaW46OnNjcm9sbFRvUmV2ZWFsU2VsZWN0
aW9uKCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC01MzcsNyArNTQzLDcgQEAgYm9vbCBQb3B1cE1lbnU6OnNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9u
KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxl
bWVudCgpCit2b2lkIFBvcHVwTWVudVdpbjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGlm
ICghbV9wb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTQ5LDE0ICs1NTUsOSBAQCB2b2lkIFBv
cHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICA6OlVwZGF0ZVdpbmRvdyhtX3Bv
cHVwKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkgCi17IAotICAgIHJldHVybiB0cnVlOyAKLX0KLQogY29uc3QgaW50IHNlcGFyYXRvclBhZGRp
bmcgPSA0OwogY29uc3QgaW50IHNlcGFyYXRvckhlaWdodCA9IDE7Ci12b2lkIFBvcHVwTWVudTo6
cGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDIGhkYykKK3ZvaWQgUG9wdXBNZW51
V2luOjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQogewogICAgIGlm
ICghbV9wb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtNjYzLDcgKzY2NCw3IEBAIHZvaWQgUG9w
dXBNZW51OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQogICAgICAg
ICA6OlJlbGVhc2VEQyhtX3BvcHVwLCBsb2NhbERDKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnZh
bHVlQ2hhbmdlZChTY3JvbGxiYXIqIHNjcm9sbEJhcikKK3ZvaWQgUG9wdXBNZW51V2luOjp2YWx1
ZUNoYW5nZWQoU2Nyb2xsYmFyKiBzY3JvbGxCYXIpCiB7CiAgICAgQVNTRVJUKG1fc2Nyb2xsYmFy
KTsKIApAQCAtNjk5LDcgKzcwMCw3IEBAIHZvaWQgUG9wdXBNZW51Ojp2YWx1ZUNoYW5nZWQoU2Ny
b2xsYmFyKiBzY3JvbGxCYXIpCiAgICAgOjpVcGRhdGVXaW5kb3cobV9wb3B1cCk7CiB9CiAKLXZv
aWQgUG9wdXBNZW51OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJh
ciwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgUG9wdXBNZW51V2luOjppbnZhbGlkYXRlU2Ny
b2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwogICAgIHNjcm9sbFJlY3QubW92ZShzY3Jv
bGxiYXItPngoKSwgc2Nyb2xsYmFyLT55KCkpOwpAQCAtNzA3LDcgKzcwOCw3IEBAIHZvaWQgUG9w
dXBNZW51OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcmVjCiAgICAgOjpJbnZhbGlkYXRlUmVjdChtX3BvcHVwLCAmciwgZmFsc2Up
OwogfQogCi12b2lkIFBvcHVwTWVudTo6cmVnaXN0ZXJDbGFzcygpCit2b2lkIFBvcHVwTWVudVdp
bjo6cmVnaXN0ZXJDbGFzcygpCiB7CiAgICAgc3RhdGljIGJvb2wgaGF2ZVJlZ2lzdGVyZWRXaW5k
b3dDbGFzcyA9IGZhbHNlOwogCkBAIC03NDMsNyArNzQ0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnJl
Z2lzdGVyQ2xhc3MoKQogfQogCiAKLUxSRVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51OjpQb3B1cE1l
bnVXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtKQorTFJFU1VMVCBDQUxMQkFDSyBQb3B1cE1lbnVXaW46OlBvcHVwTWVudVduZFByb2Mo
SFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7
CiAjaWYgT1MoV0lOQ0UpCiAgICAgTE9ORyBsb25nUHRyID0gR2V0V2luZG93TG9uZyhoV25kLCAw
KTsKQEAgLTc3MSw3ICs3NzIsNyBAQCBMUkVTVUxUIENBTExCQUNLIFBvcHVwTWVudTo6UG9wdXBN
ZW51V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYQogCiBjb25zdCBp
bnQgc21vb3RoU2Nyb2xsQW5pbWF0aW9uRHVyYXRpb24gPSA1MDAwOwogCi1MUkVTVUxUIFBvcHVw
TWVudTo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBB
UkFNIGxQYXJhbSkKK0xSRVNVTFQgUG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewogICAgIExSRVNVTFQg
bFJlc3VsdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlZTZiMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIFBvcHVwTWVudVdpbl9oCisjZGVmaW5lIFBvcHVwTWVudVdpbl9oCisK
KyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAi
UG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAiU2Ny
b2xsYmFyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwordHlwZWRlZiBzdHJ1
Y3QgSFdORF9fKiBIV05EOwordHlwZWRlZiBzdHJ1Y3QgSERDX18qIEhEQzsKK3R5cGVkZWYgc3Ry
dWN0IEhCSVRNQVBfXyogSEJJVE1BUDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBG
cmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudVdpbiA6IHB1Ymxp
YyBQb3B1cE1lbnUsIHByaXZhdGUgU2Nyb2xsYmFyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBQb3B1
cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVdpbigpOworCisgICAg
dmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7
CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVs
ZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRl
OgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKworICAgIFBvcHVwTWVudUNs
aWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCisgICAgU2Ny
b2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhci5nZXQoKTsgfQor
CisgICAgc3RhdGljIExQQ1RTVFIgcG9wdXBDbGFzc05hbWUoKTsKKworICAgIGJvb2wgdXAodW5z
aWduZWQgbGluZXMgPSAxKTsKKyAgICBib29sIGRvd24odW5zaWduZWQgbGluZXMgPSAxKTsKKwor
ICAgIGludCBpdGVtSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtSGVpZ2h0OyB9CisgICAg
Y29uc3QgSW50UmVjdCYgd2luZG93UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93UmVjdDsg
fQorICAgIEludFJlY3QgY2xpZW50UmVjdCgpIGNvbnN0OworCisgICAgaW50IHZpc2libGVJdGVt
cygpIGNvbnN0OworCisgICAgaW50IGxpc3RJbmRleEF0UG9pbnQoY29uc3QgSW50UG9pbnQmKSBj
b25zdDsKKworICAgIGJvb2wgc2V0Rm9jdXNlZEluZGV4KGludCBpbmRleCwgYm9vbCBob3RUcmFj
a2luZyA9IGZhbHNlKTsKKyAgICBpbnQgZm9jdXNlZEluZGV4KCkgY29uc3Q7CisgICAgdm9pZCBm
b2N1c0ZpcnN0KCk7CisgICAgdm9pZCBmb2N1c0xhc3QoKTsKKworICAgIHZvaWQgcGFpbnQoY29u
c3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDID0gMCk7CisKKyAgICBIV05EIHBvcHVwSGFuZGxl
KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cDsgfQorCisgICAgdm9pZCBzZXRXYXNDbGlja2VkKGJv
b2wgYiA9IHRydWUpIHsgbV93YXNDbGlja2VkID0gYjsgfQorICAgIGJvb2wgd2FzQ2xpY2tlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2xpY2tlZDsgfQorCisgICAgdm9pZCBzZXRTY3JvbGxPZmZz
ZXQoaW50IG9mZnNldCkgeyBtX3Njcm9sbE9mZnNldCA9IG9mZnNldDsgfQorICAgIGludCBzY3Jv
bGxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9mZnNldDsgfQorCisgICAgYm9vbCBz
Y3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOworCisgICAgdm9pZCBpbmNyZW1lbnRXaGVlbERlbHRh
KGludCBkZWx0YSk7CisgICAgdm9pZCByZWR1Y2VXaGVlbERlbHRhKGludCBkZWx0YSk7CisgICAg
aW50IHdoZWVsRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX3doZWVsRGVsdGE7IH0KKworICAgIGJv
b2wgc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNh
cHR1cmluZ01vdXNlOyB9CisgICAgdm9pZCBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29s
IGIpIHsgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSA9IGI7IH0KK307CisKK30KKworI2VuZGlm
IC8vIFBvcHVwTWVudVdpbl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFy
Y2hQb3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51
V2luLmNwcAppbmRleCBmMjcwOWJiLi40YTVjYjIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTE4LDE5ICsxOSwyNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVXaW4uaCIK
IAogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFy
Y2hQb3B1cE1lbnVXaW46OlNlYXJjaFBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6
ZW5hYmxlZCgpCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KCkKK3sK
KyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKK2Jvb2wgU2VhcmNoUG9wdXBNZW51V2luOjplbmFi
bGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQxLDcgKzQ3LDcgQEAgc3RhdGljIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gYXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1lKQogICAg
IHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIGtleS5jcmVhdGVDRlN0cmlu
ZygpKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykK
K3ZvaWQgU2VhcmNoUG9wdXBNZW51V2luOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAg
aWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC02MSw3ICs2Nyw3IEBAIHZv
aWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8CiAgICAgQ0ZQcmVmZXJlbmNlc0FwcFN5bmNocm9uaXplKGtD
RlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51V2luOjpsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaCBiL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjFlODdkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51V2luX2gKKyNkZWZpbmUgU2VhcmNoUG9w
dXBNZW51V2luX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVdpbi5oIgorI2luY2x1ZGUgIlNlYXJj
aFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVw
TWVudVdpbiA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBv
cHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBw
b3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxl
ZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudVdpbiBtX3BvcHVwOworfTsKKworfQorCisj
ZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51V2luX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vd3gvUG9wdXBNZW51V3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5j
cHAKaW5kZXggOWIwZGViYS4uZTg4ZDFlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93
eC9Qb3B1cE1lbnVXeC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5j
cHAKQEAgLTIsNiArMiw3IEBACiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgcG9wdXAgbWVu
dSBpbXBsZW1lbnRhdGlvbiBmb3IgPHNlbGVjdD4gZWxlbWVudHMgaW4gV2ViQ29yZS4KICAqCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDcgKzIyLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51V3guaCIK
IAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC00MSwxOCAr
NDIsMjMgQEAgc3RhdGljIGludCBzX21lbnVTdGFydElkID0gd3hOZXdJZCgpOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KQorUG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQog
ICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX21lbnUoTlVMTCkKIHsKIH0KIAot
UG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudVd4Ojp+UG9wdXBNZW51V3goKQogewog
ICAgIGRlbGV0ZSBtX21lbnU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJl
Y3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVXeDo6ZGlzY29u
bmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9wdXBN
ZW51V3g6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7
CiAgICAgLy8ganVzdCBkZWxldGUgYW5kIHJlY3JlYXRlCiAgICAgZGVsZXRlIG1fbWVudTsKQEAg
LTc4LDEzICs4NCwxMyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBG
cmFtZVZpZXcqIHYsIGludCBpbmRleCkKICAgICAgICAgICAgICAgICAgICAgbV9tZW51LT5BcHBl
bmQoc19tZW51U3RhcnRJZCArIGksIGNsaWVudCgpLT5pdGVtVGV4dChpKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KLSAgICAgICAgbmF0aXZlV2luLT5Db25uZWN0KHNfbWVudVN0YXJ0SWQs
IHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3
eENvbW1hbmRFdmVudEhhbmRsZXIoUG9wdXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCBOVUxM
LCB0aGlzKTsKKyAgICAgICAgbmF0aXZlV2luLT5Db25uZWN0KHNfbWVudVN0YXJ0SWQsIHNfbWVu
dVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3eENvbW1h
bmRFdmVudEhhbmRsZXIoUG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1TZWxlY3RlZCksIDAsIHRoaXMp
OwogICAgICAgICBuYXRpdmVXaW4tPlBvcHVwTWVudShtX21lbnUsIHIueCgpIC0gdi0+c2Nyb2xs
WCgpLCByLnkoKSAtIHYtPnNjcm9sbFkoKSk7Ci0gICAgICAgIG5hdGl2ZVdpbi0+RGlzY29ubmVj
dChzX21lbnVTdGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUtMSksIHd4RVZUX0NPTU1BTkRf
TUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVudTo6T25NZW51SXRl
bVNlbGVjdGVkKSwgTlVMTCwgdGhpcyk7CisgICAgICAgIG5hdGl2ZVdpbi0+RGlzY29ubmVjdChz
X21lbnVTdGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUtMSksIHd4RVZUX0NPTU1BTkRfTUVO
VV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVudVd4OjpPbk1lbnVJdGVt
U2VsZWN0ZWQpLCAwLCB0aGlzKTsKICAgICB9CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpPbk1lbnVJ
dGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmIGV2ZW50KQordm9pZCBQb3B1cE1lbnVXeDo6T25N
ZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoY2xpZW50
KCkpIHsKICAgICAgICAgY2xpZW50KCktPnZhbHVlQ2hhbmdlZChldmVudC5HZXRJZCgpIC0gc19t
ZW51U3RhcnRJZCk7CkBAIC05MywyMCArOTksMTUgQEAgdm9pZCBQb3B1cE1lbnU6Ok9uTWVudUl0
ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVudCYgZXZlbnQpCiAgICAgLy8gVE9ETzogRG8gd2UgbmVl
ZCB0byBjYWxsIERpc2Nvbm5lY3QgaGVyZT8gRG8gd2UgaGF2ZSBhIHJlZiB0byB0aGUgbmF0aXZl
IHdpbmRvdyBzdGlsbD8KIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1l
bnVXeDo6aGlkZSgpCiB7CiAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJl
LCB0aGUgbmF0aXZlIGNvbnRyb2wgb25seSBleGlzdHMgZHVyaW5nIHRoZSB0aW1lCiAgICAgLy8g
c2hvdyBpcyBjYWxsZWQKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkK
K3ZvaWQgUG9wdXBNZW51V3g6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+
c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJv
b2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCi17Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVw
TWVudVd4LmggYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYwNGI5MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51V3hfaAorI2RlZmluZSBQb3B1cE1lbnVXeF9oCisK
KyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAi
UG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorCisjaWZkZWYgX19XWE1TV19fCisjaW5jbHVkZSA8d3gvbXN3
L3dpbnVuZGVmLmg+CisjZW5kaWYKK2NsYXNzIHd4TWVudTsKKyNpbmNsdWRlIDx3eC9kZWZzLmg+
CisjaW5jbHVkZSA8d3gvZXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBG
cmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudVd4IDogcHVibGlj
IFBvcHVwTWVudSwgcHVibGljIHd4RXZ0SGFuZGxlciB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51
V3goUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVd4KCk7CisKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2
aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgp
OworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAg
UG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworCisgICAgd3hNZW51KiBtX21lbnU7Cisg
ICAgdm9pZCBPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmKTsKKworICAgIFBvcHVw
TWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCit9
OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVXeF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2Vh
cmNoUG9wdXBNZW51V3guY3BwCmluZGV4IGRiYmUzMzkuLmE1YWViMWIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwzMiArMjUsMzcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51V3guaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorU2VhcmNoUG9wdXBNZW51V3g6OlNlYXJjaFBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQg
U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQor
dm9pZCBTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2Vh
cmNoUG9wdXBNZW51V3g6OmVuYWJsZWQoKQogewogICAgIHJldHVybiB0cnVlOwogfQogCitQb3B1
cE1lbnUqIFNlYXJjaFBvcHVwTWVudVd4Ojpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9w
b3B1cDsKK30KKwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBv
cHVwTWVudVd4LmggYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRjNzdiYQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51V3hfaAorI2Rl
ZmluZSBTZWFyY2hQb3B1cE1lbnVXeF9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVXeC5oIgorI2lu
Y2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlYXJjaFBvcHVwTWVudVd4IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6Cisg
ICAgU2VhcmNoUG9wdXBNZW51V3goUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBv
cHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBi
b29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVXeCBtX3BvcHVwOworfTsK
KworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51V3hfaApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwCmluZGV4IDE3NzkyMWMuLjE3MDMxMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJNZW51TGlz
dC5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgog
I2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgpAQCAtODgsOCArODksOCBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojph
ZGp1c3RJbm5lclN0eWxlKCkKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdS
aWdodChMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSgpKSwg
Rml4ZWQpKTsKICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdUb3AoTGVuZ3Ro
KHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwogICAg
IG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS0+
cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oc3R5bGUoKSksIEZpeGVkKSk7Ci0gICAgICAgIAot
ICAgIGlmIChQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKKwor
ICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5zZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpKSB7CiAgICAgICAgIC8vIEl0ZW1zIGluIHRoZSBwb3B1cCB3aWxs
IG5vdCByZXNwZWN0IHRoZSBDU1MgdGV4dC1hbGlnbiBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMs
CiAgICAgICAgIC8vIHNvIHdlIG11c3QgYWRqdXN0IG91ciBvd24gc3R5bGUgdG8gbWF0Y2guCiAg
ICAgICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0VGV4dEFsaWduKExFRlQpOwpAQCAtMjc4
LDcgKzI3OSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5z
aWRlIHRoZSBzaG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5l
ckJsb2NrKCk7CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gUG9wdXBNZW51
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fcG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNo
cm9tZSgpLT5jcmVhdGVQb3B1cE1lbnUodGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0
ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBt
X3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5k
ZXggZDcyZTFhOS4uOTZkZWFkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0y
NCw2ICsyNCw3IEBACiAjaWZuZGVmIFJlbmRlck1lbnVMaXN0X2gKICNkZWZpbmUgUmVuZGVyTWVu
dUxpc3RfaAogCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xp
ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKIApAQCAtMzUsOCArMzYsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBvcHVwTWVudTsKIGNsYXNzIFJlbmRl
clRleHQ7CitjbGFzcyBTZWxlY3RVSUNsaWVudDsKIAogI2lmIEVOQUJMRShOT19MSVNUQk9YX1JF
TkRFUklORykKIGNsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94
LCBwcml2YXRlIExpc3RQb3B1cE1lbnVDbGllbnQgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZDBhYjEwNy4uYTljMTY2YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKSAKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzgs
NyArNDAsNiBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Ny
b2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnUuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgpAQCAtNjIsNyArNjMsNyBAQCBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShO
b2RlKiBub2RlLCBib29sIHBsYWNlaAogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewot
ICAgICAgICBtX3NlYXJjaFBvcHVwLT5kaXNjb25uZWN0Q2xpZW50KCk7CisgICAgICAgIG1fc2Vh
cmNoUG9wdXAtPnBvcHVwTWVudSgpLT5kaXNjb25uZWN0Q2xpZW50KCk7CiAgICAgICAgIG1fc2Vh
cmNoUG9wdXAgPSAwOwogICAgIH0KICAKQEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6YWRkU2VhcmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkK
LSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOwor
ICAgICAgICBtX3NlYXJjaFBvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOwogCiAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2Vu
dFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogfQpAQCAtMTI1LDcgKzEyNiw3IEBA
IHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAg
PSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlz
KTsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0xNDUsMTQgKzE0NiwxNCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5h
bWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3co
YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOwor
ICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hS
ZWN0KHRydWUpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCiB7CiAgICAgQVNTRVJUKG5vZGUoKS0+aXNI
VE1MRWxlbWVudCgpKTsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQ
b3B1cC0+aGlkZSgpOworICAgICAgICBtX3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+aGlkZSgp
OwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3VidHJlZUhhc0NoYW5n
ZWQoKQpAQCAtNjg1LDcgKzY4Niw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fc2VhcmNoUG9wdXBJc1Zp
c2libGUpCi0gICAgICAgIG1fc2VhcmNoUG9wdXAtPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAg
ICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQog
CiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0
YXJ0LCBpbnQgZW5kKQpAQCAtODgzLDcgKzg4NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVu
CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsK
ICAgICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAo
IW1fc2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFy
Y2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQ
b3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVu
dSh0aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNo
ZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXgg
OTJlY2FkZC4uNGZlNGY5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0
cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjQsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMiw3ICszNCw3
IEBAIGNsYXNzIElucHV0RWxlbWVudDsKIGNsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVudTsKK2NsYXNz
IFNlYXJjaFVJQ2xpZW50OwogY2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBUZXh0Q29u
dHJvbElubmVyRWxlbWVudDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWI1OTY2ZC4uZDRhZDU1NyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxs
dWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9u
IHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxl
IGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5z
dGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBu
ZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2Rz
LgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudSk6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6
CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKwogMjAxMC0wNy0yNyAgUGF2ZWwg
UG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
aW5kZXggZDQzZDg4YS4uY2ZhZDQ2ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJOb3RpZmlj
YXRpb25QcmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBvcHVw
TWVudUNocm9taXVtLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCIKICNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25TZXJ2
aWNlLmgiCiAjaWYgVVNFKFY4KQpAQCAtNzY1LDQgKzc2NywxOSBAQCB2b2lkIENocm9tZUNsaWVu
dEltcGw6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAg
ICBtX3dlYlZpZXctPmNsaWVudCgpLT5leGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViTm9kZShub2Rl
KSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxXZWJD
b3JlOjpQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0oY2xp
ZW50KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaAppbmRleCBlODI0MzgxLi40ZGY5YWJiIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMiwxMiArMzMsMTUgQEAKICNkZWZp
bmUgQ2hyb21lQ2xpZW50SW1wbF9oCiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRDaHJvbWl1bS5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogY2xhc3Mg
RmlsZUNob29zZXI7CiBjbGFzcyBIVE1MUGFyc2VyUXVpcmtzOwogY2xhc3MgUG9wdXBDb250YWlu
ZXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIHN0cnVj
dCBXaW5kb3dGZWF0dXJlczsKIH0KQEAgLTE2NSw2ICsxNjksMTAgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1cnNvcik7CiAgICAgdm9pZCBzZXRD
dXJzb3JGb3JQbHVnaW4oY29uc3QgV2ViQ3Vyc29ySW5mbyYgY3Vyc29yKTsKIAorICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZv
KFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDc1
MzRiZmQuLjg4NzNhMjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHBy
ZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJl
c3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAg
ICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9t
ZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5l
dyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpj
cmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oOgorCiAyMDEwLTA3LTI2ICBSYWZhZWwgQW50b2dub2xsaSAgPGFudG9nbm9sbGlAcHJv
ZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAt
LWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCBmZmJkNjQy
Li5mMzdkYTE5IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5jcHAKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuY3BwCkBAIC01LDYgKzUsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IERpZWdvIEdvbnph
bGV6CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVt
cwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ3LDYgKzQ4LDggQEAK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgorI2luY2x1ZGUg
IlNlYXJjaFBvcHVwTWVudUVmbC5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAj
aW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgpAQCAt
NTEzLDQgKzUxNiwxOSBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6ZGlkUmVjZWl2ZVZpZXdwb3J0
QXJndW1lbnRzKEZyYW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcgogICAgIGV3a192aWV3X3Zp
ZXdwb3J0X3NldChtX3ZpZXcsIGFyZ3VtZW50cy53aWR0aCwgYXJndW1lbnRzLmhlaWdodCwgYXJn
dW1lbnRzLmluaXRpYWxTY2FsZSwgYXJndW1lbnRzLm1pbmltdW1TY2FsZSwgYXJndW1lbnRzLm1h
eGltdW1TY2FsZSwgYXJndW1lbnRzLnVzZXJTY2FsYWJsZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xp
ZW50RWZsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRFZmw6OmNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUVmbChjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxT
ZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U2VhcmNoUG9wdXBNZW51RWZsKGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCBjZThhYmQxLi5iMjJkOTgxIDEwMDY0NAot
LS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTMsNiArMyw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xv
Z2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVt
cwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTM3LDYgKzEzOCwxMCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiBmcmFt
ZSwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3Q7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgRXZhc19PYmpl
Y3QqIG1fdmlldzsKICAgICBLVVJMIG1faG92ZXJlZExpbmtVUkw7CiB9OwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MDNiZjEy
Li40MGE5YzU2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5p
ICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJh
dGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjU5MgorCisgICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25z
aWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAg
IGluc3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGll
bnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0
aG9kcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVu
dSk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKwogMjAxMC0w
Ny0xNiAgWmhlIFN1ICA8c3V6aGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwCmluZGV4IDg4NDQwYmEuLjkzOTQxOGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTnVhbnRpIEx0ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSA8Z25zQGdub21lLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0z
MSw5ICszMiwxMiBAQAogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVD
bGllbnQuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVHdGsuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCiAjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnVHdGsuaCIKICNpbmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRl
Y2lzaW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndlYmtpdG5l
dHdvcmtyZXF1ZXN0LmgiCkBAIC02MTYsNCArNjIwLDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpj
YW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUq
IGZyCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xp
Y3ktZGVjaXNpb24tY2FuY2VsbGVkIiwgd2ViRnJhbWUpOwogfQogCitib29sIENocm9tZUNsaWVu
dDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiB0
cnVlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gQ2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVHdGsoY2xpZW50KSk7Cit9CisKK1Bh
c3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUd0ayhjbGllbnQpKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXgg
Y2U1YzVhNy4uM2Y3NmQxOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xn
ZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjIsOSArMjMsMTUgQEAKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IktVUkwuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnUuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsKIAor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworfQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogICAgIGNsYXNzIENocm9tZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpD
aHJvbWVDbGllbnQgewpAQCAtMTIyLDYgKzEyOSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYlZpZXcq
IG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S1VSTCBtX2hvdmVyZWRMaW5rVVJMOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cK
aW5kZXggODQxYTk0Yy4uY2ZkZGRmMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDct
MjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFj
dG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50
IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQ
b3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJp
dCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBs
ZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEhhaWt1OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50SGFpa3U6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKwogMjAxMC0wNy0xNiAgWmhlIFN1ICA8c3V6
aGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNw
cCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKaW5k
ZXggZDE4Yjg0ZC4uNmQ2NGFjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwuY29tPiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNSw2ICsz
Niw4IEBACiAjaW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVIYWlrdS5oIgor
I2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUhhaWt1LmgiCiAKICNpbmNsdWRlIDxBbGVydC5oPgog
I2luY2x1ZGUgPFN0cmluZy5oPgpAQCAtMzgwLDUgKzM4MywyMCBAQCBQYXNzT3duUHRyPEhUTUxQ
YXJzZXJRdWlya3M+IENocm9tZUNsaWVudEhhaWt1OjpjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCkK
ICAgICByZXR1cm4gMDsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFz
c1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEhhaWt1OjpjcmVhdGVQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
b3B1cE1lbnVIYWlrdShjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IENocm9tZUNsaWVudEhhaWt1OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1l
bnVIYWlrdShjbGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCBiL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCmluZGV4IDk2M2U3
MmYuLjM4ZmVmMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBa
YWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2
ZW5nb29kIDxsZWF2ZW5nb29kQGdtYWlsLmNvbT4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTI4LDYgKzEyOSwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUq
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSk7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAjaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBD
YWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzQ3N2IxNy4uMTIz
OTJjYyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1
aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24g
dG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUg
Zm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0
YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5l
ZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKwogMjAxMC0wNy0yNyAgU3RldmUgQmxvY2sgIDxz
dGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzA3
ZDA4MC4uZmEyOWIzMiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2Nyw2
ICsxNjcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiop
OwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIHsgfQogCisgICAg
dmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdl
YkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBXZWJWaWV3ICptX3dlYlZp
ZXc7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpp
bmRleCBlYjU2MjQwLi5lOTNlYTA5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC02MiwxMiArNjIsMTYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnVNYWMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVu
dU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lu
ZG93RmVhdHVyZXMuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYv
VmVjdG9yLmg+CiAKKworCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2ltcG9y
dCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjZW5kaWYKQEAgLTcyNCw2ICs3MjgsMjEgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvcm1EaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5v
ZGUpCiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3Jt
RGlkQmx1ck5vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CiB9
CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlBv
cHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1
cE1lbnVNYWMoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNl
YXJjaFBvcHVwTWVudU1hYyhjbGllbnQpKTsKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGNkZTVhNWIu
LmExMTYyMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8
bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlv
biB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjU5MgorCisgICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJs
ZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGlu
c3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQg
bmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9k
cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlUG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFyY2hQb3B1
cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIw
MTAtMDctMjcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCAyYzY0YTc4Li43OTEwYzFmIDEwMDY0NAot
LS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTEsNiArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KICAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC00
NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJOb3Rp
ZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRRdC5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCiAjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCiAjaW5j
bHVkZSAiUXRNYWVtb1dlYlBvcHVwLmgiCiAjZWxzZQpAQCAtNTIsNiArNTQsNyBAQAogI2VuZGlm
CiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5o
IgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldpbmRvd0Zl
YXR1cmVzLmgiCkBAIC02NDQsNCArNjQ3LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmRpZFJl
Y2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSogZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJnCiAg
ICAgZW1pdCBtX3dlYlBhZ2UtPnZpZXdwb3J0Q2hhbmdlUmVxdWVzdGVkKGhpbnRzKTsKIH0KIAor
Ym9vbCBDaHJvbWVDbGllbnRRdDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9t
ZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVRdChjbGllbnQpKTsKK30KKwor
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVRdChjbGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRl
eCA3MGI0YTI1Li4wNmFiNWI4IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBS
dXNpbiA8emFja0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKQEAgLTE3Niw2ICsxNzcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNNaW5pbWl6ZWQoKTsKICNlbmRpZgogCisgICAgICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogICAgICAgICBR
dEFic3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNlbGVjdFBvcHVwKCk7CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSosIGNvbnN0IFZpZXdwb3J0
QXJndW1lbnRzJikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dl
YktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDg2NzBlMjYuLmI5NTVlZjQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAg
QXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBN
ZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorCiAyMDEwLTA3LTI3ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDczNTMyYTYuLjJl
OWJhNWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDYgKzU2LDggQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb3B1cE1lbnVX
aW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudVdpbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNwcmFnbWEgd2FybmluZyhwb3ApCiAKQEAgLTg2
OCwzICs4NzEsMTggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9k
ZShOb2RlKikKIAogI2VuZGlmCiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1Bhc3NS
ZWZQdHI8UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVw
TWVudVdpbihjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNs
aWVudCkpOworfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCBlNzg0NWE5Li5lNzE3ZWYxIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2NSw2ICsxNjYs
MTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVy
KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlcio+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRl
LmdldCgpKTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiBwcml2
YXRlOgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAzMmZm
NmZlLi40NGE1NjAzIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGlu
aSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFy
YXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9u
c2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAg
ICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xp
ZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1l
dGhvZHMuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6Y3JlYXRlUG9w
dXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwog
MjAxMC0wNy0xNiAgWmhlIFN1ICA8c3V6aGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guY3BwCmluZGV4IGQ4MWEyMGMuLjI1MzEyYjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAorKysgYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA3IEtldmluIE9sbGl2aWVyIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0zOCw2ICszOSw4IEBACiAj
aW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVXeC5oIgorI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudVd4LmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKIAogI2luY2x1
ZGUgPHN0ZGlvLmg+CkBAIC00NTgsNCArNDYxLDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIENocm9tZUNsaWVudFd4OjpzZWxlY3RJ
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
CitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50V3g6OmNyZWF0ZVBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFBvcHVwTWVudVd4KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
Q2hyb21lQ2xpZW50V3g6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVd4
KGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
aAppbmRleCA0YjE1NmVkLi41ZjIyY2JlIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEtl
dmluIE9sbGl2aWVyIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0xNDEsNiArMTQyLDEwIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZy
YW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KIAorICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgd3hXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YTBmZjc5Li5lYmY1MmQzIDEwMDY0NAot
LS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ0IEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAg
IENsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5oZXJpdCBmcm9t
IFBvcHVwTWVudSBhbmQKKyAgICAgICAgU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6V2ViUG9wdXBNZW51KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUG9wdXBNZW51Ojp+V2ViUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpoaWRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpXZWJTZWFyY2hQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OnBvcHVwTWVudSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51Lmg6IEFkZGVk
LgorCisgICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJv
dmlkaW5nIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRv
IGJlIGNoYW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9w
dXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisKKyAgICAgICAgYnVpbGQgaXNzdWVzOgorCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoK
KwogMjAxMC0wNy0yNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDBkZWQ0NWEuLjhjMmZlMzYgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTUsNiArMjU1LDEwIEBACiAJCUJDRjY5
RkEzMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUZBMTExNzZEMDE0MDA0NzFB
NTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuY3BwICovOyB9OwogCQlCQ0Y2OUZBOTExNzZEMUNCMDA0
NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlv
bkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CUJDRjY5RkFBMTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5RkE4MTE3NkQxQ0Iw
MDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmNwcCAqLzsgfTsKKwkJRDNCOTQ4NDYxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmNwcCAqLzsgfTsKKwkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVu
dS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4
NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OworCQlEM0I5NDg0ODEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovOyB9OworCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJC
MzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9w
dXBNZW51LmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKIAkJRTFFRTUzRTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLzsgfTsKIAkJRTFFRTU1RjQxMUY4RjE4OTAw
Q0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRUU1NUYzMTFGOEYxODkwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwpAQCAtNTQy
LDYgKzU0NiwxMCBAQAogCQlCQ0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlv
bkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTmF2aWdh
dGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y2OUZBNzExNzZE
MUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS05hdmlnYXRpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDRjY5RkE4MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTmF2aWdhdGlvbkRhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyog
V2ViUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQjk0ODQzMTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQz
Qjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VhcmNoUG9wdXBNZW51LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlNlYXJjaFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
ZWFyY2hQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMx
MUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NC
RUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTVGMzExRjhGMTg5MDBDQ0JFRTQg
LyogV0tCdW5kbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1
bmRsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjcsNiArODM1LDEw
IEBACiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5o
ICovLAogCQkJCTFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwICovLAogCQkJCTFBM0U3MzVGMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCAqLywKKwkJCQlEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBN
ZW51LmNwcCAqLywKKwkJCQlEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51
LmggKi8sCisJCQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgKi8sCisJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVw
TWVudS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJDb3JlU3VwcG9ydDsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjgxLDYgKzEyOTMsOCBAQAogCQkJCUUxRUU1NjMwMTFGOEY2
QUEwMENDQkVFNCAvKiBXS0J1bmRsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjA0OUU2
MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZUZyYW1lUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNGMDQ5RTcxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJj
aFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNDc4LDYgKzE0OTIsOCBAQAogCQkJCUUx
RUU1M0U3MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRTU1RjgxMUY4RjFCQzAwQ0NCRUU0IC8qIFdLQnVu
ZGxlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRTU2NTYxMUY4RjcxNzAwQ0NCRUU0
IC8qIFdLQnVuZGxlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0I5NDg0NjExRkY0QjY1
MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzQjk0ODQ4
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDIzMjU4MDkuLjE5NjdlNjkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zNCw4ICsz
NCwxMCBAQAogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oIgorI2luY2x1ZGUg
IldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CkBAIC00NjgsNiArNDcwLDIxIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlkQmx1cihjb25zdCBOb2RlKikKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYlNlYXJjaFBvcHVwTWVudShjbGllbnQpKTsKK30KKwogUGFzc093blB0cjxI
VE1MUGFyc2VyUXVpcmtzPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3Mo
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGQ0ODdiNC4uYmQ2NzFiMyAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMTYyLDYgKzE2MiwxMCBAQCBwcml2YXRlOgogICAgIAogICAgIHZpcnR1YWwg
UGFzc093blB0cjxXZWJDb3JlOjpIVE1MUGFyc2VyUXVpcmtzPiBjcmVhdGVIVE1MUGFyc2VyUXVp
cmtzKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2U3MzhjCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
UG9wdXBNZW51Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQb3B1cE1lbnU6
OldlYlBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1f
cG9wdXBDbGllbnQoY2xpZW50KQoreworfQorCitXZWJQb3B1cE1lbnU6On5XZWJQb3B1cE1lbnUo
KQoreworfQorCisKK3ZvaWQgV2ViUG9wdXBNZW51OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAg
ICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBXZWJQb3B1cE1lbnU6OnNob3coY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5k
ZXgpCit7CisKK30KKwordm9pZCBXZWJQb3B1cE1lbnU6OmhpZGUoKQoreworfQorCit2b2lkIFdl
YlBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQoreworfQorCit9CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMDY1NTFjOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV2ViUG9wdXBNZW51X2gKKyNkZWZpbmUgV2Vi
UG9wdXBNZW51X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJQb3B1cE1lbnUgOiBwdWJsaWMgV2ViQ29yZTo6UG9wdXBNZW51IHsKK3B1YmxpYzoK
KyAgICBXZWJQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgfldlYlBvcHVwTWVudSgp
OworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNv
cmU6OkZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
Y29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCogbV9wb3B1cENsaWVudDsKK307CisKK30KKworI2VuZGlmIC8vIFdlYlBvcHVwTWVudV9oCmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9w
dXBNZW51LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZjI1MWEK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU2VhcmNoUG9wdXBNZW51OjpXZWJTZWFyY2hQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNs
aWVudCkKK3sKK30KKworUG9wdXBNZW51KiBXZWJTZWFyY2hQb3B1cE1lbnU6OnBvcHVwTWVudSgp
Cit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCit2b2lkIFdlYlNlYXJjaFBvcHVwTWVudTo6
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IFdlYkNvcmU6OkF0b21pY1N0cmluZyYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK3sKK30KKwordm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYp
Cit7Cit9CisKK2Jvb2wgV2ViU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xMTgzM2UwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2lmbmRlZiBXZWJTZWFyY2hQb3B1cE1lbnVfaAorI2RlZmluZSBXZWJT
ZWFyY2hQb3B1cE1lbnVfaAorCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVk
ZSAiV2ViUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZWFy
Y2hQb3B1cE1lbnUgOiBwdWJsaWMgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoK
KyAgICBXZWJTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRT
ZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+
JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToK
KyAgICBXZWJQb3B1cE1lbnUgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFdlYlNlYXJj
aFBvcHVwTWVudV9oCmRpZmYgLS1naXQgYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IDdhNTQ3ZDguLjcyZTMyYTMgMTAwNzU1Ci0t
LSBhL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1dlYktpdDIvd2luL1dlYktpdDIu
dmNwcm9qCkBAIC01NTksNiArNTU5LDIyIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJJbnNwZWN0b3JDbGllbnQuaCINCiAJCQkJCT4NCiAJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdl
YkNvcmVTdXBwb3J0XFdlYlBvcHVwTWVudS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dFxXZWJQb3B1cE1lbnUuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYlNlYXJjaFBv
cHVwTWVudS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJTZWFyY2hQb3B1cE1l
bnUuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KIAkJCQk8RmlsdGVyDQogCQkJCQlOYW1lPSJ3
aW4iDQogCQkJCQk+DQotLSAKMS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62735</attachid>
            <date>2010-07-27 13:19:59 -0700</date>
            <delta_ts>2010-07-27 17:04:47 -0700</delta_ts>
            <desc>patch 7</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>186163</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBiZTI1YzJlNDAyOTA3NmQ4NGUwMDJjZjRjNzE5NTkyNjJmZDYwNDUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMjcgSnVsIDIwMTAgMTU6NTk6NDAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51IGhhdmUgYmVlbiBtYWRlIHB1cmUgdmlydHVhbC4KCiogcGxhdGZvcm0vUG9wdXBNZW51
Lmg6CihXZWJDb3JlOjpQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgoqIHBsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojp+U2VhcmNoUG9wdXBNZW51KToK
CkNsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHlDb250cm9sU2luZ2xlTGluZSBo
YXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CihXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3ZXJlIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBpbnN0YW5jZXMgb2YgY2xhc3NlcwpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCgoqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKFdlYkNvcmU6OkVtcHR5UG9w
dXBNZW51OjpoaWRlKToKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCk6CihXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CihXZWJDb3Jl
OjpFbXB0eVNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6RW1wdHlTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpFbXB0eVNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudSk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlUG9wdXBN
ZW51KToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKiBwYWdlL0No
cm9tZS5oOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CgpPcmlnaW5hbCBjb250ZW50cyBvZiBmaWxl
cyBQb3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmggaGF2ZSBiZWVuIHNwbGl0ZWQKaW4g
c2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFguaCBhbmQg
U2VhcmNoUG9wdXBNZW51WFhYLmgpLgpFYWNoIG9mIG5ldyB0aGUgZmlsZXMgY29udGFpbiB0aGUg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1lbnUgb3IKU2VhcmNoUG9w
dXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtLgoK
YnJldzoKCiogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNvcmU6OlBvcHVw
TWVudUJyZXc6OlBvcHVwTWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6Omhp
ZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL2JyZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OmNsaWVudCk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVCcmV3OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgoKY2hy
b21pdW06CgoqIFdlYkNvcmUuZ3lwaToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0p
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSk6CihXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQp
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQpOgoqIHBsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJv
bWl1bTo6Y2xpZW50KToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0pOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSk6
CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMpOgoqIHBsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmg6IEFkZGVkLgoKZWZsOgoKKiBwbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51
RWZsKToKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFk
ZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgoqIHBsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQ
b3B1cE1lbnVFZmwpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51RWZsOjplbmFibGVkKToKKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmg6IEFkZGVkLgoKZ3RrOgoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKToKKFdl
YkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVudUd0ayk6CihXZWJDb3JlOjpQb3B1cE1lbnVH
dGs6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKFdlYkNvcmU6OlBvcHVw
TWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpkaXNj
b25uZWN0Q2xpZW50KToKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQp
OgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQpOgooV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbik6CihXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKToKKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgooV2Vi
Q29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgoqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVH
dGspOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmg6IEFk
ZGVkLgoKaGFpa3U6CgoqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcDoKKFdlYkNv
cmU6OkhhaWt1UG9wdXA6OkhhaWt1UG9wdXApOgooV2ViQ29yZTo6SGFpa3VQb3B1cDo6fkhhaWt1
UG9wdXApOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KToKKFdlYkNv
cmU6OlBvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UpOgooV2ViQ29yZTo6UG9wdXBNZW51
SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OnNob3cp
OgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmhpZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBwbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5o
OiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKFdl
YkNvcmU6OlBvcHVwTWVudUhhaWt1OjpjbGllbnQpOgoqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBv
cHVwTWVudUhhaWt1LmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSk6CiogcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuaDogQWRkZWQuCgptYWM6CgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmg6IEFkZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNjb25uZWN0Q2xpZW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgooV2ViQ29yZTo6
UG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xl
YXIpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CihXZWJDb3JlOjpQb3B1cE1l
bnVNYWM6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51TWFjOjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJj
aGVzKToKCnF0OgoKKiBXZWJDb3JlLnBybzoKKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6
CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQpOgooV2ViQ29yZTo6UG9wdXBNZW51
UXQ6On5Qb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6
aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgoqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oOgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVRdDo6cG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVj
ZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CiogcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCgp3aW46CgoqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgooV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp+UG9w
dXBNZW51V2luKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmhpZGUpOgooV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp2aXNpYmxlSXRl
bXMpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9j
dXNGaXJzdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmRvd24pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp1cCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Y2xpZW50UmVjdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEp
OgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyk6
CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNsaWVudCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhcik6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46Oml0ZW1I
ZWlnaHQpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3aW5kb3dSZWN0KToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6cG9wdXBIYW5kbGUpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRXYXND
bGlja2VkKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2FzQ2xpY2tlZCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNj
cm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndoZWVsRGVsdGEpOgooV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSk6CihXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKToKKiBwbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNo
UG9wdXBNZW51V2luKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5oOiBBZGRlZC4KCndrOgoKKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6CihXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6UG9wdXBNZW51V3g6On5Q
b3B1cE1lbnVXeCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXeDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51
SXRlbVNlbGVjdGVkKToKKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
aDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6Y2xpZW50KToKKiBwbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNo
UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudVd4Ojpwb3B1cE1lbnUpOgoqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6
IEFkZGVkLgoKQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bwppbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCiogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgoKV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVw
TWVudSk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXQv
d2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6Cgoq
IFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoK
V2ViS2l0MjoKCkNsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdCBmcm9tIFBvcHVwTWVudSBhbmQKU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1
cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViS2l0
OjpXZWJQb3B1cE1lbnU6OnNob3cpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgooV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CihXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6
cG9wdXBNZW51KToKKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMpOgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCgpBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQppbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21l
Q2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCmltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpidWlsZCBpc3N1ZXM6CgoqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjc5ICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDEyICstCiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgMTQgKy0KIFdlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKwogV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrLQogV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsK
IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
OSArCiBXZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oICAgICAgICAgICAgICAgICAgICAgICB8
ICAxNzYgKy0tLS0tLS0tLS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCAg
ICAgICAgICAgICAgICAgfCAgIDIxICstCiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51
QnJldy5jcHAgICAgICAgICAgICB8ICAgMjYgKystCiBXZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9w
dXBNZW51QnJldy5oICAgICAgICAgICAgICB8ICAgNTQgKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuY3BwICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRm
b3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCAgICB8ICAgMjMgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaCAgICAgIHwgICAxOSAr
KwogLi4uL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCAgfCAg
IDE4ICstCiAuLi4vcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCAg
ICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwICAgICAg
ICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oICAg
ICAgICAgICAgICAgIHwgICA1NCArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuY3BwICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJj
aFBvcHVwTWVudUVmbC5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAgICAgICAgICAgICAgIHwgICAyNSArLQogV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUG9wdXBNZW51R3RrLmggICAgICAgICAgICAgICAgfCAgIDY3ICsrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwICAgICAgICB8ICAgMTkgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oICAgICAgICAgIHwgICA0NCAr
KysKIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwICAgICAgICAgIHwg
ICAzMSArKy0KIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaCAgICAgICAg
ICAgIHwgICA1NiArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhh
aWt1LmNwcCAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBN
ZW51SGFpa3UuaCAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVu
dU1hYy5oICAgICAgICAgICAgICAgIHwgICA2MiArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UG9wdXBNZW51TWFjLm1tICAgICAgICAgICAgICAgfCAgIDIyICstCiBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gICAgICAgICB8ICAgMTggKy0KIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwICAgICAgICAgICAgICAgIHwgICAyNSArLQog
V2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oICAgICAgICAgICAgICAgICAgfCAgIDQ5
ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggICAgICAgICAg
IHwgICAgMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgICAg
ICAgICAgfCAgIDIwICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0Lmgg
ICAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4u
Y3BwICAgICAgICAgICAgICB8ICAgNjUgKysrLS0tCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uaCAgICAgICAgICAgICAgICB8ICAgOTggKysrKysrKwogV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcCAgICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3Bs
YXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJD
b3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcCAgICAgICAgICAgICAgICB8ICAgMjkgKy0K
IFdlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaCAgICAgICAgICAgICAgICAgIHwgICA2
NCArKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAgICAgICAg
ICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmggICAg
ICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAg
ICAgICAgICAgICAgICB8ICAgIDcgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmggICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcCAgfCAgIDE3ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAgICB8ICAgIDQgKy0KIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCAgICAgICAgICAgICB8ICAgIDggKwogV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsr
CiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgICAgICB8ICAg
MTggKysKIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggICAgICAg
IHwgICAgNSArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcCAgICAgIHwgICAxOSArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCAgICAgICAgfCAgIDExICsKIFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmNwcCAgfCAgIDE4ICsrCiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICB8ICAgIDUgKwogV2ViS2l0L21hYy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgICAgICB8ICAgIDYgKy0KIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAgICAgIHwgICAyMSArKy0KIFdl
YktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyAr
KwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCAgICAgICAgfCAg
IDE4ICsrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAg
ICB8ICAgIDUgKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgICAgICB8ICAgMTggKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggICAgICAgIHwgICAgNSArCiBXZWJLaXQvd3gvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcCAgICAgICAgIHwgICAxOCArKwogV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaCAgICAgICAgICAgfCAgICA1ICsKIFdlYktpdDIvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MSArKysKIFdlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxNiArKwogLi4uL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgIDE3ICsrCiAu
Li4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8ICAgIDQg
KwogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgfCAg
IDU2ICsrKysKIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
aCAgIHwgICA0OCArKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNw
cCAgICAgICAgICB8ICAgNTAgKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmggfCAgIDQ0ICsrKwogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrCiA4NyBmaWxlcyBjaGFuZ2VkLCAyMjAy
IGluc2VydGlvbnMoKyksIDM4MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZs
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVu
dUd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1l
bnVIYWlrdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFy
Y2hQb3B1cE1lbnVIYWlrdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUG9wdXBNZW51TWFjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZWFyY2hQb3B1cE1lbnVNYWMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vcXQvUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3Bs
YXRmb3JtL3d4L1BvcHVwTWVudVd4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRm
b3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MGU5OTE4Li5hMzI2ZDk3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4MiBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAg
ICAgICBDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51IGhhdmUgYmVlbiBtYWRl
IHB1cmUgdmlydHVhbC4gCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgICogcGxhdGZvcm0v
U2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6On5T
ZWFyY2hQb3B1cE1lbnUpOgorCisgICAgICAgIENsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJl
bmRlclRleHlDb250cm9sU2luZ2xlTGluZSBoYXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKKyAgICAg
ICAgdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWVudUxpc3Q6OmFkanVzdElubmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoaWRlUG9wdXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgor
CisgICAgICAgIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IHdlcmUgbWFkZSByZXNwb25zaWJsZSBm
b3IgcHJvdmlkaW5nIGluc3RhbmNlcyBvZiBjbGFzc2VzIAorICAgICAgICBQb3B1cE1lbnUgYW5k
IFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eVBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlT
ZWFyY2hQb3B1cE1lbnU6OnBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNlYXJj
aFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
U2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6
RW1wdHlTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6Cisg
ICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWU6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorCisgICAgICAgIE9yaWdpbmFsIGNvbnRlbnRzIG9mIGZpbGVzIFBv
cHVwTWVudS5oIGFuZCBTZWFyY2hQb3B1cE1lbnUuaCBoYXZlIGJlZW4gc3BsaXRlZCAKKyAgICAg
ICAgaW4gc2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFgu
aCBhbmQgU2VhcmNoUG9wdXBNZW51WFhYLmgpLgorICAgICAgICBFYWNoIG9mIG5ldyB0aGUgZmls
ZXMgY29udGFpbiB0aGUgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1l
bnUgb3IgCisgICAgICAgIFNlYXJjaFBvcHVwTWVudSBhbmQgYXJlIHNwZWNpZmljIGZvciB0aGUg
Y29ycmVzcG9uZGluZyBwbGF0Zm9ybS4KKworICAgICAgICBicmV3OgorCisgICAgICAgICogcGxh
dGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUJyZXc6OlBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6
flBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29u
bmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Jy
ZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJy
ZXc6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVj
ZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6U2Vh
cmNoUG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3
OjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFk
ZGVkLgorCisgICAgICAgIGNocm9taXVtOgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudUNocm9taXVtOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNo
cm9taXVtOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVD
aHJvbWl1bTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVt
OjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVDaHJvbWl1bTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dUNocm9taXVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNo
cm9taXVtOjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51Q2hyb21pdW06OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaDogQWRkZWQuCisKKyAgICAgICAgZWZs
OgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6On5Qb3B1cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6aGlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudUVmbDo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9w
dXBNZW51RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6bG9hZFJlY2Vu
dFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oOiBBZGRlZC4K
KworICAgICAgICBndGs6CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUd0azo6UG9wdXBNZW51R3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6flBv
cHVwTWVudUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0
azo6bWVudUl0ZW1BY3RpdmF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpt
ZW51VW5tYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51UG9zaXRp
b25GdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1lbnVSZW1vdmVJ
dGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmg6IEFkZGVkLgorCisgICAgICAgIGhhaWt1OgorCisgICAgICAgICogcGxhdGZv
cm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFpa3VQb3B1
cDo6SGFpa3VQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpIYWlrdVBvcHVwOjp+SGFpa3VQb3B1
cCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UpOgor
ICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6On5Qb3B1cE1lbnVIYWlrdSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVIYWlrdTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5lY3RD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmNsaWVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OlNlYXJjaFBvcHVwTWVudUhhaWt1KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpzYXZlUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6ZW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6cG9wdXBNZW51KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oOiBBZGRlZC4KKwor
ICAgICAgICBtYWM6CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bv
cHVwTWVudU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6ZGlz
Y29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OmNsaWVudCk6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudU1hYzo6UG9wdXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudU1hYzo6flBvcHVwTWVudU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OnVwZGF0
ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZWFyY2hQb3B1
cE1lbnVNYWMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6U2VhcmNoUG9w
dXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6cG9wdXBN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6ZW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OmxvYWRSZWNlbnRTZWFyY2hl
cyk6CisKKyAgICAgICAgcXQ6CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVR
dDo6UG9wdXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6On5Qb3B1cE1l
bnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVRdDo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBk
YXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnVRdDo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNo
UG9wdXBNZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgd2luOgorCisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbik6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aGlk
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5k
U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnZpc2libGVJdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Omxpc3RJbmRleEF0UG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpmb2N1c2VkSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpmb2N1c0ZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Zm9jdXNMYXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZG93bik6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6aW52YWxpZGF0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2lu
OjpjbGllbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aW5jcmVtZW50
V2hlZWxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVs
RGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxUb1JldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwZGF0ZUZyb21FbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6cGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51V2luOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpQb3B1cE1lbnVXbmRQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdp
bjo6d25kUHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Y2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6aXRlbUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Ondp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpwb3B1cEhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldFdhc0NsaWNrZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3YXNDbGlja2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6c2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
d2hlZWxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhckNh
cHR1cmluZ01vdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1l
bnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpTZWFyY2hQ
b3B1cE1lbnVXaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpwb3B1
cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6c2F2ZVJlY2VudFNlYXJjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmg6IEFkZGVk
LgorCisgICAgICAgIHdrOgorCisgICAgICAgICogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVd4Ojp+UG9wdXBNZW51V3gpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V3g6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1T
ZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6aGlkZSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3d4L1BvcHVwTWVudVd4Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OlNlYXJjaFBvcHVwTWVu
dVd4KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjpzYXZlUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OmxvYWRSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6ZW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6cG9wdXBNZW51KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oOiBBZGRlZC4KKworCisKIDIwMTAt
MDctMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2ZmVmYzhiLi4xODg1YzkyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTI0NjAsNiArMjQ2MCw3IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVu
dUd0ay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0v
Z3RrL1JlbmRlclRoZW1lR3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0
ay5jcHAgXApAQCAtMjQ2OCw2ICsyNDY5LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNo
UG9wdXBNZW51R3RrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAgXAogCVdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU291bmRHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRmYmQxNTAuLmQ2Njc5Y2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMjUwLDYgKzI1MCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlMjdjaGVja0ludGVn
cml0eUJlZm9yZU9wZW5pbmdFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U0b3BlbkVSS05T
XzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTVjbG9zZUV2CiBfX1pON1dlYkNv
cmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4SWNvbkRhdGFiYXNlQ2xpZW50RQorX19a
TjdXZWJDb3JlMTJQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19aTjdX
ZWJDb3JlMTJQcmludENvbnRleHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlGbG9h
dFNpemVFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDE2aXNQYWdlQm94VmlzaWJsZUVQTlNf
NUZyYW1lRWkKQEAgLTQwOCw2ICs0MDksNyBAQCBfX1pON1dlYkNvcmUxN25hbWVGb3JDdXJzb3JU
eXBlRU5TXzZDdXJzb3I0VHlwZUUKIF9fWk43V2ViQ29yZTE3b3BlblRlbXBvcmFyeUZpbGVFUEtj
UmkKIF9fWk43V2ViQ29yZTE4ZGVwcmVjYXRlZFBhcnNlVVJMRVJLTlNfNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FCitfX1pO
N1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9f
Wk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5pbWF0aW9uc0VQTlNfOERv
Y3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNwZW5kQW5pbWF0
aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMjBw
YXVzZUFuaW1hdGlvbkF0VGltZUVQTlNfMTJSZW5kZXJPYmplY3RFUktOU182U3RyaW5nRWQKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggYWFmYjIyMi4uNmNiNWZjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIxMjIsNiArMjEyMiw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bU1hYy5tbScsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbi5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVt
LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2hhcmVkVGltZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NvdW5kQ2hyb21pdW1Q
b3NpeC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NvdW5kQ2hyb21pdW1X
aW4uY3BwJywKQEAgLTI2MTQsNiArMjYxNSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9QbGF0Zm9ybU1v
dXNlRXZlbnRNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVl
bk1hYy5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbScsCkBAIC0yNjIxLDYgKzI2MjMsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
bWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2Vh
cmNoUG9wdXBNZW51TWFjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1
cE1lbnVNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMu
bW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbScsCkBAIC0y
NzcxLDYgKzI3NzQsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BsYXRmb3JtTW91c2VF
dmVudFF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
cXQvUVdlYlBvcHVwLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUVdlYlBvcHVwLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwJywKQEAgLTI3ODEs
NiArMjc4NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2Nyb2xsYmFyVGhlbWVRdC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1Njcm9sbGJhclRoZW1lUXQuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9xdC9TaGFyZWRCdWZmZXJRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NoYXJl
ZFRpbWVyUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCcsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCAwNzUxODA5Li5jMGRjZDE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MDUsNiArMTcwNSw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCiAgICAgcGxhdGZv
cm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2lu
dC5oIFwKKyAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuaCBcCiAgICAgcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaCBcCiAgICAgcGxhdGZv
cm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggXApAQCAtMTcxNCw2ICsxNzE1LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFyLmggXAogICAgIHBsYXRmb3JtL1Njcm9sbGJh
clRoZW1lQ29tcG9zaXRlLmggXAogICAgIHBsYXRmb3JtL1Njcm9sbFZpZXcuaCBcCisgICAgcGxh
dGZvcm0vU2VhcmNoUG9wdXBNZW51LmggXAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIFwK
ICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NR
TGl0ZUZpbGVTeXN0ZW0uaCBcCkBAIC0zMjg1LDYgKzMyODcsOCBAQCBIRUFERVJTICs9IFwKICAg
ICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggXAogICAg
IC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaCBcCkBAIC0zMzU3LDYgKzMzNjEsOCBAQCBTT1VSQ0VTICs9IFwKICAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkJhY2tGb3J3YXJkQ29udHJvbGxlckNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCiAgICAg
Li4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcCBc
CiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhLmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDg5YzA3ZDUuLjAx
ZWQ4Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjI0MTUsOCAr
MjI0MTUsOCBAQAogCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNlY3VyaXR5
T3JpZ2luLmgiDQogCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTZXR0aW5ncy5jcHAiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQpAQCAtMjM3MjAsNiArMjM3MjAsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0Zp
bGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxQb3B1
cE1lbnVXaW4uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVtZVNhZmFyaS5jcHAiDQogCQkJCQk+
DQogCQkJCTwvRmlsZT4NCkBAIC0yMzc0MCw2ICsyMzc0NCwxMCBAQAogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNl
YXJjaFBvcHVwTWVudVdpbi5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNoYXJlZEJ1ZmZlcldpbi5jcHAiDQogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDk0NWFhNWQuLjIwM2RmZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC00Miw3ICs0Miw3IEBACiAJCTA2NUFENEY1MEIwQzJFREEwMDVB
MkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjIwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDY1QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMzBC
MEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMDY1
QUQ0RjcwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjQwQjBDMkVEQTAw
NUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA2NjhFMThCMEFERDk2MjQwMDQxMjhFMCAvKiBQ
b3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJMDY2OEUx
OEIwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVw
TWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA2NjhFMTkwMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4RTBBREQ5NjQwMDA0MTI4
RTAgLyogUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQkwNjZDNzcyQjBBQjYwM0I3MDAyMzhDQzQg
LyogRmlsZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NkM3NzJEMEFCNjAz
RDIwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJDMEFCNjAzRDIwMDIzOENDNCAvKiBGaWxlQ2hv
b3Nlck1hYy5tbSAqLzsgfTsKQEAgLTM1ODIsMTIgKzM1ODIsMTIgQEAKIAkJQUI0Q0I0RUIwQjhC
REEzRDAwOUY0MEIwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNENCNEVBMEI4QkRBM0QwMDlGNDBC
MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggKi87IH07CiAJCUFCNjdEMUE4MDk3RjNB
RTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVu
ZGVyVGV4dENvbnRyb2wuY3BwICovOyB9OwogCQlBQjY3RDFBOTA5N0YzQUUzMDBGOTM5MkUgLyog
UmVuZGVyVGV4dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFCNjdEMUE3MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5o
ICovOyB9OwotCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA4ODBC
MzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi87IH07CisJCUFCNzE3MDg5MEIz
MTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFy
Y2hQb3B1cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBQjcxNzBBMDBCMzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwOUYw
QjMxMTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSAqLzsgfTsKIAkJQUJBRjIy
MDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQUYyMjA3MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJv
bWVNYWMubW0gKi87IH07CiAJCUFCQjU0MTlFMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0
Qm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFC
QjU0MTlDMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmNwcCAqLzsgfTsKIAkJQUJC
NTQxOUYwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0MTlEMEFDRERGRTQwMDI4MjBFQiAv
KiBSZW5kZXJMaXN0Qm94LmggKi87IH07Ci0JCUFCQzEyODc3MEIzM0FBNkQwMEM2OTNENSAvKiBQ
b3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLzsg
fTsKKwkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJDMTI4NzYwQjMzQUE2
RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFCRERGRTc5MEE1QzZFNzAwMEEzRTExRCAvKiBSZW5k
ZXJNZW51TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQkRERkU3MzBBNUM2RTZGMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuY3BwICovOyB9
OwogCQlBQkRERkU3QTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCRERGRTc0MEE1QzZFNzAw
MEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oICovOyB9OwogCQlBQkZFN0UxMjBEMzJGQUY2MDA2
NkY0RDIgLyogTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJGRTdFMTAwRDMyRkFGNTAwNjZGNEQyIC8qIE1lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKQEAgLTUwMDgsNiArNTAwOCw4IEBACiAJCUQyM0NB
NTVEMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUg
LyogSlNSYW5nZUV4Y2VwdGlvbi5oICovOyB9OwogCQlEMjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUg
LyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlv
bi5jcHAgKi87IH07CiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1
NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CisJCUQzOUQwMDZE
MTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1
cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkw
N0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAv
KiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwICovOyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50
T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5o
ICovOyB9OwpAQCAtMTA2NzYsNiArMTA2NzgsOCBAQAogCQlEMjNDQTU1QzBBQjBFQUFFMDA1MTA4
QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjND
QTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4
Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDM5RDAwNkMxMUY4RTMwODAwNjA0
MUYyIC8qIFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
b3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDM5RDAwOUMxMUY5
MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyMjIyLDEwICsxMjIyNiwxMiBAQAogCQkJCTRCMjcwOTgxMEFGMkU1RTAwMDY1
MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovLAogCQkJCTkzNUM0NzZGMDlBQzRENzMwMEE2QUFC
NCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnRNYWMubW0gKi8sCiAJCQkJQkM5NEQxMDcwQzI3NEY4ODAw
NkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovLAorCQkJCUQzOUQwMDZDMTFGOEUzMDgw
MDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAqLywKIAkJCQkwNjY4RTE4RTBBREQ5NjQwMDA0MTI4
RTAgLyogUG9wdXBNZW51TWFjLm1tICovLAogCQkJCUU0RDY4Nzc2MEVEN0FFM0QwMDZFQTk3OCAv
KiBQdXJnZWFibGVCdWZmZXJNYWMuY3BwICovLAogCQkJCTQ0N0Q2OTAxMEZBNjI2ODEwMDE1Q0NC
MSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLywKIAkJCQk0NDdENjkwMjBGQTYyNjgx
MDAxNUNDQjEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tICovLAorCQkJCUQzOUQwMDlD
MTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLywKIAkJCQkxQ0UyNEY5
NjBEN0NBRjBFMDA3RTA0QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1tICovLAogCQkJCUJDQUE5MEMy
MEE3RUJBNjAwMDhCMTIyOSAvKiBTY3JvbGxiYXIuY3BwICovLAogCQkJCUJDOEI4NTNDMEU3QzdG
MTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTk4NDcsNiArMTk4NTMs
OCBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE3MkUwMTExMzZFOENFMDA2MkE1MzMgLyogWm9vbU1v
ZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzOUQwMDZEMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1
cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUQzOUQwMDlEMTFGOTA3RTYwMDYwNDFGMiAv
KiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApp
bmRleCA5OTM4YmJjLi5lMjcxZmFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9y
ZykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zOSw3ICs0MCw5IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5IYWx0ZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKIC8qCiAgVGhpcyBmaWxlIGhvbGRzIGVtcHR5IENs
aWVudCBzdHVicyBmb3IgdXNlIGJ5IFdlYkNvcmUuCkBAIC01Niw2ICs1OSwyNSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVu
dSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1l
VmlldyosIGludCkge30KKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpIHt9CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkge30KKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENs
aWVudCgpIHt9Cit9OworCitjbGFzcyBFbXB0eVNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBTZWFy
Y2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUo
KSB7IHJldHVybiAmbV9wb3B1cDsgfQorICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSB7fQorICAgIHZp
cnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mcykge30KKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNl
OyB9CisKK3ByaXZhdGU6CisgICAgRW1wdHlQb3B1cE1lbnUgbV9wb3B1cDsKK307CisKIGNsYXNz
IEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+RW1wdHlDaHJvbWVDbGllbnQoKSB7IH0KQEAgLTEwOCw2ICsxMzAsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIHsgcmV0dXJuIGZhbHNlOyB9
CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihu
ZXcgRW1wdHlQb3B1cE1lbnUoKSk7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KCkpOyB9CisKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSB7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4
IDBjNjY5MjUuLjlmZWVhMWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ4
Miw1ICs0ODIsMjAgQEAgYm9vbCBDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tU2Nyb2xsQ29ybmVy
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitib29sIENocm9tZTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQor
eworICAgIHJldHVybiBtX2NsaWVudC0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+
Y3JlYXRlUG9wdXBNZW51KGNsaWVudCk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51
PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVNlYXJjaFBvcHVwTWVudShjbGll
bnQpOworfQorCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA1Mzc0NjhhLi4zMGVk
ZjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNCw2ICsyNSw4IEBACiAjaW5jbHVkZSAiRmlsZUNo
b29zZXIuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkhvc3RXaW5k
b3cuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApA
QCAtNDQsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsK
ICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUG9wdXBNZW51Q2xp
ZW50OwogICAgIGNsYXNzIFN0cmluZzsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBj
bGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CkBAIC0xNDQsNiArMTQ4LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25Q
cmVzZW50ZXIoKSBjb25zdDsgCiAjZW5kaWYKIAorICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIFBhc3NSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAg
IENocm9tZUNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzk1YjI1Yy4uMDRh
Zjc3ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDcgKzI3LDEwIEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlclF1aXJrcy5o
IgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNs
dWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Myw2ICs1
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNz
IE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAg
Y2xhc3MgU3RyaW5nOwogICAgIGNsYXNzIFdpZGdldDsKIApAQCAtMjUyLDYgKzI1NywxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc01pbmltaXplZCgpIHsg
cmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9
IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQogICAgIH07CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnUuaAppbmRleCBkOWQyNzQwLi44ZWJiYTAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL1BvcHVwTWVudS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIx
LDE4MCArMjEsMjIgQEAKICNpZm5kZWYgUG9wdXBNZW51X2gKICNkZWZpbmUgUG9wdXBNZW51X2gK
IAotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
LSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lmZGVmIF9f
T0JKQ19fCi1AY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7Ci0jZWxzZQotY2xhc3MgTlNQb3BVcEJ1
dHRvbkNlbGw7Ci0jZW5kaWYKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJTY3JvbGxi
YXIuaCIKLSNpbmNsdWRlICJTY3JvbGxiYXJDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci10eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7Ci10eXBlZGVmIHN0cnVjdCBIRENfXyog
SERDOwotdHlwZWRlZiBzdHJ1Y3QgSEJJVE1BUF9fKiBIQklUTUFQOwotI2VsaWYgUExBVEZPUk0o
UVQpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7Ci19Ci0j
ZWxpZiBQTEFURk9STShHVEspCi10eXBlZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwotdHlw
ZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwotdHlwZWRlZiBzdHJ1Y3QgX0d0
a1dpZGdldCBHdGtXaWRnZXQ7Ci0jaW5jbHVkZSAiR1JlZlB0ckd0ay5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotI2VsaWYgUExBVEZPUk0oV1gpCi0jaWZk
ZWYgX19XWE1TV19fCi0jaW5jbHVkZSA8d3gvbXN3L3dpbnVuZGVmLmg+Ci0jZW5kaWYKLWNsYXNz
IHd4TWVudTsKLSNpbmNsdWRlIDx3eC9kZWZzLmg+Ci0jaW5jbHVkZSA8d3gvZXZlbnQuaD4KLSNl
bGlmIFBMQVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlBvcHVwTWVudVByaXZhdGUuaCIKLSNl
bGlmIFBMQVRGT1JNKEhBSUtVKQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUG9wdXBNZW51
SGFpa3U7Ci19Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZVZp
ZXc7Ci1jbGFzcyBTY3JvbGxiYXI7CitjbGFzcyBJbnRSZWN0OwogCi1jbGFzcyBQb3B1cE1lbnUg
OiBwdWJsaWMgUmVmQ291bnRlZDxQb3B1cE1lbnU+Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgICAg
ICAgICAgICAgICwgcHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQKLSNlbmRpZgotI2lmIFBMQVRGT1JN
KFdYKQotICAgICAgICAgICAgICAgICwgcHVibGljIHd4RXZ0SGFuZGxlcgotI2VuZGlmCi17Citj
bGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3B1cE1lbnU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKTsgfQotICAg
IH5Qb3B1cE1lbnUoKTsKLSAgICAKLSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9w
dXBDbGllbnQgPSAwOyB9Ci0KLSAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCk7Ci0gICAgdm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21F
bGVtZW50KCk7Ci0gICAgCi0gICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BvcHVwQ2xpZW50OyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBpdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIFNjcm9sbGJhciogc2Ny
b2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KLQotICAgIHN0YXRp
YyBMUENUU1RSIHBvcHVwQ2xhc3NOYW1lKCk7Ci0KLSAgICBib29sIHVwKHVuc2lnbmVkIGxpbmVz
ID0gMSk7Ci0gICAgYm9vbCBkb3duKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0KLSAgICBpbnQgaXRl
bUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbUhlaWdodDsgfQotICAgIGNvbnN0IEludFJl
Y3QmIHdpbmRvd1JlY3QoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd1JlY3Q7IH0KLSAgICBJbnRS
ZWN0IGNsaWVudFJlY3QoKSBjb25zdDsKLQotICAgIGludCB2aXNpYmxlSXRlbXMoKSBjb25zdDsK
LQotICAgIGludCBsaXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0KLSAg
ICBib29sIHNldEZvY3VzZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgaG90VHJhY2tpbmcgPSBmYWxz
ZSk7Ci0gICAgaW50IGZvY3VzZWRJbmRleCgpIGNvbnN0OwotICAgIHZvaWQgZm9jdXNGaXJzdCgp
OwotICAgIHZvaWQgZm9jdXNMYXN0KCk7Ci0KLSAgICB2b2lkIHBhaW50KGNvbnN0IEludFJlY3Qm
IGRhbWFnZVJlY3QsIEhEQyA9IDApOwotCi0gICAgSFdORCBwb3B1cEhhbmRsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcG9wdXA7IH0KLQotICAgIHZvaWQgc2V0V2FzQ2xpY2tlZChib29sIGIgPSB0cnVl
KSB7IG1fd2FzQ2xpY2tlZCA9IGI7IH0KLSAgICBib29sIHdhc0NsaWNrZWQoKSBjb25zdCB7IHJl
dHVybiBtX3dhc0NsaWNrZWQ7IH0KLQotICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGludCBvZmZz
ZXQpIHsgbV9zY3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxPZmZzZXQ7IH0KLQotICAgIGJvb2wgc2Nyb2xsVG9SZXZl
YWxTZWxlY3Rpb24oKTsKLQotICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEp
OwotICAgIHZvaWQgcmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIGludCB3aGVlbERl
bHRhKCkgY29uc3QgeyByZXR1cm4gbV93aGVlbERlbHRhOyB9Ci0KLSAgICBib29sIHNjcm9sbGJh
ckNhcHR1cmluZ01vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3Vz
ZTsgfQotICAgIHZvaWQgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Ny
b2xsYmFyQ2FwdHVyaW5nTW91c2UgPSBiOyB9Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIFBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgUG9wdXBNZW51
Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwotICAgIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lk
IGNsZWFyKCk7Ci0gICAgdm9pZCBwb3B1bGF0ZSgpOwotCi0gICAgUmV0YWluUHRyPE5TUG9wVXBC
dXR0b25DZWxsPiBtX3BvcHVwOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgUXRBYnN0cmFjdFdl
YlBvcHVwKiBtX3BvcHVwOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIC8vIFNjcm9sbEJhckNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCB2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJl
Y3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbGJhckNvcm5lclByZXNlbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotCi0gICAgdm9pZCBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50
UmVjdCYsIEZyYW1lVmlldyopOwotICAgIHZvaWQgaW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KTsK
LQotICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFBvcHVwTWVudVduZFByb2MoSFdORCwgVUlO
VCwgV1BBUkFNLCBMUEFSQU0pOwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQg
bWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgc3RhdGljIHZvaWQg
cmVnaXN0ZXJDbGFzcygpOwotCi0gICAgUmVmUHRyPFNjcm9sbGJhcj4gbV9zY3JvbGxiYXI7Ci0g
ICAgSFdORCBtX3BvcHVwOwotICAgIEhEQyBtX0RDOwotICAgIEhCSVRNQVAgbV9ibXA7Ci0gICAg
Ym9vbCBtX3dhc0NsaWNrZWQ7Ci0gICAgSW50UmVjdCBtX3dpbmRvd1JlY3Q7Ci0gICAgaW50IG1f
aXRlbUhlaWdodDsKLSAgICBpbnQgbV9zY3JvbGxPZmZzZXQ7Ci0gICAgaW50IG1fd2hlZWxEZWx0
YTsKLSAgICBpbnQgbV9mb2N1c2VkSW5kZXg7Ci0gICAgYm9vbCBtX3Njcm9sbGJhckNhcHR1cmlu
Z01vdXNlOwotICAgIGJvb2wgbV9zaG93UG9wdXA7Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAg
SW50UG9pbnQgbV9tZW51UG9zaXRpb247Ci0gICAgR1JlZlB0cjxHdGtNZW51PiBtX3BvcHVwOwot
ICAgIEhhc2hNYXA8R3RrV2lkZ2V0KiwgaW50PiBtX2luZGV4TWFwOwotICAgIHN0YXRpYyB2b2lk
IG1lbnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnUqKTsKLSAgICBz
dGF0aWMgdm9pZCBtZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51Kik7Ci0gICAgc3Rh
dGljIHZvaWQgbWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqLCBnaW50KiwgZ2Jv
b2xlYW4qLCBQb3B1cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9pZCBtZW51UmVtb3ZlSXRlbShHdGtX
aWRnZXQqLCBQb3B1cE1lbnUqKTsKLSNlbGlmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQlJF
V01QKQotICAgIEZyYW1lVmlldyogbV92aWV3OwotI2VsaWYgUExBVEZPUk0oV1gpCi0gICAgd3hN
ZW51KiBtX21lbnU7Ci0gICAgdm9pZCBPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQm
KTsKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFBvcHVwTWVudVByaXZhdGUgcDsKLSNl
bGlmIFBMQVRGT1JNKEhBSUtVKQotICAgIFBvcHVwTWVudUhhaWt1KiBtX21lbnU7Ci0jZW5kaWYK
LQorICAgIHZpcnR1YWwgflBvcHVwTWVudSgpIHt9CisgICAgdmlydHVhbCB2b2lkIHNob3coY29u
c3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBoaWRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpID0gMDsKIH07CiAKIH0KIAotI2Vu
ZGlmCisjZW5kaWYgLy8gUG9wdXBNZW51X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
U2VhcmNoUG9wdXBNZW51LmggYi9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCmlu
ZGV4IDQyODVjZGYuLmQxZWNkMGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNo
UG9wdXBNZW51LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjMsMjQgKzIzLDIxIEBACiAKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXRvbWljU3RyaW5nOwogCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnUg
OiBwdWJsaWMgUG9wdXBNZW51IHsKK2NsYXNzIFNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBSZWZD
b3VudGVkPFNlYXJjaFBvcHVwTWVudT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51KGNsaWVudCkpOyB9Ci0KLSAgICB2b2lkIHNh
dmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotCi0gICAg
Ym9vbCBlbmFibGVkKCk7Ci0gICAgCi1wcml2YXRlOgotICAgIFNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKTsKKyAgICB2aXJ0dWFsIH5TZWFyY2hQb3B1cE1lbnUoKSB7fQorICAgIHZp
cnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpID0gMDsKIH07CiAKIH0KIAotI2VuZGlm
CisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1l
bnVCcmV3LmNwcAppbmRleCBlYjAzYzY2Li4yNGI3Yjg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3
L1BvcHVwTWVudUJyZXcuY3BwCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKICAqIENvcHlyaWdodCAoQykgMjAxMCBDb21wYW55IDEw
MCwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNyArMjQsNyBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnVCcmV3LmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnRCcmV3LmgiCkBAIC0zMiwyMCArMzMsMjUgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIG1lbnVMaXN0
KQorUG9wdXBNZW51QnJldzo6UG9wdXBNZW51QnJldyhQb3B1cE1lbnVDbGllbnQqIG1lbnVMaXN0
KQogICAgIDogbV9wb3B1cENsaWVudChtZW51TGlzdCkKICAgICAsIG1fdmlldygwKQogewogfQog
Ci1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51QnJldzo6flBvcHVwTWVudUJyZXco
KQogewogICAgIC8vIFRlbGwgY2xpZW50IHRvIGRlc3Ryb3kgZGF0YSByZWxhdGVkIHRvIHRoaXMg
cG9wdXAgc2luY2UgdGhpcyBvYmplY3QgaXMKICAgICAvLyBnb2luZyBhd2F5LgogICAgIGhpZGUo
KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVW
aWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUJyZXc6OmRpc2Nvbm5lY3RDbGll
bnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVudUJyZXc6
OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7
CiAgICAgQVNTRVJUKG1fcG9wdXBDbGllbnQpOwogICAgIENocm9tZUNsaWVudEJyZXcqIGNocm9t
ZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudEJyZXcqPih2aWV3LT5mcmFtZSgpLT5w
YWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC01NSw3ICs2MSw3IEBAIHZvaWQgUG9wdXBN
ZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4
KQogICAgIGNocm9tZUNsaWVudC0+Y3JlYXRlU2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5k
ZXgsIHJlY3QpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUJy
ZXc6OmhpZGUoKQogewogICAgIEFTU0VSVChtX3ZpZXcpOwogICAgIENocm9tZUNsaWVudEJyZXcq
IGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudEJyZXcqPihtX3ZpZXctPmZy
YW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKQEAgLTY0LDE0ICs3MCwxNCBAQCB2
b2lkIFBvcHVwTWVudTo6aGlkZSgpCiAgICAgY2hyb21lQ2xpZW50LT5kZXN0cm95U2VsZWN0UG9w
dXAoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9w
dXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0
RnJvbUl0ZW0oY2xpZW50KCktPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51
OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19
CisvLyBib29sIFBvcHVwTWVudUJyZXc6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkK
Ky8vIHsKKy8vICAgICByZXR1cm4gdHJ1ZTsKKy8vIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMmM4OGY5YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vYnJldy9Qb3B1cE1lbnVCcmV3LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgUG9wdXBNZW51QnJld19oCisjZGVmaW5lIFBvcHVwTWVudUJyZXdfaAorCisjaW5j
bHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7
CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudUJyZXcgOiBwdWJsaWMgUG9wdXBN
ZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVudCopOworICAg
IH5Qb3B1cE1lbnVCcmV3KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0
JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVw
Q2xpZW50OworICAgIEZyYW1lVmlldyogbV92aWV3OworCisgICAgUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKK307CisKK30KKworI2Vu
ZGlmIC8vIFBvcHVwTWVudUJyZXdfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3
L1NlYXJjaFBvcHVwTWVudUJyZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBv
cHVwTWVudUJyZXcuY3BwCmluZGV4IDc4MGM3ZTUuLmMyMmNiNzggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwy
OSArMjUsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNo
UG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51QnJldy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIC8vIFNhdmUgdGhlIHBhc3Qgc2VhcmNoZXMgc3RvcmVkIGluICdzZWFy
Y2hJdGVtcycgdG8gYSBkYXRhYmFzZSBhc3NvY2lhdGVkIHdpdGggJ25hbWUnCi12b2lkIFNlYXJj
aFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVC
cmV3OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiB9CiAKIC8vIExvYWQgcGFzdCBzZWFyY2hl
cyBhc3NvY2lhdGVkIHdpdGggJ25hbWUnIGZyb20gdGhlIGRhdGFiYXNlIHRvICdzZWFyY2hJdGVt
cycKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBv
cHVwTWVudUJyZXc6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKIH0KIAogLy8gQ3JlYXRlIGEgc2VhcmNo
IHBvcHVwIG1lbnUgLSBub3Qgc3VyZSB3aGF0IGVsc2Ugd2UgaGF2ZSB0byBkbyBoZXJlCi1TZWFy
Y2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAg
ICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVCcmV3OjpTZWFyY2hQb3B1cE1l
bnVCcmV3KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7
CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBN
ZW51QnJldzo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitQb3B1cE1lbnUq
IFNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVw
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1Nl
YXJjaFBvcHVwTWVudUJyZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
OGVhMTAyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBv
cHVwTWVudUJyZXcuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5k
ZWYgU2VhcmNoUG9wdXBNZW51QnJld19oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUJyZXdfaAor
CisjaW5jbHVkZSAiUG9wdXBNZW51QnJldy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUJyZXcgOiBw
dWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVCcmV3
KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgp
OworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3By
aXZhdGU6CisgICAgUG9wdXBNZW51QnJldyBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8g
U2VhcmNoUG9wdXBNZW51QnJld19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDQ3MDFhNzUuLjkwNTEyMDggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtNDgsNyArNDksNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50
LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNp
bmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5oIgpA
QCAtMTMyMSwyMCArMTMyMSwyMCBAQCBib29sIFBvcHVwTGlzdEJveDo6aXNQb2ludEluQm91bmRz
KGNvbnN0IEludFBvaW50JiBwb2ludCkKIH0KIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8g
UG9wdXBNZW51IGltcGxlbWVudGF0aW9uCisvLyBQb3B1cE1lbnVDaHJvbWl1bSBpbXBsZW1lbnRh
dGlvbgogLy8gCiAvLyBOb3RlOiB5b3UgY2Fubm90IGFkZCBtZXRob2RzIHRvIHRoaXMgY2xhc3Ms
IHNpbmNlIGl0IGlzIGRlZmluZWQgYWJvdmUgdGhlIAogLy8gICAgICAgcG9ydGFiaWxpdHkgbGF5
ZXIuIFRvIGFjY2VzcyBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIG9uIHRoZQogLy8gICAgICAgcG9w
dXAgd2lkZ2V0cywgdXNlIHxwb3B1cFdpbmRvd3wgYWJvdmUuIAogCi1Qb3B1cE1lbnU6OlBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgCitQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBN
ZW51Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50
KGNsaWVudCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUNocm9t
aXVtOjp+UG9wdXBNZW51Q2hyb21pdW0oKQogewotICAgIC8vIFdoZW4gdGhlIFBvcHVwTWVudSBp
cyBkZXN0cm95ZWQsIHRoZSBjbGllbnQgY291bGQgYWxyZWFkeSBoYXZlIGJlZW4KKyAgICAvLyBX
aGVuIHRoZSBQb3B1cE1lbnVDaHJvbWl1bSBpcyBkZXN0cm95ZWQsIHRoZSBjbGllbnQgY291bGQg
YWxyZWFkeSBoYXZlIGJlZW4KICAgICAvLyBkZWxldGVkLgogICAgIGlmIChwLnBvcHVwKQogICAg
ICAgICBwLnBvcHVwLT5saXN0Qm94KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKQEAgLTEzNDUsNyAr
MTM0NSw3IEBAIFBvcHVwTWVudTo6flBvcHVwTWVudSgpCiAvLyB0byBkaXNwbGF5LCBoYW5kbGUg
dGhlIGlucHV0IHRyYWNraW5nIGFuZCBtZW51IGl0ZW0gc2VsZWN0aW9uIGZvciB0aGUgcG9wdXAu
CiAvLyBXaW5kb3dzIGFuZCBMaW51eCBDaHJvbWl1bSBsZXQgb3VyIFdlYktpdCBwb3J0IGhhbmRs
ZSB0aGUgZGlzcGxheSwgd2hpbGUKIC8vIGFub3RoZXIgcHJvY2VzcyBtYW5hZ2VzIHRoZSBwb3B1
cCB3aW5kb3cgYW5kIGlucHV0IGhhbmRsaW5nLgotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3Qg
SW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUNocm9t
aXVtOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogewog
ICAgIGlmICghcC5wb3B1cCkKICAgICAgICAgcC5wb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVh
dGUoY2xpZW50KCksIFBvcHVwQ29udGFpbmVyOjpTZWxlY3QsIGRyb3BEb3duU2V0dGluZ3MpOwpA
QCAtMTM1NiwyMCArMTM1NiwyMSBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKICNlbmRpZgogfQogCi12b2lkIFBvcHVwTWVu
dTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUNocm9taXVtOjpoaWRlKCkKIHsKICAgICBpZiAocC5w
b3B1cCkKICAgICAgICAgcC5wb3B1cC0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dXBk
YXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogewogICAgIHAucG9wdXAtPmxpc3RCb3goKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0K
IAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgCi17IAot
ICAgIHJldHVybiBmYWxzZTsgCisKK3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RD
bGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNo
cm9taXVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgK
aW5kZXggYTg1Y2Y0OS4uYTBhMDUyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uaApAQCAtMzYsNiArMzYsOCBAQAogCiAjaW5jbHVkZSAiRnJhbWVs
ZXNzU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1l
bnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjAxLDYgKzIwMywyMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb3B1cE9wZW47
CiB9OwogCitjbGFzcyBQb3B1cE1lbnVDaHJvbWl1bSA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVi
bGljOgorICAgIFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1
cE1lbnVDaHJvbWl1bSgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYs
IEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29u
bmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENs
aWVudDsKKyAgICBQb3B1cE1lbnVQcml2YXRlIHA7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KK307CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDg5YmZkZGQuLjE4ZTg2YzYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21p
dW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAw
OSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksMjkgKzMwLDM0IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudUNocm9taXVtLmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudUNocm9taXVtOjpTZWFy
Y2hQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9w
dXAoY2xpZW50KQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitQb3B1
cE1lbnUqIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVy
biAmbV9wb3B1cDsKK30KKworYm9vbCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCgp
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNo
UG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUNocm9taXVt
Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGZmM2FmCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1l
bnVDaHJvbWl1bV9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUNocm9taXVtX2gKKworI2luY2x1
ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0gOiBw
dWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bShQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1l
bnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwor
ICAgIAorcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDaHJvbWl1bSBtX3BvcHVwOworfTsKKworfQor
CisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51Q2hyb21pdW1faApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bv
cHVwTWVudUVmbC5jcHAKaW5kZXggOWRjNjk4Ni4uNDAxZjI0ZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9Qb3B1cE1lbnVFZmwuY3BwCkBAIC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4
IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTIyLDI5ICsyMywzMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVFZmwuaCIKIAogI2luY2x1ZGUg
IkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51
Q2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbChQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICwg
bV92aWV3KDApCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVFZmw6
On5Qb3B1cE1lbnVFZmwoKQogewogICAgIC8vIFRlbGwgY2xpZW50IHRvIGRlc3Ryb3kgZGF0YSBy
ZWxhdGVkIHRvIHRoaXMgcG9wdXAgc2luY2UgdGhpcyBvYmplY3QgaXMKICAgICAvLyBnb2luZyBh
d2F5LgogICAgIGhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVj
dCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUVmbDo6
c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsK
ICAgICBBU1NFUlQobV9wb3B1cENsaWVudCk7CiAgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVD
bGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRFZmwqPih2aWV3LT5mcmFtZSgpLT5wYWdl
KCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC01NCw3ICs1Niw3IEBAIHZvaWQgUG9wdXBNZW51
OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQog
ICAgIGNocm9tZUNsaWVudC0+Y3JlYXRlU2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5kZXgs
IHJlY3QpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUVmbDo6
aGlkZSgpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJv
bWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRFZmwqPihtX3ZpZXctPmZyYW1lKCkt
PnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKQEAgLTYzLDE0ICs2NSwxNCBAQCB2b2lkIFBv
cHVwTWVudTo6aGlkZSgpCiAgICAgY2hyb21lQ2xpZW50LT5kZXN0cm95U2VsZWN0UG9wdXAoKTsK
IH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51
RWZsOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRl
bShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpkaXNjb25uZWN0
Q2xpZW50KCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iNmJiNmEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
Zm5kZWYgUG9wdXBNZW51RWZsX2gKKyNkZWZpbmUgUG9wdXBNZW51RWZsX2gKKworI2luY2x1ZGUg
IkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xsYmFyOworY2xhc3MgUG9wdXBNZW51
Q2xpZW50OworCitjbGFzcyBQb3B1cE1lbnVFZmwgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1Ymxp
YzoKKyAgICBQb3B1cE1lbnVFZmwoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUVm
bCgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyos
IGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgp
OworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBG
cmFtZVZpZXcqIG1fdmlldzsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1l
bnVFZmxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKaW5k
ZXggZDE4MTc0Zi4uY2FmZmU1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Vh
cmNoUG9wdXBNZW51RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRU
IC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqICBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC0xOSwyOSArMjAsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCiAK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNl
YXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQot
ICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9wdXBN
ZW51RWZsKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYp
CitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1
cm4gJm1fcG9wdXA7Cit9CisKK3ZvaWQgU2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFy
Y2hQb3B1cE1lbnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBW
ZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFy
Y2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVFZmw6OmVuYWJsZWQo
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjA0Y2IyZTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9TZWFyY2hQb3B1cE1lbnVFZmwuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51RWZsX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51
RWZsX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVw
TWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUVm
bCA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVu
dUVmbChQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1l
bnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwor
Citwcml2YXRlOgorICAgIFBvcHVwTWVudUVmbCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYg
Ly8gU2VhcmNoUG9wdXBNZW51RWZsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3Bw
CmluZGV4IGJmOGNmYjQuLmNhMDY3ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3Rr
LmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWlj
aGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWlsLmNvbQogICogQ29weXJpZ2h0IChDKSAyMDA4IENv
bGxhYm9yYSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw3ICsy
NCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5oIgogCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgpAQCAtMzQsMTIgKzM1LDEyIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCitQb3B1cE1lbnVHdGs6OlBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
ICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1l
bnUoKQorUG9wdXBNZW51R3RrOjp+UG9wdXBNZW51R3RrKCkKIHsKICAgICBpZiAobV9wb3B1cCkg
ewogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV9wb3B1cC5n
ZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgMCwgMCwgdGhpcyk7CkBAIC00Nyw3ICs0
OCw3IEBAIFBvcHVwTWVudTo6flBvcHVwTWVudSgpCiAgICAgfQogfQogCi12b2lkIFBvcHVwTWVu
dTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkK
K3ZvaWQgUG9wdXBNZW51R3RrOjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyog
dmlldywgaW50IGluZGV4KQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAKQEAgLTExMCw0MyAr
MTExLDQzIEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1l
VmlldyogdmlldywgaW50IGluZGV4KQogICAgIGd0a19tZW51X3BvcHVwKG1fcG9wdXAuZ2V0KCks
IDAsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R3RrTWVudVBvc2l0aW9uRnVuYz4obWVudVBvc2l0aW9u
RnVuY3Rpb24pLCB0aGlzLCAwLCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVHdGs6OmhpZGUoKQogewogICAg
IEFTU0VSVChtX3BvcHVwKTsKICAgICBndGtfbWVudV9wb3Bkb3duKG1fcG9wdXAuZ2V0KCkpOwog
fQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVH
dGs6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVt
KGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQordm9pZCBQb3B1cE1lbnVHdGs6OmRpc2Nvbm5lY3RD
bGllbnQoKQogewotICAgIHJldHVybiB0cnVlOworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQog
Ci12b2lkIFBvcHVwTWVudTo6bWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBv
cHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51SXRlbUFjdGl2YXRlZChHdGtN
ZW51SXRlbSogaXRlbSwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5j
bGllbnQoKSk7CiAgICAgQVNTRVJUKHRoYXQtPm1faW5kZXhNYXAuY29udGFpbnMoR1RLX1dJREdF
VChpdGVtKSkpOwogICAgIHRoYXQtPmNsaWVudCgpLT52YWx1ZUNoYW5nZWQodGhhdC0+bV9pbmRl
eE1hcC5nZXQoR1RLX1dJREdFVChpdGVtKSkpOwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVudVVu
bWFwcGVkKEd0a1dpZGdldCosIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpt
ZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VS
VCh0aGF0LT5jbGllbnQoKSk7CiAgICAgdGhhdC0+Y2xpZW50KCktPnBvcHVwRGlkSGlkZSgpOwog
fQogCi12b2lkIFBvcHVwTWVudTo6bWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQq
IHgsIGdpbnQqIHksIGdib29sZWFuKiBwdXNoSW4sIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9w
dXBNZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCogeCwgZ2ludCog
eSwgZ2Jvb2xlYW4qIHB1c2hJbiwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgICp4ID0gdGhh
dC0+bV9tZW51UG9zaXRpb24ueCgpOwogICAgICp5ID0gdGhhdC0+bV9tZW51UG9zaXRpb24ueSgp
OwogICAgICpwdXNoSW4gPSB0cnVlOwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVudVJlbW92ZUl0
ZW0oR3RrV2lkZ2V0KiB3aWRnZXQsIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3Rr
OjptZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqIHdpZGdldCwgUG9wdXBNZW51R3RrKiB0aGF0KQog
ewogICAgIEFTU0VSVCh0aGF0LT5tX3BvcHVwKTsKICAgICBndGtfY29udGFpbmVyX3JlbW92ZShH
VEtfQ09OVEFJTkVSKHRoYXQtPm1fcG9wdXAuZ2V0KCkpLCB3aWRnZXQpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9Qb3B1cE1lbnVHdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmMy
MmU1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3Rr
LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51R3Rr
X2gKKyNkZWZpbmUgUG9wdXBNZW51R3RrX2gKKworI2luY2x1ZGUgIkdSZWZQdHJHdGsuaCIKKyNp
bmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCit0eXBlZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwordHlwZWRlZiBzdHJ1Y3Qg
X0d0a01lbnVJdGVtIEd0a01lbnVJdGVtOwordHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtX
aWRnZXQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3Mg
U2Nyb2xsYmFyOworCitjbGFzcyBQb3B1cE1lbnVHdGsgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1
YmxpYzoKKyAgICBQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVu
dUd0aygpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVu
dCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAg
ICBJbnRQb2ludCBtX21lbnVQb3NpdGlvbjsKKyAgICBHUmVmUHRyPEd0a01lbnU+IG1fcG9wdXA7
CisgICAgSGFzaE1hcDxHdGtXaWRnZXQqLCBpbnQ+IG1faW5kZXhNYXA7CisKKyAgICBQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAg
IHN0YXRpYyB2b2lkIG1lbnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1l
bnVHdGsqKTsKKyAgICBzdGF0aWMgdm9pZCBtZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBN
ZW51R3RrKik7CisgICAgc3RhdGljIHZvaWQgbWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSos
IGdpbnQqLCBnaW50KiwgZ2Jvb2xlYW4qLCBQb3B1cE1lbnVHdGsqKTsKKyAgICBzdGF0aWMgdm9p
ZCBtZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqLCBQb3B1cE1lbnVHdGsqKTsKK307CisKK30KKwor
I2VuZGlmIC8vIFBvcHVwTWVudUd0a19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcAppbmRleCBmYmFhNTI3Li5kZmI4NGFhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKQEAgLTEsNCArMSw2IEBACiAvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTE1LDI5ICsxNywzNCBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIK
KyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVHdGsuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorU2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK1BvcHVwTWVudSogU2VhcmNoUG9w
dXBNZW51R3RrOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwordm9p
ZCBTZWFyY2hQb3B1cE1lbnVHdGs6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudUd0azo6bG9hZFJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgp
Citib29sIFNlYXJjaFBvcHVwTWVudUd0azo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TZWFyY2hQb3B1cE1lbnVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVw
TWVudUd0ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YzJlYTQKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsu
aApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9w
dXBNZW51R3RrX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51R3RrX2gKKworI2luY2x1ZGUgIlBv
cHVwTWVudUd0ay5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUd0ayA6IHB1YmxpYyBTZWFyY2hQb3B1
cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQq
KTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworICAgIAorcHJpdmF0ZToKKyAgICBQ
b3B1cE1lbnVHdGsgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVu
dUd0a19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwCmluZGV4IDVh
ZGJjNjYuLmUzZWRiODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBN
ZW51SGFpa3UuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3Uu
Y3BwCkBAIC0yLDYgKzIsNyBAQAogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHBvcHVwIG1l
bnUgaW1wbGVtZW50YXRpb24gZm9yIDxzZWxlY3Q+IGVsZW1lbnRzIGluIFdlYkNvcmUuCiAgKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIFN0ZXBoYW4gQcOfbXVzIDxzdXBlcnN0aXBwaUBnbXguZGU+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSw3ICsyMiw3IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUg
IlBvcHVwTWVudUhhaWt1LmgiCiAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKIApAQCAtNzIsOSAr
NzMsOSBAQCBwcml2YXRlOgogICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKIH07
CiAKLWNsYXNzIFBvcHVwTWVudUhhaWt1IDogcHVibGljIEJQb3BVcE1lbnUgeworY2xhc3MgSGFp
a3VQb3B1cCA6IHB1YmxpYyBCUG9wVXBNZW51IHsKIHB1YmxpYzoKLSAgICBQb3B1cE1lbnVIYWlr
dShQb3B1cE1lbnVDbGllbnQqIHBvcHVwQ2xpZW50KQorICAgIEhhaWt1UG9wdXAoUG9wdXBNZW51
Q2xpZW50KiBwb3B1cENsaWVudCkKICAgICAgICAgOiBCUG9wVXBNZW51KCJXZWJDb3JlIFBvcHVw
IiwgdHJ1ZSwgZmFsc2UpCiAgICAgICAgICwgbV9wb3B1cENsaWVudChwb3B1cENsaWVudCkKICAg
ICAgICAgLCBtX0hhbmRsZXIocG9wdXBDbGllbnQpCkBAIC04Niw3ICs4Nyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgU2V0QXN5bmNBdXRvRGVzdHJ1Y3QoZmFsc2UpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgflBvcHVwTWVudUhhaWt1KCkKKyAgICB2aXJ0dWFsIH5IYWlrdVBvcHVwKCkKICAgICB7CiAg
ICAgICAgIGlmIChiZV9hcHAtPkxvY2soKSkgewogICAgICAgICAgICAgYmVfYXBwLT5SZW1vdmVI
YW5kbGVyKCZtX0hhbmRsZXIpOwpAQCAtMTUzLDM5ICsxNTQsMzkgQEAgcHJpdmF0ZToKICAgICBQ
b3B1cE1lbnVIYW5kbGVyIG1fSGFuZGxlcjsKIH07CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KFBv
cHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCi0gICAg
LCBtX21lbnUobmV3IFBvcHVwTWVudUhhaWt1KGNsaWVudCkpCisgICAgLCBtX21lbnUobmV3IEhh
aWt1UG9wdXAoY2xpZW50KSkKIHsKICAgICAvLyBXZSBkb24ndCBuZWVkIGFkZGl0aW9uYWwgcmVm
ZXJlbmNlcyB0byB0aGUgY2xpZW50LCBzaW5jZSB3ZSBjb21wbGV0ZWx5CiAgICAgLy8gY29udHJv
bCBhbnkgc3ViLW9iamVjdHMgd2UgY3JlYXRlIHRoYXQgbmVlZCBpdCBhcyB3ZWxsLgogfQogCi1Q
b3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51SGFpa3U6On5Qb3B1cE1lbnVIYWlrdSgp
CiB7CiAgICAgZGVsZXRlIG1fbWVudTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3Qg
SW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVu
dUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30K
Kwordm9pZCBQb3B1cE1lbnVIYWlrdTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZp
ZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICAvLyBUaGUgbWVudSB3aWxsIHVwZGF0ZSBpdHNl
bGYgZnJvbSB0aGUgUG9wdXBNZW51Q2xpZW50IGJlZm9yZSBzaG93aW5nLgogICAgIG1fbWVudS0+
c2hvdyhyZWN0LCB2aWV3LCBpbmRleCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3Zv
aWQgUG9wdXBNZW51SGFpa3U6OmhpZGUoKQogewogICAgIG1fbWVudS0+aGlkZSgpOwogfQogCi12
b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVIYWlrdTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0obV9w
b3B1cENsaWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlr
dS9Qb3B1cE1lbnVIYWlrdS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlr
dS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYmU0MTgKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmgKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFBvcHVwTWVudUhhaWt1X2gK
KyNkZWZpbmUgUG9wdXBNZW51SGFpa3VfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1
ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBIYWlrdVBvcHVwOworY2xh
c3MgU2Nyb2xsYmFyOworCitjbGFzcyBQb3B1cE1lbnVIYWlrdSA6IHB1YmxpYyBQb3B1cE1lbnUg
eworcHVibGljOgorICAgIFBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCopOworICAgIH5Q
b3B1cE1lbnVIYWlrdSgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYs
IEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29u
bmVjdENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KKworcHJpdmF0ZToKKyAgICBQb3B1
cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgSGFpa3VQb3B1cCogbV9tZW51OworCisg
ICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50
OyB9CisKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudUhhaWt1X2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHAKaW5kZXggZmQ1ZDk2Yy4u
NDQzMzhlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1l
bnVIYWlrdS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVI
YWlrdS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IFJ5YW4g
TGVhdmVuZ29vZCA8bGVhdmVuZ29vZEBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0xOCw3ICsxOSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUhh
aWt1LmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgpAQCAtMjYsMjYgKzI3LDMxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0g
ICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51SGFpa3U6OlNlYXJjaFBvcHVw
TWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQp
CiB7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2
b2lkIFNlYXJjaFBvcHVwTWVudUhhaWt1OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRT
ZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51SGFpa3U6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgp
Citib29sIFNlYXJjaFBvcHVwTWVudUhhaWt1OjplbmFibGVkKCkKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1l
bnVIYWlrdTo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gbV9wb3B1cDsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Nl
YXJjaFBvcHVwTWVudUhhaWt1LmggYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVw
TWVudUhhaWt1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUzMmQzYwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51
SGFpa3UuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2Vh
cmNoUG9wdXBNZW51SGFpa3VfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVIYWlrdV9oCisKKyNp
bmNsdWRlICJQb3B1cE1lbnVIYWlrdS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUhhaWt1IDogcHVi
bGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51SGFpa3Uo
UG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7
CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2
b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJp
dmF0ZToKKyAgICBQb3B1cE1lbnVIYWlrdSBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8g
U2VhcmNoUG9wdXBNZW51SGFpa3VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UG9wdXBNZW51TWFjLmggYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjhhZjU0Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51TWFjX2gKKyNkZWZpbmUgUG9wdXBNZW51
TWFjX2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitjbGFzcyBOU1BvcFVwQnV0dG9uQ2VsbDsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CitjbGFzcyBGcmFt
ZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudU1hYyA6IHB1YmxpYyBQ
b3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqKTsK
KyAgICB+UG9wdXBNZW51TWFjKCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1f
cG9wdXBDbGllbnQgPSAwOyB9CisKKyAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1l
VmlldyosIGludCBpbmRleCk7CisgICAgdm9pZCBoaWRlKCk7CisKKyAgICB2b2lkIHVwZGF0ZUZy
b21FbGVtZW50KCk7CisKKyAgICBzdGF0aWMgYm9vbCBpdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsK
KyAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7CisKKyAgICB2b2lkIGNs
ZWFyKCk7CisgICAgdm9pZCBwb3B1bGF0ZSgpOworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorfTsKKworfQorCisjZW5kaWYgLy8g
UG9wdXBNZW51TWFjX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVu
dU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQppbmRleCA2YzA2
N2I5Li4wZjUwNTk4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVN
YWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCw3
ICsxOSw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQb3B1cE1lbnUu
aCIKKyNpbXBvcnQgIlBvcHVwTWVudU1hYy5oIgogCiAjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgi
CiAjaW1wb3J0ICJDaHJvbWUuaCIKQEAgLTMxLDYgKzMyLDcgQEAKICNpbXBvcnQgIkhUTUxPcHRp
b25FbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2ltcG9ydCAiUGFn
ZS5oIgorI2ltcG9ydCAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW1wb3J0ICJTaW1wbGVGb250RGF0
YS5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogCkBAIC0zOCwyNCArNDAs
MjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVu
dU1hYzo6UG9wdXBNZW51TWFjKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1
cENsaWVudChjbGllbnQpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1l
bnVNYWM6On5Qb3B1cE1lbnVNYWMoKQogewogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBbbV9w
b3B1cC5nZXQoKSBzZXRDb250cm9sVmlldzpuaWxdOwogfQogCi12b2lkIFBvcHVwTWVudTo6Y2xl
YXIoKQordm9pZCBQb3B1cE1lbnVNYWM6OmNsZWFyKCkKIHsKICAgICBpZiAobV9wb3B1cCkKICAg
ICAgICAgW21fcG9wdXAuZ2V0KCkgcmVtb3ZlQWxsSXRlbXNdOwogfQogCi12b2lkIFBvcHVwTWVu
dTo6cG9wdWxhdGUoKQordm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKIHsKICAgICBpZiAo
bV9wb3B1cCkKICAgICAgICAgY2xlYXIoKTsKQEAgLTExNCw3ICsxMTYsNyBAQCB2b2lkIFBvcHVw
TWVudTo6cG9wdWxhdGUoKQogICAgIFtbbV9wb3B1cC5nZXQoKSBtZW51XSBzZXRNZW51Q2hhbmdl
ZE1lc3NhZ2VzRW5hYmxlZDptZXNzYWdlc0VuYWJsZWRdOwogfQogCi12b2lkIFBvcHVwTWVudTo6
c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKK3ZvaWQgUG9w
dXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4
KQogewogICAgIHBvcHVsYXRlKCk7CiAgICAgaW50IG51bUl0ZW1zID0gW21fcG9wdXAuZ2V0KCkg
bnVtYmVyT2ZJdGVtc107CkBAIC0xNjIsNyArMTY0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3co
Y29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgUmVmUHRyPEZy
YW1lPiBmcmFtZSA9IHYtPmZyYW1lKCk7CiAgICAgTlNFdmVudCogZXZlbnQgPSBbZnJhbWUtPmV2
ZW50SGFuZGxlcigpLT5jdXJyZW50TlNFdmVudCgpIHJldGFpbl07CiAgICAgCi0gICAgUmVmUHRy
PFBvcHVwTWVudT4gcHJvdGVjdG9yKHRoaXMpOworICAgIFJlZlB0cjxQb3B1cE1lbnVNYWM+IHBy
b3RlY3Rvcih0aGlzKTsKIAogICAgIFJldGFpblB0cjxOU1ZpZXc+IGR1bW15VmlldyhBZG9wdE5T
LCBbW05TVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyXSk7CiAgICAgW3ZpZXcgYWRkU3Vidmll
dzpkdW1teVZpZXcuZ2V0KCldOwpAQCAtMTk0LDE2ICsxOTYsMTYgQEAgdm9pZCBQb3B1cE1lbnU6
OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgW2V2
ZW50IHJlbGVhc2VdOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVu
dU1hYzo6aGlkZSgpCiB7CiAgICAgW21fcG9wdXAuZ2V0KCkgZGlzbWlzc1BvcFVwXTsKIH0KICAg
ICAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudU1h
Yzo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKQorYm9vbCBQb3B1cE1lbnVNYWM6Oml0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDRmOTFhMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nl
YXJjaFBvcHVwTWVudU1hYy5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVNYWNfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVNYWNf
aAorCisjaW5jbHVkZSAiUG9wdXBNZW51TWFjLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51TWFjIDog
cHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51TWFj
KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgp
OworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3By
aXZhdGU6CisgICAgUG9wdXBNZW51TWFjIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBT
ZWFyY2hQb3B1cE1lbnVNYWNfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Vh
cmNoUG9wdXBNZW51TWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51
TWFjLm1tCmluZGV4IDI2MjczNGQuLjc4YjI5YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
ZWFyY2hQb3B1cE1lbnVNYWMubW0KQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0xOCwxNCArMTksMTQgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgIlNlYXJjaFBvcHVwTWVudS5oIgorI2ltcG9ydCAiU2VhcmNoUG9wdXBNZW51TWFjLmgiCiAK
ICNpbXBvcnQgIkF0b21pY1N0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJj
aFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAg
IDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudU1hYzo6U2VhcmNoUG9wdXBNZW51
TWFjKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9
CiAKQEAgLTM0LDEyICszNSwxNyBAQCBzdGF0aWMgTlNTdHJpbmcqIGF1dG9zYXZlS2V5KGNvbnN0
IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gW0AiY29tLmFwcGxlLldlYktpdC5zZWFyY2hGaWVs
ZDoiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOm5hbWVdOwogfQogCi1ib29sIFNlYXJjaFBvcHVw
TWVudTo6ZW5hYmxlZCgpCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudU1hYzo6cG9wdXBNZW51
KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKK2Jvb2wgU2VhcmNoUG9wdXBNZW51TWFj
OjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51TWFjOjpzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CkBAIC01Niw3ICs2Miw3IEBAIHZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8CiAgICAgfQog
fQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQ
b3B1cE1lbnVNYWM6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKaW5kZXggMzE1
Yjg5MS4uNTU5MDU1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVR
dC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKQEAgLTI0LDcg
KzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51
LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCkBAIC0zNSwxOCArMzUsMjQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKK1BvcHVwTWVudVF0OjpQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAg
ICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICwgbV9wb3B1cCgwKQogewogfQogCi1Qb3B1
cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51UXQ6On5Qb3B1cE1lbnVRdCgpCiB7CiAgICAg
ZGVsZXRlIG1fcG9wdXA7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQorCit2b2lkIFBvcHVwTWVudVF0Ojpk
aXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQ
b3B1cE1lbnVRdDo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGlu
dCBpbmRleCkKIHsKICAgICBDaHJvbWVDbGllbnRRdCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nh
c3Q8Q2hyb21lQ2xpZW50UXQqPigKICAgICAgICAgdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJv
bWUoKS0+Y2xpZW50KCkpOwpAQCAtNjcsMTkgKzczLDE0IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93
KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogCiB9CiAK
LXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OmhpZGUoKQogewogICAg
IG1fcG9wdXAtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50
KCkKLXsKLSAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVj
dGVkSW5kZXgoKSk7Ci19Ci0KLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCit2b2lkIFBvcHVwTWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIG1fcG9wdXBDbGllbnQtPnNldFRleHRGcm9tSXRlbShtX3BvcHVw
Q2xpZW50LT5zZWxlY3RlZEluZGV4KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1BvcHVwTWVudVF0LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVhOWY3NgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVRdF9oCisjZGVmaW5lIFBvcHVw
TWVudVF0X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKK2NsYXNzIFNj
cm9sbGJhcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51UXQgOiBw
dWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGll
bnQqKTsKKyAgICB+UG9wdXBNZW51UXQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0
IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRl
KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2
b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQq
IG1fcG9wdXBDbGllbnQ7CisgICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBtX3BvcHVwOworfTsKKwor
fQorCisjZW5kaWYgLy8gUG9wdXBNZW51UXRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFj
dFdlYlBvcHVwLmgKaW5kZXggZGFkNDk5Ny4uNWY2ZjYxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0
L1F0QWJzdHJhY3RXZWJQb3B1cC5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBRRm9u
dCBmb250KCkgeyByZXR1cm4gbV9wb3B1cENsaWVudC0+bWVudVN0eWxlKCkuZm9udCgpLmZvbnQo
KTsgfQogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQb3B1cE1lbnU7CisgICAgZnJpZW5k
IGNsYXNzIFBvcHVwTWVudVF0OwogICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsK
ICAgICBRV2ViUGFnZUNsaWVudCogbV9wYWdlQ2xpZW50OwogICAgIGludCBtX2N1cnJlbnRJbmRl
eDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKaW5kZXggMTg3YTVk
ZS4uODY4YjlhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1l
bnVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IEMgMjAwNiBaYWNrIFJ1c2luIDx6YWNr
QGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCwyNiArMTks
MjkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51LmgiCi0KLSNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnVRdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNs
aWVudCkKK1NlYXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQoreworfQorCitQb3B1cE1lbnUqIFNl
YXJjaFBvcHVwTWVudVF0Ojpwb3B1cE1lbnUoKQogeworICAgIHJldHVybiAmbV9wb3B1cDsKIH0K
IAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKQogewogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51
UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpCiB7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNo
UG9wdXBNZW51UXQ6OmVuYWJsZWQoKQogewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjEzNzRmYjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Nl
YXJjaFBvcHVwTWVudVF0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIFNlYXJjaFBvcHVwTWVudVF0X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51UXRfaAor
CisjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVRdCA6IHB1Ymxp
YyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudVF0KFBvcHVw
TWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAg
IHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAgCitwcml2
YXRlOgorICAgIFBvcHVwTWVudVF0IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFy
Y2hQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAppbmRleCA0
YmM2ZGM3Li5jYmFjZDRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRv
cmNoIE1vYmlsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw3
ICsyMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVu
dS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVdpbi5oIgogCiAjaW5jbHVkZSAiQml0bWFwSW5mby5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC04Niw3ICs4Nyw3IEBAIHN0YXRpYyB2b2lkIHRy
YW5zbGF0ZVBvaW50KExQQVJBTSYgbFBhcmFtLCBIV05EIGZyb20sIEhXTkQgdG8pCiAgICAgbFBh
cmFtID0gTUFLRUxQQVJBTShwdC54LCBwdC55KTsKIH0KIAotUG9wdXBNZW51OjpQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbihQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICwg
bV9zY3JvbGxiYXIoMCkKICAgICAsIG1fcG9wdXAoMCkKQEAgLTEwMiw3ICsxMDMsNyBAQCBQb3B1
cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKIHsKIH0KIAotUG9wdXBN
ZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudVdpbjo6flBvcHVwTWVudVdpbigpCiB7CiAgICAg
aWYgKG1fYm1wKQogICAgICAgICA6OkRlbGV0ZU9iamVjdChtX2JtcCk7CkBAIC0xMTQsMTIgKzEx
NSwxNyBAQCBQb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQogICAgICAgICBtX3Njcm9sbGJhci0+c2V0
UGFyZW50KDApOwogfQogCi1MUENUU1RSIFBvcHVwTWVudTo6cG9wdXBDbGFzc05hbWUoKQordm9p
ZCBQb3B1cE1lbnVXaW46OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQg
PSAwOworfQorCitMUENUU1RSIFBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUoKQogewogICAg
IHJldHVybiBrUG9wdXBXaW5kb3dDbGFzc05hbWU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93
KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1
cE1lbnVXaW46OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5k
ZXgpCiB7CiAgICAgY2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKHIsIHZpZXcpOwogICAgIGlmIChj
bGllbnRSZWN0KCkuaXNFbXB0eSgpKQpAQCAtMjY3LDcgKzI3Myw3IEBAIHZvaWQgUG9wdXBNZW51
OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogICAg
IGhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVXaW46
OmhpZGUoKQogewogICAgIGlmICghbV9zaG93UG9wdXApCiAgICAgICAgIHJldHVybjsKQEAgLTI4
Myw3ICsyODksNyBAQCB2b2lkIFBvcHVwTWVudTo6aGlkZSgpCiAgICAgOjpQb3N0TWVzc2FnZSht
X3BvcHVwLCBXTV9OVUxMLCAwLCAwKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmNhbGN1bGF0ZVBv
c2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYpCit2b2lkIFBvcHVw
TWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1l
VmlldyogdikKIHsKICAgICAvLyByIGlzIGluIGFic29sdXRlIGRvY3VtZW50IGNvb3JkaW5hdGVz
LCBidXQgd2Ugd2FudCB0byBiZSBpbiBzY3JlZW4gY29vcmRpbmF0ZXMKIApAQCAtMzczLDcgKzM3
OSw3IEBAIHZvaWQgUG9wdXBNZW51OjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50
UmVjdCYgciwgRnJhbWVWaWV3KiB2KQogICAgIHJldHVybjsKIH0KIAotYm9vbCBQb3B1cE1lbnU6
OnNldEZvY3VzZWRJbmRleChpbnQgaSwgYm9vbCBob3RUcmFja2luZykKK2Jvb2wgUG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgoaW50IGksIGJvb2wgaG90VHJhY2tpbmcpCiB7CiAgICAgaWYg
KGkgPCAwIHx8IGkgPj0gY2xpZW50KCktPmxpc3RTaXplKCkgfHwgaSA9PSBmb2N1c2VkSW5kZXgo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzk1LDIyICs0MDEsMjIgQEAgYm9vbCBQb3B1
cE1lbnU6OnNldEZvY3VzZWRJbmRleChpbnQgaSwgYm9vbCBob3RUcmFja2luZykKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotaW50IFBvcHVwTWVudTo6dmlzaWJsZUl0ZW1zKCkgY29uc3QKK2ludCBQ
b3B1cE1lbnVXaW46OnZpc2libGVJdGVtcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNsaWVudFJl
Y3QoKS5oZWlnaHQoKSAvIG1faXRlbUhlaWdodDsKIH0KIAotaW50IFBvcHVwTWVudTo6bGlzdElu
ZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CitpbnQgUG9wdXBNZW51V2lu
OjpsaXN0SW5kZXhBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9zY3JvbGxPZmZzZXQgKyBwb2ludC55KCkgLyBtX2l0ZW1IZWlnaHQ7CiB9CiAKLWlu
dCBQb3B1cE1lbnU6OmZvY3VzZWRJbmRleCgpIGNvbnN0CitpbnQgUG9wdXBNZW51V2luOjpmb2N1
c2VkSW5kZXgoKSBjb25zdAogewogICAgIHJldHVybiBtX2ZvY3VzZWRJbmRleDsKIH0KIAotdm9p
ZCBQb3B1cE1lbnU6OmZvY3VzRmlyc3QoKQordm9pZCBQb3B1cE1lbnVXaW46OmZvY3VzRmlyc3Qo
KQogewogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQyNCw3ICs0MzAs
NyBAQCB2b2lkIFBvcHVwTWVudTo6Zm9jdXNGaXJzdCgpCiAgICAgICAgIH0KIH0KIAotdm9pZCBQ
b3B1cE1lbnU6OmZvY3VzTGFzdCgpCit2b2lkIFBvcHVwTWVudVdpbjo6Zm9jdXNMYXN0KCkKIHsK
ICAgICBpZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm47CkBAIC00MzgsNyArNDQ0LDcgQEAg
dm9pZCBQb3B1cE1lbnU6OmZvY3VzTGFzdCgpCiAgICAgICAgIH0KIH0KIAotYm9vbCBQb3B1cE1l
bnU6OmRvd24odW5zaWduZWQgbGluZXMpCitib29sIFBvcHVwTWVudVdpbjo6ZG93bih1bnNpZ25l
ZCBsaW5lcykKIHsKICAgICBpZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC00NTcsNyArNDYzLDcgQEAgYm9vbCBQb3B1cE1lbnU6OmRvd24odW5zaWduZWQgbGluZXMpCiAg
ICAgcmV0dXJuIHNldEZvY3VzZWRJbmRleChsYXN0U2VsZWN0YWJsZUluZGV4KTsKIH0KIAotYm9v
bCBQb3B1cE1lbnU6OnVwKHVuc2lnbmVkIGxpbmVzKQorYm9vbCBQb3B1cE1lbnVXaW46OnVwKHVu
c2lnbmVkIGxpbmVzKQogewogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTQ3Niw3ICs0ODIsNyBAQCBib29sIFBvcHVwTWVudTo6dXAodW5zaWduZWQgbGluZXMp
CiAgICAgcmV0dXJuIHNldEZvY3VzZWRJbmRleChsYXN0U2VsZWN0YWJsZUluZGV4KTsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OmludmFsaWRhdGVJdGVtKGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51
V2luOjppbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpCiB7CiAgICAgaWYgKCFtX3BvcHVwKQogICAg
ICAgICByZXR1cm47CkBAIC00OTEsNyArNDk3LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmludmFsaWRh
dGVJdGVtKGludCBpbmRleCkKICAgICA6OkludmFsaWRhdGVSZWN0KG1fcG9wdXAsICZyLCBUUlVF
KTsKIH0KIAotSW50UmVjdCBQb3B1cE1lbnU6OmNsaWVudFJlY3QoKSBjb25zdAorSW50UmVjdCBQ
b3B1cE1lbnVXaW46OmNsaWVudFJlY3QoKSBjb25zdAogewogICAgIEludFJlY3QgY2xpZW50UmVj
dCA9IG1fd2luZG93UmVjdDsKICAgICBjbGllbnRSZWN0LmluZmxhdGUoLXBvcHVwV2luZG93Qm9y
ZGVyV2lkdGgpOwpAQCAtNDk5LDEyICs1MDUsMTIgQEAgSW50UmVjdCBQb3B1cE1lbnU6OmNsaWVu
dFJlY3QoKSBjb25zdAogICAgIHJldHVybiBjbGllbnRSZWN0OwogfQogCi12b2lkIFBvcHVwTWVu
dTo6aW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpCit2b2lkIFBvcHVwTWVudVdpbjo6aW5j
cmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpCiB7CiAgICAgbV93aGVlbERlbHRhICs9IGRlbHRh
OwogfQogCi12b2lkIFBvcHVwTWVudTo6cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCit2b2lk
IFBvcHVwTWVudVdpbjo6cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCiB7CiAgICAgQVNTRVJU
KGRlbHRhID49IDApOwogICAgIEFTU0VSVChkZWx0YSA8PSBhYnMobV93aGVlbERlbHRhKSk7CkBA
IC01MTcsNyArNTIzLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRl
bHRhKQogICAgICAgICByZXR1cm47CiB9CiAKLWJvb2wgUG9wdXBNZW51OjpzY3JvbGxUb1JldmVh
bFNlbGVjdGlvbigpCitib29sIFBvcHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24o
KQogewogICAgIGlmICghbV9zY3JvbGxiYXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUz
Nyw3ICs1NDMsNyBAQCBib29sIFBvcHVwTWVudTo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50
KCkKK3ZvaWQgUG9wdXBNZW51V2luOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgaWYgKCFt
X3BvcHVwKQogICAgICAgICByZXR1cm47CkBAIC01NDksMTQgKzU1NSw5IEBAIHZvaWQgUG9wdXBN
ZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIDo6VXBkYXRlV2luZG93KG1fcG9wdXAp
OwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSAK
LXsgCi0gICAgcmV0dXJuIHRydWU7IAotfQotCiBjb25zdCBpbnQgc2VwYXJhdG9yUGFkZGluZyA9
IDQ7CiBjb25zdCBpbnQgc2VwYXJhdG9ySGVpZ2h0ID0gMTsKLXZvaWQgUG9wdXBNZW51OjpwYWlu
dChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQordm9pZCBQb3B1cE1lbnVXaW46
OnBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiB7CiAgICAgaWYgKCFt
X3BvcHVwKQogICAgICAgICByZXR1cm47CkBAIC02NjMsNyArNjY0LDcgQEAgdm9pZCBQb3B1cE1l
bnU6OnBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiAgICAgICAgIDo6
UmVsZWFzZURDKG1fcG9wdXAsIGxvY2FsREMpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dmFsdWVD
aGFuZ2VkKFNjcm9sbGJhciogc2Nyb2xsQmFyKQordm9pZCBQb3B1cE1lbnVXaW46OnZhbHVlQ2hh
bmdlZChTY3JvbGxiYXIqIHNjcm9sbEJhcikKIHsKICAgICBBU1NFUlQobV9zY3JvbGxiYXIpOwog
CkBAIC02OTksNyArNzAwLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnZhbHVlQ2hhbmdlZChTY3JvbGxi
YXIqIHNjcm9sbEJhcikKICAgICA6OlVwZGF0ZVdpbmRvdyhtX3BvcHVwKTsKIH0KIAotdm9pZCBQ
b3B1cE1lbnU6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBj
b25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAg
IEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7CiAgICAgc2Nyb2xsUmVjdC5tb3ZlKHNjcm9sbGJh
ci0+eCgpLCBzY3JvbGxiYXItPnkoKSk7CkBAIC03MDcsNyArNzA4LDcgQEAgdm9pZCBQb3B1cE1l
bnU6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJ
bnRSZWN0JiByZWMKICAgICA6OkludmFsaWRhdGVSZWN0KG1fcG9wdXAsICZyLCBmYWxzZSk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51OjpyZWdpc3RlckNsYXNzKCkKK3ZvaWQgUG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKCkKIHsKICAgICBzdGF0aWMgYm9vbCBoYXZlUmVnaXN0ZXJlZFdpbmRvd0Ns
YXNzID0gZmFsc2U7CiAKQEAgLTc0Myw3ICs3NDQsNyBAQCB2b2lkIFBvcHVwTWVudTo6cmVnaXN0
ZXJDbGFzcygpCiB9CiAKIAotTFJFU1VMVCBDQUxMQkFDSyBQb3B1cE1lbnU6OlBvcHVwTWVudVdu
ZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFy
YW0pCitMUkVTVUxUIENBTExCQUNLIFBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyhIV05E
IGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIHsKICNp
ZiBPUyhXSU5DRSkKICAgICBMT05HIGxvbmdQdHIgPSBHZXRXaW5kb3dMb25nKGhXbmQsIDApOwpA
QCAtNzcxLDcgKzc3Miw3IEBAIExSRVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51OjpQb3B1cE1lbnVX
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhCiAKIGNvbnN0IGludCBz
bW9vdGhTY3JvbGxBbmltYXRpb25EdXJhdGlvbiA9IDUwMDA7CiAKLUxSRVNVTFQgUG9wdXBNZW51
Ojp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtKQorTFJFU1VMVCBQb3B1cE1lbnVXaW46OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1l
c3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7CiAgICAgTFJFU1VMVCBsUmVz
dWx0ID0gMDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmggYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xOGVlNmIxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZm5kZWYgUG9wdXBNZW51V2luX2gKKyNkZWZpbmUgUG9wdXBNZW51V2luX2gKKworI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXIuaCIKKyNpbmNsdWRlICJTY3JvbGxi
YXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCit0eXBlZGVmIHN0cnVjdCBI
V05EX18qIEhXTkQ7Cit0eXBlZGVmIHN0cnVjdCBIRENfXyogSERDOwordHlwZWRlZiBzdHJ1Y3Qg
SEJJVE1BUF9fKiBIQklUTUFQOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
VmlldzsKK2NsYXNzIFNjcm9sbGJhcjsKKworY2xhc3MgUG9wdXBNZW51V2luIDogcHVibGljIFBv
cHVwTWVudSwgcHJpdmF0ZSBTY3JvbGxiYXJDbGllbnQgeworcHVibGljOgorICAgIFBvcHVwTWVu
dVdpbihQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51V2luKCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVu
dCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6Cisg
ICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworCisgICAgUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKKyAgICBTY3JvbGxi
YXIqIHNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CisKKyAg
ICBzdGF0aWMgTFBDVFNUUiBwb3B1cENsYXNzTmFtZSgpOworCisgICAgYm9vbCB1cCh1bnNpZ25l
ZCBsaW5lcyA9IDEpOworICAgIGJvb2wgZG93bih1bnNpZ25lZCBsaW5lcyA9IDEpOworCisgICAg
aW50IGl0ZW1IZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1IZWlnaHQ7IH0KKyAgICBjb25z
dCBJbnRSZWN0JiB3aW5kb3dSZWN0KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dSZWN0OyB9Cisg
ICAgSW50UmVjdCBjbGllbnRSZWN0KCkgY29uc3Q7CisKKyAgICBpbnQgdmlzaWJsZUl0ZW1zKCkg
Y29uc3Q7CisKKyAgICBpbnQgbGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0
OworCisgICAgYm9vbCBzZXRGb2N1c2VkSW5kZXgoaW50IGluZGV4LCBib29sIGhvdFRyYWNraW5n
ID0gZmFsc2UpOworICAgIGludCBmb2N1c2VkSW5kZXgoKSBjb25zdDsKKyAgICB2b2lkIGZvY3Vz
Rmlyc3QoKTsKKyAgICB2b2lkIGZvY3VzTGFzdCgpOworCisgICAgdm9pZCBwYWludChjb25zdCBJ
bnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgPSAwKTsKKworICAgIEhXTkQgcG9wdXBIYW5kbGUoKSBj
b25zdCB7IHJldHVybiBtX3BvcHVwOyB9CisKKyAgICB2b2lkIHNldFdhc0NsaWNrZWQoYm9vbCBi
ID0gdHJ1ZSkgeyBtX3dhc0NsaWNrZWQgPSBiOyB9CisgICAgYm9vbCB3YXNDbGlja2VkKCkgY29u
c3QgeyByZXR1cm4gbV93YXNDbGlja2VkOyB9CisKKyAgICB2b2lkIHNldFNjcm9sbE9mZnNldChp
bnQgb2Zmc2V0KSB7IG1fc2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OyB9CisgICAgaW50IHNjcm9sbE9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0OyB9CisKKyAgICBib29sIHNjcm9s
bFRvUmV2ZWFsU2VsZWN0aW9uKCk7CisKKyAgICB2b2lkIGluY3JlbWVudFdoZWVsRGVsdGEoaW50
IGRlbHRhKTsKKyAgICB2b2lkIHJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKTsKKyAgICBpbnQg
d2hlZWxEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxEZWx0YTsgfQorCisgICAgYm9vbCBz
Y3JvbGxiYXJDYXB0dXJpbmdNb3VzZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyQ2FwdHVy
aW5nTW91c2U7IH0KKyAgICB2b2lkIHNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKGJvb2wgYikg
eyBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlID0gYjsgfQorfTsKKworfQorCisjZW5kaWYgLy8g
UG9wdXBNZW51V2luX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBv
cHVwTWVudVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4u
Y3BwCmluZGV4IGYyNzA5YmIuLjRhNWNiMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMTgsMTkgKzE5LDI0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVdpbi5oIgogCiAj
aW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBv
cHVwTWVudVdpbjo6U2VhcmNoUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQor
ICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFi
bGVkKCkKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51V2luOjpwb3B1cE1lbnUoKQoreworICAg
IHJldHVybiAmbV9wb3B1cDsKK30KKworYm9vbCBTZWFyY2hQb3B1cE1lbnVXaW46OmVuYWJsZWQo
KQogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDEsNyArNDcsNyBAQCBzdGF0aWMgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBhdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcmV0
dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwga2V5LmNyZWF0ZUNGU3RyaW5nKCkp
OwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9p
ZCBTZWFyY2hQb3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBpZiAo
bmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYxLDcgKzY3LDcgQEAgdm9pZCBT
ZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIGNvbnN0IFZlY3RvcjwKICAgICBDRlByZWZlcmVuY2VzQXBwU3luY2hyb25pemUoa0NGUHJl
ZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6
bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVXaW46OmxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cykKIHsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMWU4N2Q3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NlYXJjaFBvcHVwTWVudVdpbi5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVXaW5faAorI2RlZmluZSBTZWFyY2hQb3B1cE1l
bnVXaW5faAorCisjaW5jbHVkZSAiUG9wdXBNZW51V2luLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51
V2luIDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBN
ZW51V2luKFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVw
TWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZp
cnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7
CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51V2luIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBTZWFyY2hQb3B1cE1lbnVXaW5faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93
eC9Qb3B1cE1lbnVXeC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcApp
bmRleCA5YjBkZWJhLi5lODhkMWU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1Bv
cHVwTWVudVd4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcApA
QCAtMiw2ICsyLDcgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1cCBtZW51IGlt
cGxlbWVudGF0aW9uIGZvciA8c2VsZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgogICoKICAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjEsNyArMjIsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVXeC5oIgogCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQxLDE4ICs0Miwy
MyBAQCBzdGF0aWMgaW50IHNfbWVudVN0YXJ0SWQgPSB3eE5ld0lkKCk7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CitQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3goUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAg
OiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVudShOVUxMKQogewogfQogCi1Qb3B1
cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51V3g6On5Qb3B1cE1lbnVXeCgpCiB7CiAgICAg
ZGVsZXRlIG1fbWVudTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYg
ciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudVd4OjpkaXNjb25uZWN0
Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVX
eDo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKICAg
ICAvLyBqdXN0IGRlbGV0ZSBhbmQgcmVjcmVhdGUKICAgICBkZWxldGUgbV9tZW51OwpAQCAtNzgs
MTMgKzg0LDEzIEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1l
VmlldyogdiwgaW50IGluZGV4KQogICAgICAgICAgICAgICAgICAgICBtX21lbnUtPkFwcGVuZChz
X21lbnVTdGFydElkICsgaSwgY2xpZW50KCktPml0ZW1UZXh0KGkpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICBuYXRpdmVXaW4tPkNvbm5lY3Qoc19tZW51U3RhcnRJZCwgc19t
ZW51U3RhcnRJZCArIChzaXplLTEpLCB3eEVWVF9DT01NQU5EX01FTlVfU0VMRUNURUQsIHd4Q29t
bWFuZEV2ZW50SGFuZGxlcihQb3B1cE1lbnU6Ok9uTWVudUl0ZW1TZWxlY3RlZCksIE5VTEwsIHRo
aXMpOworICAgICAgICBuYXRpdmVXaW4tPkNvbm5lY3Qoc19tZW51U3RhcnRJZCwgc19tZW51U3Rh
cnRJZCArIChzaXplLTEpLCB3eEVWVF9DT01NQU5EX01FTlVfU0VMRUNURUQsIHd4Q29tbWFuZEV2
ZW50SGFuZGxlcihQb3B1cE1lbnVXeDo6T25NZW51SXRlbVNlbGVjdGVkKSwgMCwgdGhpcyk7CiAg
ICAgICAgIG5hdGl2ZVdpbi0+UG9wdXBNZW51KG1fbWVudSwgci54KCkgLSB2LT5zY3JvbGxYKCks
IHIueSgpIC0gdi0+c2Nyb2xsWSgpKTsKLSAgICAgICAgbmF0aXZlV2luLT5EaXNjb25uZWN0KHNf
bWVudVN0YXJ0SWQsIHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5V
X1NFTEVDVEVELCB3eENvbW1hbmRFdmVudEhhbmRsZXIoUG9wdXBNZW51OjpPbk1lbnVJdGVtU2Vs
ZWN0ZWQpLCBOVUxMLCB0aGlzKTsKKyAgICAgICAgbmF0aXZlV2luLT5EaXNjb25uZWN0KHNfbWVu
dVN0YXJ0SWQsIHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NF
TEVDVEVELCB3eENvbW1hbmRFdmVudEhhbmRsZXIoUG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1TZWxl
Y3RlZCksIDAsIHRoaXMpOwogICAgIH0KIH0KIAotdm9pZCBQb3B1cE1lbnU6Ok9uTWVudUl0ZW1T
ZWxlY3RlZCh3eENvbW1hbmRFdmVudCYgZXZlbnQpCit2b2lkIFBvcHVwTWVudVd4OjpPbk1lbnVJ
dGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmIGV2ZW50KQogewogICAgIGlmIChjbGllbnQoKSkg
ewogICAgICAgICBjbGllbnQoKS0+dmFsdWVDaGFuZ2VkKGV2ZW50LkdldElkKCkgLSBzX21lbnVT
dGFydElkKTsKQEAgLTkzLDIwICs5OSwxNSBAQCB2b2lkIFBvcHVwTWVudTo6T25NZW51SXRlbVNl
bGVjdGVkKHd4Q29tbWFuZEV2ZW50JiBldmVudCkKICAgICAvLyBUT0RPOiBEbyB3ZSBuZWVkIHRv
IGNhbGwgRGlzY29ubmVjdCBoZXJlPyBEbyB3ZSBoYXZlIGEgcmVmIHRvIHRoZSBuYXRpdmUgd2lu
ZG93IHN0aWxsPwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudVd4
OjpoaWRlKCkKIHsKICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhlcmUsIHRo
ZSBuYXRpdmUgY29udHJvbCBvbmx5IGV4aXN0cyBkdXJpbmcgdGhlIHRpbWUKICAgICAvLyBzaG93
IGlzIGNhbGxlZAogfQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9p
ZCBQb3B1cE1lbnVXeDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRU
ZXh0RnJvbUl0ZW0obV9wb3B1cENsaWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQ
b3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51
V3guaCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41NjA0YjkxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBQb3B1cE1lbnVXeF9oCisjZGVmaW5lIFBvcHVwTWVudVd4X2gKKworI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKKyNpZmRlZiBfX1dYTVNXX18KKyNpbmNsdWRlIDx3eC9tc3cvd2lu
dW5kZWYuaD4KKyNlbmRpZgorY2xhc3Mgd3hNZW51OworI2luY2x1ZGUgPHd4L2RlZnMuaD4KKyNp
bmNsdWRlIDx3eC9ldmVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
VmlldzsKK2NsYXNzIFNjcm9sbGJhcjsKKworY2xhc3MgUG9wdXBNZW51V3ggOiBwdWJsaWMgUG9w
dXBNZW51LCBwdWJsaWMgd3hFdnRIYW5kbGVyIHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVXeChQ
b3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51V3goKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1
YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1
cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisKKyAgICB3eE1lbnUqIG1fbWVudTsKKyAgICB2
b2lkIE9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVudCYpOworCisgICAgUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKK307CisK
K30KKworI2VuZGlmIC8vIFBvcHVwTWVudVd4X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQ
b3B1cE1lbnVXeC5jcHAKaW5kZXggZGJiZTMzOS4uYTVhZWIxYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDMyICsyNSwzNyBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnVXeC5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitT
ZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNoUG9wdXBNZW51V3goUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFy
Y2hQb3B1cE1lbnVXeDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lk
IFNlYXJjaFBvcHVwTWVudVd4Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQ
b3B1cE1lbnVXeDo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1BvcHVwTWVu
dSogU2VhcmNoUG9wdXBNZW51V3g6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVw
OworfQorCiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBN
ZW51V3guaCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGM3N2JhCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVXeF9oCisjZGVmaW5l
IFNlYXJjaFBvcHVwTWVudVd4X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVd4LmgiCisjaW5jbHVk
ZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Vh
cmNoUG9wdXBNZW51V3ggOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBT
ZWFyY2hQb3B1cE1lbnVXeChQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBN
ZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wg
ZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudVd4IG1fcG9wdXA7Cit9OworCit9
CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVXeF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKaW5kZXggMTc3OTIxYy4uMTcwMzEwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCkBAIC04OCw4ICs4OSw4IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OmFkanVz
dElubmVyU3R5bGUoKQogICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ1JpZ2h0
KExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KHN0eWxlKCkpLCBGaXhl
ZCkpOwogICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ1RvcChMZW5ndGgodGhl
bWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdUb3Aoc3R5bGUoKSksIEZpeGVkKSk7CiAgICAgbV9p
bm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nQm90dG9tKExlbmd0aCh0aGVtZSgpLT5wb3B1
cEludGVybmFsUGFkZGluZ0JvdHRvbShzdHlsZSgpKSwgRml4ZWQpKTsKLSAgICAgICAgCi0gICAg
aWYgKFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkgeworCisgICAg
aWYgKGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkpIHsKICAgICAgICAgLy8gSXRlbXMgaW4gdGhlIHBvcHVwIHdpbGwgbm90
IHJlc3BlY3QgdGhlIENTUyB0ZXh0LWFsaWduIGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcywKICAg
ICAgICAgLy8gc28gd2UgbXVzdCBhZGp1c3Qgb3VyIG93biBzdHlsZSB0byBtYXRjaC4KICAgICAg
ICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRUZXh0QWxpZ24oTEVGVCk7CkBAIC0yNzgsNyAr
Mjc5LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICAvLyBpbnNpZGUg
dGhlIHNob3dQb3B1cCBjYWxsIGFuZCBpdCB3b3VsZCBmYWlsLgogICAgIGNyZWF0ZUlubmVyQmxv
Y2soKTsKICAgICBpZiAoIW1fcG9wdXApCi0gICAgICAgIG1fcG9wdXAgPSBQb3B1cE1lbnU6OmNy
ZWF0ZSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21l
KCktPmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKICAgICBTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0
b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSkpOwogICAgIG1fcG9w
dXBJc1Zpc2libGUgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAppbmRleCBk
NzJlMWE5Li45NmRlYWQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTI0LDYg
KzI0LDcgQEAKICNpZm5kZWYgUmVuZGVyTWVudUxpc3RfaAogI2RlZmluZSBSZW5kZXJNZW51TGlz
dF9oCiAKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgogCkBAIC0zNSw4ICszNiw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9wdXBNZW51OwogY2xhc3MgUmVuZGVyVGV4
dDsKK2NsYXNzIFNlbGVjdFVJQ2xpZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVS
SU5HKQogY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3gsIHBy
aXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBkMGFiMTA3Li5hOWMxNjZjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAK
QEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA4IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNv
bS8pIAogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyNCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zOCw3ICs0
MCw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxi
YXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVu
dS5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCkBAIC02Miw3ICs2Myw3IEBAIFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKE5vZGUq
IG5vZGUsIGJvb2wgcGxhY2VoCiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUoKQogewogICAgIGlmIChtX3NlYXJjaFBvcHVwKSB7Ci0gICAg
ICAgIG1fc2VhcmNoUG9wdXAtPmRpc2Nvbm5lY3RDbGllbnQoKTsKKyAgICAgICAgbV9zZWFyY2hQ
b3B1cC0+cG9wdXBNZW51KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQ
b3B1cCA9IDA7CiAgICAgfQogIApAQCAtMTA3LDcgKzEwOCw3IEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAg
ICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAg
ICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVT
ZWFyY2hQb3B1cE1lbnUodGhpcyk7CiAKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2Vh
cmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiB9CkBAIC0xMjUsNyArMTI2LDcgQEAgdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCgpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNl
YXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gZG9j
dW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOwog
CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTE0NSwxNCArMTQ2LDE0IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93
UG9wdXAoKQogICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwg
bV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+c2hvdyhhYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdCh0cnVlKSwgZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CisgICAg
bV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
dHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgpLT5pc0hUTUxF
bGVtZW50KCkpOwogICAgIGlmIChtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVw
LT5oaWRlKCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5oaWRlKCk7CiB9
CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hhbmdlZCgp
CkBAIC02ODUsNyArNjg2LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKICAgICB9CiAKICAgICBpZiAobV9zZWFyY2hQb3B1cElzVmlzaWJs
ZSkKLSAgICAgICAgbV9zZWFyY2hQb3B1cC0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAgICAg
bV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKIHZv
aWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQs
IGludCBlbmQpCkBAIC04ODMsNyArODg0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW4KICAg
ICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAg
ICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghbV9z
ZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNlYXJjaFBv
cHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVw
ID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KHRo
aXMpOwogICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhu
YW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA5MmVj
YWRkLi40ZmU0ZjlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8v
d3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yNCw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJUZXh0Q29udHJvbC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDcgKzM0LDcgQEAg
Y2xhc3MgSW5wdXRFbGVtZW50OwogY2xhc3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ7
CiBjbGFzcyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25FbGVtZW50OwotY2xhc3MgU2VhcmNoUG9wdXBNZW51OworY2xhc3MgU2Vh
cmNoVUlDbGllbnQ7CiBjbGFzcyBTcGluQnV0dG9uRWxlbWVudDsKIGNsYXNzIFRleHRDb250cm9s
SW5uZXJFbGVtZW50OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxYjU5NjZkLi5kNGFkNTU3IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXou
YWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8g
V2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9y
IHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5j
ZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRl
ZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisK
KyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAg
ICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorCiAyMDEwLTA3LTI3ICBQYXZlbCBQb2Rp
dmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBh
dmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCBkNDNkODhhLi5jZmFkNDZkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtNTUsNiArNTYsNyBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blByZXNlbnRlckltcGwuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51
Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2Uu
aCIKICNpZiBVU0UoVjgpCkBAIC03NjUsNCArNzY3LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgICAgIG1f
d2ViVmlldy0+Y2xpZW50KCktPmV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJOb2RlKG5vZGUpKTsK
IH0KIAorYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6
OlBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW0oY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShjbGllbnQp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCmluZGV4IGU4MjQzODEuLjRkZjlhYmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMyLDEyICszMywxNSBAQAogI2RlZmluZSBD
aHJvbWVDbGllbnRJbXBsX2gKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBGaWxl
Q2hvb3NlcjsKIGNsYXNzIEhUTUxQYXJzZXJRdWlya3M7CiBjbGFzcyBQb3B1cENvbnRhaW5lcjsK
K2NsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFdp
bmRvd0ZlYXR1cmVzOwogfQpAQCAtMTY1LDYgKzE2OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDdXJzb3IoY29uc3QgV2ViQ3Vyc29ySW5mbyYgY3Vyc29yKTsKICAgICB2b2lkIHNldEN1cnNv
ckZvclBsdWdpbihjb25zdCBXZWJDdXJzb3JJbmZvJiBjdXJzb3IpOwogCisgICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2Vi
Q29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNzUzNGJm
ZC4uODg3M2EyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGlu
aSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFy
YXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9u
c2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAg
ICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xp
ZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1l
dGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0
ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
Lmg6CisKIDIwMTAtMDctMjYgIFJhZmFlbCBBbnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNp
b24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGZmYmQ2NDIuLmYz
N2RhMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5j
cHAKQEAgLTUsNiArNSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoK
ICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDcsNiArNDgsOCBAQAogI2lu
Y2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU2Vh
cmNoUG9wdXBNZW51RWZsLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCkBAIC01MTMs
NCArNTE2LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1
bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyCiAgICAgZXdrX3ZpZXdfdmlld3Bv
cnRfc2V0KG1fdmlldywgYXJndW1lbnRzLndpZHRoLCBhcmd1bWVudHMuaGVpZ2h0LCBhcmd1bWVu
dHMuaW5pdGlhbFNjYWxlLCBhcmd1bWVudHMubWluaW11bVNjYWxlLCBhcmd1bWVudHMubWF4aW11
bVNjYWxlLCBhcmd1bWVudHMudXNlclNjYWxhYmxlKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRF
Zmw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51RWZsKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFy
Y2hQb3B1cE1lbnVFZmwoY2xpZW50KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4IGNlOGFiZDEuLmIyMmQ5ODEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAtMyw2ICszLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEK
ICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzcsNiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBj
b25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdDsKIAorICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICBFdmFzX09iamVjdCog
bV92aWV3OwogICAgIEtVUkwgbV9ob3ZlcmVkTGlua1VSTDsKIH07CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDgwM2JmMTIuLjQw
YTljNTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxs
dWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9u
IHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxl
IGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5z
dGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBu
ZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2Rz
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTE2
ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKaW5kZXggODg0NDBiYS4uOTM5NDE4YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwOCBOdWFudGkgTHRkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxn
bnNAZ25vbWUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDkg
KzMyLDEyIEBACiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVu
dC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlNlYXJj
aFBvcHVwTWVudUd0ay5oIgogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNp
b24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29y
a3JlcXVlc3QuaCIKQEAgLTYxNiw0ICs2MjAsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnIK
ICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1k
ZWNpc2lvbi1jYW5jZWxsZWQiLCB3ZWJGcmFtZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50Ojpz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUd0ayhjbGllbnQpKTsKK30KKworUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51R3RrKGNsaWVudCkpOworfQorCiB9
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBjZTVj
NWE3Li4zZjc2ZDE5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBI
YW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
Miw5ICsyMywxNSBAQAogCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiS1VS
TC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3OwogCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7Cit9CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiAgICAgY2xhc3MgQ2hyb21lQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9t
ZUNsaWVudCB7CkBAIC0xMjIsNiArMTI5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0OworCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93
ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLVVJMIG1faG92ZXJlZExpbmtVUkw7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRl
eCA4NDFhOTRjLi5jZmRkZGYzIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAg
THVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3Jp
bmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZy
b20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVu
dCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0
SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBk
MThiODRkLi42ZDY0YWM3IDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuY3BwCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDA3IFJ5YW4gTGVhdmVuZ29vZCA8bGVhdmVuZ29vZEBnbWFpbC5jb20+IEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM1LDYgKzM2LDgg
QEAKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCisjaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51SGFpa3UuaCIKIAogI2luY2x1ZGUgPEFsZXJ0Lmg+CiAjaW5j
bHVkZSA8U3RyaW5nLmg+CkBAIC0zODAsNSArMzgzLDIwIEBAIFBhc3NPd25QdHI8SFRNTFBhcnNl
clF1aXJrcz4gQ2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKQogICAg
IHJldHVybiAwOwogfQogCitib29sIENocm9tZUNsaWVudEhhaWt1OjpzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVm
UHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVw
TWVudUhhaWt1KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50SGFpa3U6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUhh
aWt1KGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggOTYzZTcyZi4u
MzhmZWYyNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEhhaWt1LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEhhaWt1LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sg
UnVzaW4gPHphY2tAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdv
b2QgPGxlYXZlbmdvb2RAZ21haWwuY29tPiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xMjgsNiArMTI5LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKTsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hl
U2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzNDc3YjE3Li4xMjM5MmNj
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5h
Z29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBX
ZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MjU5MgorCisgICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3Ig
cHJvdmlkaW5nIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNl
cywgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVk
IHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorCiAyMDEwLTA3LTI3ICBTdGV2ZSBCbG9jayAgPHN0ZXZl
YmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDdkMDgw
Li5mYTI5YjMyIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY3LDYgKzE2
NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CiAKKyAgICB2aXJ0
dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsK
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4
IGViNTYyNDAuLmU5M2VhMDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTYyLDEyICs2MiwxNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3Ry
aW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudU1hYy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51TWFj
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dG
ZWF0dXJlcy5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0
b3IuaD4KIAorCisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNlbmRpZgpAQCAtNzI0LDYgKzcyOCwyMSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkK
ICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRC
bHVyTm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKIH0KIAor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVu
dU1hYyhjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNo
UG9wdXBNZW51TWFjKGNsaWVudCkpOworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJh
bWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggY2RlNWE1Yi4uYTEx
NjIwYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6
LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRv
IFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZv
ciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFu
Y2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVk
ZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVu
dSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0w
Ny0yNyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IDJjNjRhNzguLjc5MTBjMWYgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ1LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5vdGlmaWNh
dGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudFF0LmgiCisjaW5j
bHVkZSAiUG9wdXBNZW51UXQuaCIKICNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkKICNpbmNsdWRl
ICJRdE1hZW1vV2ViUG9wdXAuaCIKICNlbHNlCkBAIC01Miw2ICs1NCw3IEBACiAjZW5kaWYKICNp
bmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCisj
aW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51UXQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVy
ZXMuaCIKQEAgLTY0NCw0ICs2NDcsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6ZGlkUmVjZWl2
ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcmcKICAgICBl
bWl0IG1fd2ViUGFnZS0+dmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQoaGludHMpOwogfQogCitib29s
IENocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xp
ZW50UXQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVF0KGNsaWVudCkpOworfQorCitQYXNz
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNlYXJjaFBvcHVwTWVudVF0KGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcw
YjRhMjUuLjA2YWI1YjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2lu
IDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgpAQCAtMTc2LDYgKzE3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBpc01pbmltaXplZCgpOwogI2VuZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgICAgIFF0QWJz
dHJhY3RXZWJQb3B1cCogY3JlYXRlU2VsZWN0UG9wdXAoKTsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiwgY29uc3QgVmlld3BvcnRBcmd1
bWVudHMmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKaW5kZXggODY3MGUyNi4uYjk1NWVmNCAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1
cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBD
aHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUg
YW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMg
dGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisg
ICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisKIDIwMTAtMDctMjcgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNzM1MzJhNi4uMmU5YmE1
YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNiArNTYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTG9j
YWxpemVkU3RyaW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVdpbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51V2luLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtODY4LDMg
Kzg3MSwxOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5v
ZGUqKQogCiAjZW5kaWYKIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51
V2luKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVXaW4oY2xpZW50
KSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IGU3ODQ1YTkuLmU3MTdlZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY1LDYgKzE2NiwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5v
dGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0
KCkpOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDMyZmY2ZmUu
LjQ0YTU2MDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8
bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlv
biB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjU5MgorCisgICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJs
ZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGlu
c3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQg
bmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9k
cy4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDEw
LTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5jcHAgYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5j
cHAKaW5kZXggZDgxYTIwYy4uMjUzMTJiNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTM4LDYgKzM5LDggQEAKICNpbmNs
dWRlICJJY29uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVd4LmgiCisjaW5jbHVkZSAiU2VhcmNo
UG9wdXBNZW51V3guaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogCiAjaW5jbHVkZSA8
c3RkaW8uaD4KQEAgLTQ1OCw0ICs0NjEsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50V3g6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bh
c3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRXeDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51V3goY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJv
bWVDbGllbnRXeDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V3goY2xp
ZW50KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmlu
ZGV4IDRiMTU2ZWQuLjVmMjJjYmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4g
T2xsaXZpZXIgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTE0MSw2ICsxNDIsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUq
LCBHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCisgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICB3eFdlYlZpZXcqIG1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDUwNDM4ZmIuLjY0OGExYTcgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9w
dXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQ2xh
c3NlcyBXZWJQb3B1cE1lbnUgYW5kIFdlYlNlYXJjaFBvcHVwTWVudSBpbmhlcml0IGZyb20gUG9w
dXBNZW51IGFuZAorICAgICAgICBTZWFyY2hQb3B1cE1lbnUgcmVzcGVjdGl2ZWx5LiBBdCB0aGlz
IHBvaW50IHRoZXkgYXJlIGp1c3QgZW1wdHkgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1
cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6
OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCisK
KyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25j
cmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUg
Y2hhbmdlZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKworICAgICAgICBidWlsZCBpc3N1ZXM6CisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorCiAy
MDEwLTA3LTI3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2E4Y2JiZi4uZWZhMzc1MCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1Nyw2ICsyNTcsMTAgQEAKIAkJQkNGNjlGQTMx
MTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAv
KiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgKi87IH07CiAJCUJDRjY5RkE5MTE3NkQxQ0IwMDQ3MUE1
MiAvKiBXS05hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Y2OUZBNzExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkNG
NjlGQUExMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTgxMTc2RDFDQjAwNDcx
QTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwICovOyB9OworCQlEM0I5NDg0NjExRkY0QjY1MDAw
MzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUu
Y3BwICovOyB9OworCQlEM0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi87IH07CisJCUQzQjk0ODQ4MTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlNlYXJjaFBvcHVwTWVudS5jcHAgKi87IH07CisJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAv
KiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1l
bnUuaCAqLzsgfTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudC5oICovOyB9OwogCQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovOyB9OwogCQlFMUVFNTVGNDExRjhGMTg5MDBDQ0JF
RTQgLyogV0tCdW5kbGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFFRTU1RjMxMUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC01NDYsNiAr
NTUwLDEwIEBACiAJCUJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOYXZpZ2F0aW9u
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5RkE3MTE3NkQxQ0Iw
MDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLTmF2aWdhdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNGNjlGQTgxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOYXZpZ2F0aW9uRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQ
b3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUG9w
dXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4NDMxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4
NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlYXJj
aFBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhD
RjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1NUYzMTFGOEYxODkwMENDQkVFNCAvKiBX
S0J1bmRsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxl
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgzMyw2ICs4NDEsMTAgQEAK
IAkJCQlCQzAzMkQ2RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8s
CiAJCQkJMUEzRTczNjAxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgKi8sCiAJCQkJMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oICovLAorCQkJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUu
Y3BwICovLAorCQkJCUQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAq
LywKKwkJCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNw
cCAqLywKKwkJCQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51
LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNvcmVTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTEyODgsNiArMTMwMCw4IEBACiAJCQkJQkNGMDQ5RTYxMUZFMjBGNjAw
Rjg2QTU4IC8qIFdLQnVuZGxlRnJhbWVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Yw
NDlFNzExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUU0OTc2ODExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVw
TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNDg2LDYgKzE1MDAsOCBAQAogCQkJCUUxRUU1NUY4
MTFGOEYxQkMwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxRUU1NjU2MTFGOEY3MTcwMENDQkVFNCAvKiBXS0J1bmRsZU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFFNDk3NjkxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAyMzI1ODA5Li4x
OTY3ZTY5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzQsOCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlS2luZHMuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlci5oPgpAQCAtNDY4LDYgKzQ3MCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURp
ZEJsdXIoY29uc3QgTm9kZSopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUG9wdXBNZW51KGNsaWVu
dCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWFyY2hQb3B1cE1l
bnUoY2xpZW50KSk7Cit9CisKIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IGRkNDg3YjQuLmJkNjcxYjMgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE2Miw2ICsxNjIsMTAg
QEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6SFRNTFBh
cnNlclF1aXJrcz4gY3JlYXRlSFRNTFBhcnNlclF1aXJrcygpOwogCisgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDNlNzM4YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKKworI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworV2ViUG9wdXBNZW51OjpXZWJQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKK3sKK30K
KworV2ViUG9wdXBNZW51Ojp+V2ViUG9wdXBNZW51KCkKK3sKK30KKworCit2b2lkIFdlYlBvcHVw
TWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisK
K3ZvaWQgV2ViUG9wdXBNZW51OjpzaG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIFdl
YkNvcmU6OkZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQoreworCit9CisKK3ZvaWQgV2ViUG9w
dXBNZW51OjpoaWRlKCkKK3sKK30KKwordm9pZCBXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NTUx
YzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUG9wdXBNZW51LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZu
ZGVmIFdlYlBvcHVwTWVudV9oCisjZGVmaW5lIFdlYlBvcHVwTWVudV9oCisKKyNpbmNsdWRlICJQ
b3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUG9wdXBNZW51Q2xpZW50
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUG9wdXBNZW51IDogcHVibGlj
IFdlYkNvcmU6OlBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgV2ViUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCopOworICAgIH5XZWJQb3B1cE1lbnUoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpGcmFtZVZpZXcqLCBpbnQgaW5kZXgp
OworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21F
bGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0
ZToKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7Cit9OworCit9
CisKKyNlbmRpZiAvLyBXZWJQb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmYyNTFhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dl
YlNlYXJjaFBvcHVwTWVudTo6V2ViU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCit7Cit9CisKK1BvcHVwTWVudSog
V2ViU2VhcmNoUG9wdXBNZW51Ojpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsK
K30KKwordm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBX
ZWJDb3JlOjpBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit7Cit9CisKK3Zv
aWQgV2ViU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgV2ViQ29yZTo6
QXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQoreworfQorCitib29sIFdlYlNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE4MzNlMAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV2Vi
U2VhcmNoUG9wdXBNZW51X2gKKyNkZWZpbmUgV2ViU2VhcmNoUG9wdXBNZW51X2gKKworI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgV2ViU2VhcmNoUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnUqIHBvcHVw
TWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgV2ViQ29y
ZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgV2ViQ29yZTo6QXRv
bWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1
YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgV2ViUG9wdXBNZW51IG1fcG9wdXA7
Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJTZWFyY2hQb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpp
bmRleCBkZjdmYzVhLi5kZGY0NjExIDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNTU5LDYgKzU1OSwyMiBA
QAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViSW5z
cGVjdG9yQ2xpZW50LmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJQb3B1cE1lbnUu
Y3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViUG9wdXBNZW51LmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJTZWFyY2hQb3B1cE1lbnUuY3BwIg0KKwkJCQkJPg0KKwkJ
CQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnRcV2ViU2VhcmNoUG9wdXBNZW51LmgiDQorCQkJCQk+DQorCQkJCTwvRmls
ZT4NCiAJCQkJPEZpbHRlcg0KIAkJCQkJTmFtZT0id2luIg0KIAkJCQkJPg0KLS0gCjEuNi4zLjMK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62774</attachid>
            <date>2010-07-27 17:04:47 -0700</date>
            <delta_ts>2010-07-27 17:28:29 -0700</delta_ts>
            <desc>patch 8</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>185971</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA4MTYyOGE2NTQ1ZGFiODcyN2RjZmFmOTIwZDU4ODk0YTcxNzVjMzg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMjcgSnVsIDIwMTAgMTU6NTk6NDAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51IGhhdmUgYmVlbiBtYWRlIHB1cmUgdmlydHVhbC4KCiogcGxhdGZvcm0vUG9wdXBNZW51
Lmg6CihXZWJDb3JlOjpQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgoqIHBsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojp+U2VhcmNoUG9wdXBNZW51KToK
CkNsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHlDb250cm9sU2luZ2xlTGluZSBo
YXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CihXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3ZXJlIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBpbnN0YW5jZXMgb2YgY2xhc3NlcwpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCgoqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKFdlYkNvcmU6OkVtcHR5UG9w
dXBNZW51OjpoaWRlKToKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCk6CihXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CihXZWJDb3Jl
OjpFbXB0eVNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6RW1wdHlTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpFbXB0eVNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudSk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlUG9wdXBN
ZW51KToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKiBwYWdlL0No
cm9tZS5oOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CgpPcmlnaW5hbCBjb250ZW50cyBvZiBmaWxl
cyBQb3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmggaGF2ZSBiZWVuIHNwbGl0ZWQKaW4g
c2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFguaCBhbmQg
U2VhcmNoUG9wdXBNZW51WFhYLmgpLgpFYWNoIG9mIG5ldyB0aGUgZmlsZXMgY29udGFpbiB0aGUg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1lbnUgb3IKU2VhcmNoUG9w
dXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtLgoK
YnJldzoKCiogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNvcmU6OlBvcHVw
TWVudUJyZXc6OlBvcHVwTWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6Omhp
ZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL2JyZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OmNsaWVudCk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVCcmV3OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgoKY2hy
b21pdW06CgoqIFdlYkNvcmUuZ3lwaToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0p
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSk6CihXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQp
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQpOgoqIHBsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJv
bWl1bTo6Y2xpZW50KToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0pOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSk6
CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMpOgoqIHBsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmg6IEFkZGVkLgoKZWZsOgoKKiBwbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51
RWZsKToKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFk
ZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgoqIHBsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQ
b3B1cE1lbnVFZmwpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51RWZsOjplbmFibGVkKToKKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmg6IEFkZGVkLgoKZ3RrOgoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKToKKFdl
YkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVudUd0ayk6CihXZWJDb3JlOjpQb3B1cE1lbnVH
dGs6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKFdlYkNvcmU6OlBvcHVw
TWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpkaXNj
b25uZWN0Q2xpZW50KToKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQp
OgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQpOgooV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbik6CihXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKToKKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgooV2Vi
Q29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgoqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVH
dGspOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmg6IEFk
ZGVkLgoKaGFpa3U6CgoqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcDoKKFdlYkNv
cmU6OkhhaWt1UG9wdXA6OkhhaWt1UG9wdXApOgooV2ViQ29yZTo6SGFpa3VQb3B1cDo6fkhhaWt1
UG9wdXApOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KToKKFdlYkNv
cmU6OlBvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UpOgooV2ViQ29yZTo6UG9wdXBNZW51
SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OnNob3cp
OgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmhpZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBwbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5o
OiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKFdl
YkNvcmU6OlBvcHVwTWVudUhhaWt1OjpjbGllbnQpOgoqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBv
cHVwTWVudUhhaWt1LmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSk6CiogcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuaDogQWRkZWQuCgptYWM6CgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmg6IEFkZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNjb25uZWN0Q2xpZW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgooV2ViQ29yZTo6
UG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xl
YXIpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CihXZWJDb3JlOjpQb3B1cE1l
bnVNYWM6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51TWFjOjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJj
aGVzKToKCnF0OgoKKiBXZWJDb3JlLnBybzoKKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6
CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQpOgooV2ViQ29yZTo6UG9wdXBNZW51
UXQ6On5Qb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6
aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgoqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oOgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVRdDo6cG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVj
ZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CiogcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCgp3aW46CgoqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgooV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp+UG9w
dXBNZW51V2luKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmhpZGUpOgooV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp2aXNpYmxlSXRl
bXMpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9j
dXNGaXJzdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmRvd24pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp1cCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Y2xpZW50UmVjdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEp
OgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyk6
CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNsaWVudCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhcik6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46Oml0ZW1I
ZWlnaHQpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3aW5kb3dSZWN0KToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6cG9wdXBIYW5kbGUpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRXYXND
bGlja2VkKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2FzQ2xpY2tlZCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNj
cm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndoZWVsRGVsdGEpOgooV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSk6CihXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKToKKiBwbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNo
UG9wdXBNZW51V2luKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5oOiBBZGRlZC4KCndrOgoKKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6CihXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6UG9wdXBNZW51V3g6On5Q
b3B1cE1lbnVXeCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXeDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51
SXRlbVNlbGVjdGVkKToKKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
aDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6Y2xpZW50KToKKiBwbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNo
UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudVd4Ojpwb3B1cE1lbnUpOgoqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6
IEFkZGVkLgoKQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bwppbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCiogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgoKV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVw
TWVudSk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXQv
d2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6Cgoq
IFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoK
V2ViS2l0MjoKCkNsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdCBmcm9tIFBvcHVwTWVudSBhbmQKU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1
cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViS2l0
OjpXZWJQb3B1cE1lbnU6OnNob3cpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgooV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CihXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6
cG9wdXBNZW51KToKKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMpOgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCgpBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQppbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21l
Q2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCmltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpidWlsZCBpc3N1ZXM6CgoqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjc5ICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgICA4ICsKIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxNCArLQogV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrCiBXZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKystCiBXZWJD
b3JlL3BhZ2UvQ2hyb21lLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKwog
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5
ICsKIFdlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmggICAgICAgICAgICAgICAgICAgICAgIHwg
IDE3NiArLS0tLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oICAg
ICAgICAgICAgICAgICB8ICAgMjEgKy0KIFdlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVC
cmV3LmNwcCAgICAgICAgICAgIHwgICAyNiArKy0KIFdlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1
cE1lbnVCcmV3LmggICAgICAgICAgICAgIHwgICA1NCArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2Jy
ZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZv
cm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmggICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwICAgIHwgICAyMyArLQogV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oICAgICAgfCAgIDE5ICsr
CiAuLi4vcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwICB8ICAg
MTggKy0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oICAg
IHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAgICAgICAg
ICAgICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmggICAg
ICAgICAgICAgICAgfCAgIDU0ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVw
TWVudUVmbC5jcHAgICAgICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNo
UG9wdXBNZW51RWZsLmggICAgICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcCAgICAgICAgICAgICAgfCAgIDI1ICstCiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuaCAgICAgICAgICAgICAgICB8ICAgNjcgKysrKysKIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAgICAgICAgIHwgICAxOSArLQogV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggICAgICAgICAgfCAgIDQ0ICsr
KwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAgICAgICAgICAgfCAg
IDMxICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5oICAgICAgICAg
ICAgfCAgIDU2ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFp
a3UuY3BwICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1l
bnVIYWlrdS5oICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmggICAgICAgICAgICAgICAgfCAgIDYyICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Q
b3B1cE1lbnVNYWMubW0gICAgICAgICAgICAgICB8ICAgMjIgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxh
dGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbSAgICAgICAgIHwgICAxOCArLQogV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAgICAgICAgICAgICAgICAgfCAgIDI1ICstCiBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmggICAgICAgICAgICAgICAgICB8ICAgNDkg
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCAgICAgICAgICAg
fCAgICAyICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCAgICAg
ICAgICB8ICAgMjAgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaCAg
ICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHAgICAgICAgICAgICAgIHwgICA2NSArKystLS0KIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5oICAgICAgICAgICAgICAgIHwgICA5OCArKysrKysrCiBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxh
dGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNv
cmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwICAgICAgICAgICAgICAgIHwgICAyOSArLQog
V2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5oICAgICAgICAgICAgICAgICAgfCAgIDY0
ICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmNwcCAgICAgICAg
ICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaCAgICAg
ICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAg
ICAgICAgICAgICAgIHwgICAgNyArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
aCAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwICB8ICAgMTcgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oICAgIHwgICAgNCArLQogV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgICAgICAgIHwgICAgOCArCiBXZWJL
aXQvZWZsL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysK
IFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCAgICAgIHwgICAx
OCArKwogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCAgICAgICAg
fCAgICA1ICsKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNyArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwICAgICAgfCAgIDE5ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oICAgICAgICB8ICAgMTEgKwogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuY3BwICB8ICAgMTggKysKIFdlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oICAgIHwgICAgNSArCiBXZWJLaXQvbWFjL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgICAgIHwgICAgNiArLQogV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gICAgICAgfCAgIDIxICsrLQogV2Vi
S2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsr
CiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAg
MTggKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAgICAgICAg
IHwgICAgNSArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCAgICAgIHwgICAxOCArKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCAgICAgICAgfCAgICA1ICsKIFdlYktpdC93eC9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guY3BwICAgICAgICAgfCAgIDE4ICsrCiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oICAgICAgICAgICB8ICAgIDUgKwogV2ViS2l0Mi9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQxICsrKwogV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDE2ICsrCiAuLi4vV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwICB8ICAgMTcgKysKIC4u
Li9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgNCAr
CiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCB8ICAg
NTYgKysrKwogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5o
ICAgfCAgIDQ4ICsrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
ICAgICAgICAgIHwgICA1MCArKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
ZWFyY2hQb3B1cE1lbnUuaCB8ICAgNDQgKysrCiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysKIDg3IGZpbGVzIGNoYW5nZWQsIDIyMDAg
aW5zZXJ0aW9ucygrKSwgMzc5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNv
cmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVu
dUhhaWt1LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJj
aFBvcHVwTWVudUhhaWt1LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9Qb3B1cE1lbnVNYWMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbWFj
L1NlYXJjaFBvcHVwTWVudU1hYy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Qb3B1cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxh
dGZvcm0vd3gvUG9wdXBNZW51V3guaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQwZTk5MTguLmEzMjZkOTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjgyIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAg
ICAgIENsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUgaGF2ZSBiZWVuIG1hZGUg
cHVyZSB2aXJ0dWFsLiAKKworICAgICAgICAqIHBsYXRmb3JtL1BvcHVwTWVudS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp+UG9wdXBNZW51KToKKyAgICAgICAgKiBwbGF0Zm9ybS9T
ZWFyY2hQb3B1cE1lbnUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6flNl
YXJjaFBvcHVwTWVudSk6CisKKyAgICAgICAgQ2xhc3NlcyBSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4eUNvbnRyb2xTaW5nbGVMaW5lIGhhdmUgYmVlbiBjaGFuZ2VkIHRvIHVzZQorICAgICAg
ICB0aGUgbmV3IHB1cmUgdmlydHVhbCBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2Vk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisK
KyAgICAgICAgQ2hyb21lIGFuZCBDaHJvbWVDbGllbnQgd2VyZSBtYWRlIHJlc3BvbnNpYmxlIGZv
ciBwcm92aWRpbmcgaW5zdGFuY2VzIG9mIGNsYXNzZXMgCisgICAgICAgIFBvcHVwTWVudSBhbmQg
U2VhcmNoUG9wdXBNZW51IHRvIGl0cyB1c2Vycy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0
eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNl
YXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlT
ZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eVNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNo
cm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAg
IChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZTo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisKKyAgICAgICAgT3JpZ2luYWwgY29udGVudHMgb2YgZmlsZXMgUG9w
dXBNZW51LmggYW5kIFNlYXJjaFBvcHVwTWVudS5oIGhhdmUgYmVlbiBzcGxpdGVkIAorICAgICAg
ICBpbiBzZXZlcmFsIGZpbGVzLCB0d28gZm9yIGVhY2ggcGxhdGZvcm0gKFBvcHVwTWVudVhYWC5o
IGFuZCBTZWFyY2hQb3B1cE1lbnVYWFguaCkuCisgICAgICAgIEVhY2ggb2YgbmV3IHRoZSBmaWxl
cyBjb250YWluIHRoZSBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmb3JtIFBvcHVwTWVu
dSBvciAKKyAgICAgICAgU2VhcmNoUG9wdXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBj
b3JyZXNwb25kaW5nIHBsYXRmb3JtLgorCisgICAgICAgIGJyZXc6CisKKyAgICAgICAgKiBwbGF0
Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
QnJldzo6UG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3Ojp+
UG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpkaXNjb25u
ZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVCcmV3Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vYnJl
dy9Qb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJl
dzo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6c2F2ZVJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OmxvYWRSZWNl
bnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3OjpTZWFy
Y2hQb3B1cE1lbnVCcmV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6
OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6cG9wdXBN
ZW51KToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaDogQWRk
ZWQuCisKKyAgICAgICAgY2hyb21pdW06CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OlBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjp+UG9wdXBNZW51Q2hyb21pdW0pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51Q2hyb21pdW06OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hy
b21pdW06OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNo
cm9taXVtOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06
OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dUNocm9taXVtOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW06OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hy
b21pdW06OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVDaHJvbWl1bTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oOiBBZGRlZC4KKworICAgICAgICBlZmw6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVF
Zmw6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51RWZsOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQb3B1
cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50
U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjplbmFibGVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmg6IEFkZGVkLgor
CisgICAgICAgIGd0azoKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
R3RrOjpQb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjp+UG9w
dXBNZW51R3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51R3RrOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVHdGs6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3Rr
OjptZW51SXRlbUFjdGl2YXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVVbm1hcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1lbnVQb3NpdGlv
bkZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudVJlbW92ZUl0
ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVHdGs6OlNlYXJjaFBvcHVwTWVudUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVHdGs6OnBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVHdGs6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVHdGs6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVHdGs6OmVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1
cE1lbnVHdGsuaDogQWRkZWQuCisKKyAgICAgICAgaGFpa3U6CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIYWlrdVBvcHVw
OjpIYWlrdVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhhaWt1UG9wdXA6On5IYWlrdVBvcHVw
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpQb3B1cE1lbnVIYWlrdSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6flBvcHVwTWVudUhhaWt1KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudUhhaWt1OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1Ojp1cGRh
dGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3Uu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6Y2xpZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6U2VhcmNoUG9wdXBNZW51SGFpa3UpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnNhdmVSZWNlbnRTZWFyY2hlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpwb3B1cE1lbnUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1Lmg6IEFkZGVkLgorCisg
ICAgICAgIG1hYzoKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUG9w
dXBNZW51TWFjLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNj
b25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6
Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51TWFjOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6dXBkYXRl
RnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1
cE1lbnVNYWMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjplbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJjaGVz
KToKKworICAgICAgICBxdDoKKworICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0
OjpQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0Ojp1cGRh
dGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudVF0Ojpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51UXQ6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnVRdDo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TZWFyY2hQ
b3B1cE1lbnVRdC5oOiBBZGRlZC4KKworICAgICAgICB3aW46CisKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V2luKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6flBvcHVwTWVudVdpbik6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpwb3B1cENsYXNzTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpoaWRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0Rm9jdXNlZEluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmlzaWJsZUl0ZW1zKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6bGlzdEluZGV4QXRQb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzZWRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OmZvY3VzRmlyc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpm
b2N1c0xhc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpkb3duKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dXApOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjppbnZhbGlkYXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46
OmNsaWVudFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjppbmNyZW1lbnRX
aGVlbERlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6cmVkdWNlV2hlZWxE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbFRvUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dXBkYXRlRnJvbUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpwYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6cmVnaXN0ZXJDbGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVXaW46OlBvcHVwTWVudVduZFByb2MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2lu
Ojp3bmRQcm9jKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpjbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjppdGVtSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0V2FzQ2xpY2tlZCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Ondhc0NsaWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpzZXRTY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpzY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3
aGVlbERlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xsYmFyQ2Fw
dHVyaW5nTW91c2UpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRTY3JvbGxi
YXJDYXB0dXJpbmdNb3VzZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXaW46OlNlYXJjaFBv
cHVwTWVudVdpbik6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXaW46OnBvcHVw
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXaW46OmVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpzYXZlUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpsb2FkUmVjZW50U2VhcmNo
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaDogQWRkZWQu
CisKKyAgICAgICAgd2s6CisKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51V3g6On5Qb3B1cE1lbnVXeCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVXeDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51SXRlbVNl
bGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vd3gvUG9wdXBNZW51V3guaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVXeDo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNoUG9wdXBNZW51
V3gpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4Ojpwb3B1cE1lbnUpOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6IEFkZGVkLgorCisKKwogMjAxMC0w
Ny0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDZmZWZjOGIuLjE4ODVjOTIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMjQ2MCw2ICsyNDYwLDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51
R3RrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmggXAogCVdlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3Rr
LmNwcCBcCkBAIC0yNDY4LDYgKzI0NjksNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmggXAogCVdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQ
b3B1cE1lbnVHdGsuY3BwIFwKKwlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVH
dGsuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Tb3VuZEd0ay5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZGZiZDE1MC4uZDY2NzljYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0yNTAsNiArMjUwLDcgQEAgX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2UyN2NoZWNrSW50ZWdy
aXR5QmVmb3JlT3BlbmluZ0V2CiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTRvcGVuRVJLTlNf
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNWNsb3NlRXYKIF9fWk43V2ViQ29y
ZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJY29uRGF0YWJhc2VDbGllbnRFCitfX1pO
N1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2Vi
Q29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0
U2l6ZUUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTZpc1BhZ2VCb3hWaXNpYmxlRVBOU181
RnJhbWVFaQpAQCAtNDA4LDYgKzQwOSw3IEBAIF9fWk43V2ViQ29yZTE3bmFtZUZvckN1cnNvclR5
cGVFTlNfNkN1cnNvcjRUeXBlRQogX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVQS2NS
aQogX19aTjdXZWJDb3JlMThkZXByZWNhdGVkUGFyc2VVUkxFUktOU182U3RyaW5nRQogX19aTjdX
ZWJDb3JlMThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkUKK19fWk43
V2ViQ29yZTE4U2VhcmNoUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19a
TjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTZyZXN1bWVBbmltYXRpb25zRVBOU184RG9j
dW1lbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1c3BlbmRBbmltYXRp
b25zRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIyMHBh
dXNlQW5pbWF0aW9uQXRUaW1lRVBOU18xMlJlbmRlck9iamVjdEVSS05TXzZTdHJpbmdFZApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBhYWZiMjIyLi42Y2I1ZmNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjEyMiw2ICsyMTIyLDcgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTWFjLm1tJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtV2luLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0u
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TaGFyZWRUaW1lckNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU291bmRDaHJvbWl1bVBv
c2l4LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU291bmRDaHJvbWl1bVdp
bi5jcHAnLApAQCAtMjYxNCw2ICsyNjE1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
UGFzdGVib2FyZE1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BsYXRmb3JtTW91
c2VFdmVudE1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVu
TWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0nLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tJywKQEAgLTI2MjEsNiArMjYyMyw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0nLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0nLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TZWFy
Y2hQb3B1cE1lbnVNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5t
bScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1NoYXJlZFRpbWVyTWFjLm1tJywKQEAgLTI3
NzEsNiArMjc3NCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUGxhdGZvcm1Nb3VzZUV2
ZW50UXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9x
dC9RV2ViUG9wdXAuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9RV2ViUG9wdXAuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAnLApAQCAtMjc4MSw2
ICsyNzg1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TY3JvbGxiYXJUaGVtZVF0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2Nyb2xsYmFyVGhlbWVRdC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3F0L1NoYXJlZEJ1ZmZlclF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2hhcmVk
VGltZXJRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NvdW5kUXQuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDA3NTE4MDkuLmMwZGNkMTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTcwNSw2ICsxNzA1LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIFwKICAgICBwbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoRXZlbnQuaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50
LmggXAorICAgIHBsYXRmb3JtL1BvcHVwTWVudS5oIFwKICAgICBwbGF0Zm9ybS9xdC9DbGlwYm9h
cmRRdC5oIFwKICAgICBwbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oIFwKICAgICBwbGF0Zm9y
bS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCBcCkBAIC0xNzE0LDYgKzE3MTUsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBwbGF0Zm9ybS9TY3JvbGxiYXIuaCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFy
VGhlbWVDb21wb3NpdGUuaCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsVmlldy5oIFwKKyAgICBwbGF0
Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggXAog
ICAgIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIFwKICAgICBwbGF0Zm9ybS9zcWwvU1FM
aXRlRmlsZVN5c3RlbS5oIFwKQEAgLTMyODUsNiArMzI4Nyw4IEBAIEhFQURFUlMgKz0gXAogICAg
IC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFcnJvcnMuaCBcCiAgICAg
Li4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBvcHVwTWVudS5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmggXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oIFwKQEAgLTMzNTcsNiArMzM2MSw4IEBAIFNPVVJDRVMgKz0gXAogICAgIC4u
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmFja0ZvcndhcmRDb250cm9sbGVyQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAorICAgIC4uL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwKICAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwIFwK
ICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0Fy
ZWEuY3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODljMDdkNS4uY2Qz
OTM0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMzcyMCw2ICsy
MzcyMCwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFBvcHVwTWVudVdpbi5oIg0KKwkJCQkJPg0KKwkJCQk8
L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxT
Y3JvbGxiYXJUaGVtZVNhZmFyaS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC0yMzc0
MCw2ICsyMzc0NCwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNlYXJjaFBvcHVwTWVudVdpbi5oIg0KKwkJ
CQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXHdpblxTaGFyZWRCdWZmZXJXaW4uY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NDVhYTVkLi4y
MDNkZmU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NDIsNyArNDIsNyBAQAogCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2
NUFENEYyMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NUFENEY2MEIwQzJFREEw
MDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjMwQjBDMkVEQTAwNUEyQjFEIC8qIENv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgKi87IH07CiAJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIx
RCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEY0MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVu
dUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0
MTI4RTAgLyogUG9wdXBNZW51LmggKi87IH07CisJCTA2NjhFMThCMEFERDk2MjQwMDQxMjhFMCAv
KiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjY4RTE5MDBBREQ5NjQwMDA0
MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5t
bSAqLzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZDNzcyQTBBQjYw
M0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjZDNzcyRDBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNo
b29zZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gKi87IH07CkBA
IC0zNTgyLDEyICszNTgyLDEyIEBACiAJCUFCNENCNEVCMEI4QkRBM0QwMDlGNDBCMCAvKiBKU0hU
TUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQjRDQjRFQTBCOEJEQTNEMDA5RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxl
bWVudEN1c3RvbS5oICovOyB9OwogCQlBQjY3RDFBODA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVy
VGV4dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmNwcCAq
LzsgfTsKIAkJQUI2N0QxQTkwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNzA5
N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuaCAqLzsgfTsKLQkJQUI3MTcwODkw
QjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8qIFNl
YXJjaFBvcHVwTWVudS5oICovOyB9OworCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0UgLyogU2Vh
cmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUI3MTcwQTAwQjMx
MTkzQjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDlGMEIzMTE5M0IwMDE3MTIzRSAvKiBT
ZWFyY2hQb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCUFCQUYyMjA4MEMwM0IxQzcwMEIwQkNGMCAv
KiBDaHJvbWVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQkFGMjIwNzBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tICovOyB9OwogCQlB
QkI1NDE5RTBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkI1NDE5QzBBQ0RERkU0MDAyODIw
RUIgLyogUmVuZGVyTGlzdEJveC5jcHAgKi87IH07CiAJCUFCQjU0MTlGMEFDRERGRTQwMDI4MjBF
QiAvKiBSZW5kZXJMaXN0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQkI1NDE5RDBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oICov
OyB9OwotCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3NjBCMzNB
QTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggKi87IH07CisJCUFCQzEyODc3MEIzM0FB
NkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1l
bnVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBQkRERkU3OTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzMwQTVDNkU2
RjAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmNwcCAqLzsgfTsKIAkJQUJEREZFN0EwQTVDNkU3
MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBQkRERkU3NDBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVu
dUxpc3QuaCAqLzsgfTsKIAkJQUJGRTdFMTIwRDMyRkFGNjAwNjZGNEQyIC8qIE1lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFCRkU3RTEwMEQzMkZBRjUwMDY2RjREMiAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAg
Ki87IH07CkBAIC01MDA4LDYgKzUwMDgsOCBAQAogCQlEMjNDQTU1RDBBQjBFQUFFMDA1MTA4QTUg
LyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24u
aCAqLzsgfTsKIAkJRDIzQ0E1NUYwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1
NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovOyB9OwogCQlEMjND
QTU2QzBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAv
KiBSYW5nZUV4Y2VwdGlvbi5oICovOyB9OworCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyog
UG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRDM5RDAwOUQxMUY5MDdF
NjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJj
aFBvcHVwTWVudU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4
NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIy
M0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsK
IAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4
RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKQEAgLTEwNjc2LDYg
KzEwNjc4LDggQEAKIAkJRDIzQ0E1NUMwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1
IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTUmFuZ2VFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51TWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFy
Y2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNo
UG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAz
MjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhE
MjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0
ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91
dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIyMiwxMCAr
MTIyMjYsMTIgQEAKIAkJCQk0QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1h
Yy5tbSAqLywKIAkJCQk5MzVDNDc2RjA5QUM0RDczMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2
ZW50TWFjLm1tICovLAogCQkJCUJDOTREMTA3MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNj
cmVlbk1hYy5tbSAqLywKKwkJCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51
TWFjLmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5t
bSAqLywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFj
LmNwcCAqLywKIAkJCQk0NDdENjkwMTBGQTYyNjgxMDAxNUNDQjEgLyogUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmggKi8sCiAJCQkJNDQ3RDY5MDIwRkE2MjY4MTAwMTVDQ0IxIC8qIFJ1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5tbSAqLywKKwkJCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyog
U2VhcmNoUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJMUNFMjRGOTYwRDdDQUYwRTAwN0UwNEMyIC8q
IFNjaGVkdWxlUGFpck1hYy5tbSAqLywKIAkJCQlCQ0FBOTBDMjBBN0VCQTYwMDA4QjEyMjkgLyog
U2Nyb2xsYmFyLmNwcCAqLywKIAkJCQlCQzhCODUzQzBFN0M3RjExMDBBQjY5ODQgLyogU2Nyb2xs
YmFyVGhlbWVNYWMuaCAqLywKQEAgLTE5ODQ3LDYgKzE5ODUzLDggQEAKIAkJCQlFMUJFNTEyRTBD
RjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2RlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlEMzlEMDA2RDExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlEMzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFj
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTkzOGJiYy4uY2M2Mjcx
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA2IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArNDAsOSBAQAog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVu
dS5oIgogCiAvKgogIFRoaXMgZmlsZSBob2xkcyBlbXB0eSBDbGllbnQgc3R1YnMgZm9yIHVzZSBi
eSBXZWJDb3JlLgpAQCAtNTYsNiArNTksMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBFbXB0eVBvcHVwTWVudSA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIHZp
cnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQpIHt9CisgICAg
dmlydHVhbCB2b2lkIGhpZGUoKSB7fQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVu
dCgpIHt9CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7fQorfTsKKworY2xh
c3MgRW1wdHlTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCkgeyByZXR1cm4gJm1fcG9wdXA7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jikge30KKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+Jikge30KKyAgICB2
aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3ByaXZhdGU6CisgICAg
RW1wdHlQb3B1cE1lbnUgbV9wb3B1cDsKK307CisKIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDog
cHVibGljIENocm9tZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RW1wdHlDaHJvbWVD
bGllbnQoKSB7IH0KQEAgLTEwOCw2ICsxMzAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50
ZXJydXB0SmF2YVNjcmlwdCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlQb3B1cE1lbnUoKSk7
IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVt
cHR5U2VhcmNoUG9wdXBNZW51KCkpOyB9CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFy
VGV4dChjb25zdCBTdHJpbmcmKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDBjNjY5MjUuLjlmZWVhMWEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ4Miw1ICs0ODIsMjAgQEAgYm9vbCBD
aHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tU2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZTo6c2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBtX2NsaWVu
dC0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKK30KKworUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlUG9wdXBNZW51KGNsaWVu
dCk7Cit9CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jbGllbnQtPmNyZWF0ZVNlYXJjaFBvcHVwTWVudShjbGllbnQpOworfQorCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAppbmRleCA1Mzc0NjhhLi4zMGVkZjI4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yNCw2ICsyNSw4IEBACiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKICNpbmNsdWRlICJG
b2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtNDQsNiArNDcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBOb2RlOwogICAg
IGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogICAgIGNsYXNzIFN0cmlu
ZzsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBjbGFzcyBOb3RpZmljYXRpb25QcmVz
ZW50ZXI7CkBAIC0xNDQsNiArMTQ4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsgCiAj
ZW5kaWYKIAorICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCk7CisgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKICAgICBwcml2
YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIENocm9tZUNsaWVudCogbV9jbGll
bnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzk1YjI1Yy4uMDRhZjc3ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDkgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTI2LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlclF1aXJrcy5oIgogI2luY2x1ZGUgIkhvc3RXaW5k
b3cuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Myw2ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFn
ZTsKKyAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5nOwogICAgIGNs
YXNzIFdpZGdldDsKIApAQCAtMjUyLDYgKzI1NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc01pbmltaXplZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdCA9IDA7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwg
fkNocm9tZUNsaWVudCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L1BvcHVwTWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAppbmRleCBkOWQyNzQw
Li44ZWJiYTAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDE4MCArMjEsMjIgQEAKICNpZm5k
ZWYgUG9wdXBNZW51X2gKICNkZWZpbmUgUG9wdXBNZW51X2gKIAotI2luY2x1ZGUgIkludFJlY3Qu
aCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLSNpZiBQTEFURk9STShNQUMpCi0j
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotI2lmZGVmIF9fT0JKQ19fCi1AY2xhc3MgTlNQb3BV
cEJ1dHRvbkNlbGw7Ci0jZWxzZQotY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7Ci0jZW5kaWYKLSNl
bGlmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJTY3JvbGxiYXIuaCIKLSNpbmNsdWRlICJTY3Jv
bGxiYXJDbGllbnQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBI
V05EX18qIEhXTkQ7Ci10eXBlZGVmIHN0cnVjdCBIRENfXyogSERDOwotdHlwZWRlZiBzdHJ1Y3Qg
SEJJVE1BUF9fKiBIQklUTUFQOwotI2VsaWYgUExBVEZPUk0oUVQpCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7Ci19Ci0jZWxpZiBQTEFURk9STShHVEspCi10
eXBlZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwotdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJ
dGVtIEd0a01lbnVJdGVtOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7Ci0j
aW5jbHVkZSAiR1JlZlB0ckd0ay5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8Z2xpYi5oPgotI2VsaWYgUExBVEZPUk0oV1gpCi0jaWZkZWYgX19XWE1TV19fCi0jaW5jbHVk
ZSA8d3gvbXN3L3dpbnVuZGVmLmg+Ci0jZW5kaWYKLWNsYXNzIHd4TWVudTsKLSNpbmNsdWRlIDx3
eC9kZWZzLmg+Ci0jaW5jbHVkZSA8d3gvZXZlbnQuaD4KLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVN
KQotI2luY2x1ZGUgIlBvcHVwTWVudVByaXZhdGUuaCIKLSNlbGlmIFBMQVRGT1JNKEhBSUtVKQot
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUG9wdXBNZW51SGFpa3U7Ci19Ci0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZVZpZXc7Ci1jbGFzcyBTY3JvbGxiYXI7
CitjbGFzcyBJbnRSZWN0OwogCi1jbGFzcyBQb3B1cE1lbnUgOiBwdWJsaWMgUmVmQ291bnRlZDxQ
b3B1cE1lbnU+Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgICAgICAgICAgICAgICwgcHJpdmF0ZSBT
Y3JvbGxiYXJDbGllbnQKLSNlbmRpZgotI2lmIFBMQVRGT1JNKFdYKQotICAgICAgICAgICAgICAg
ICwgcHVibGljIHd4RXZ0SGFuZGxlcgotI2VuZGlmCi17CitjbGFzcyBQb3B1cE1lbnUgOiBwdWJs
aWMgUmVmQ291bnRlZDxQb3B1cE1lbnU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFBvcHVwTWVudShjbGllbnQpKTsgfQotICAgIH5Qb3B1cE1lbnUoKTsKLSAgICAK
LSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQgPSAwOyB9Ci0KLSAg
ICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7Ci0gICAg
dm9pZCBoaWRlKCk7Ci0KLSAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgCi0gICAg
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9
Ci0KLSAgICBzdGF0aWMgYm9vbCBpdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwotCi0j
aWYgUExBVEZPUk0oV0lOKQotICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KLQotICAgIHN0YXRpYyBMUENUU1RSIHBvcHVwQ2xhc3NO
YW1lKCk7Ci0KLSAgICBib29sIHVwKHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0gICAgYm9vbCBkb3du
KHVuc2lnbmVkIGxpbmVzID0gMSk7Ci0KLSAgICBpbnQgaXRlbUhlaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1faXRlbUhlaWdodDsgfQotICAgIGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QoKSBjb25z
dCB7IHJldHVybiBtX3dpbmRvd1JlY3Q7IH0KLSAgICBJbnRSZWN0IGNsaWVudFJlY3QoKSBjb25z
dDsKLQotICAgIGludCB2aXNpYmxlSXRlbXMoKSBjb25zdDsKLQotICAgIGludCBsaXN0SW5kZXhB
dFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0KLSAgICBib29sIHNldEZvY3VzZWRJbmRl
eChpbnQgaW5kZXgsIGJvb2wgaG90VHJhY2tpbmcgPSBmYWxzZSk7Ci0gICAgaW50IGZvY3VzZWRJ
bmRleCgpIGNvbnN0OwotICAgIHZvaWQgZm9jdXNGaXJzdCgpOwotICAgIHZvaWQgZm9jdXNMYXN0
KCk7Ci0KLSAgICB2b2lkIHBhaW50KGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIEhEQyA9IDAp
OwotCi0gICAgSFdORCBwb3B1cEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXA7IH0KLQot
ICAgIHZvaWQgc2V0V2FzQ2xpY2tlZChib29sIGIgPSB0cnVlKSB7IG1fd2FzQ2xpY2tlZCA9IGI7
IH0KLSAgICBib29sIHdhc0NsaWNrZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0NsaWNrZWQ7IH0K
LQotICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGludCBvZmZzZXQpIHsgbV9zY3JvbGxPZmZzZXQg
PSBvZmZzZXQ7IH0KLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zY3Jv
bGxPZmZzZXQ7IH0KLQotICAgIGJvb2wgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKLQotICAg
IHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIHZvaWQgcmVkdWNlV2hl
ZWxEZWx0YShpbnQgZGVsdGEpOwotICAgIGludCB3aGVlbERlbHRhKCkgY29uc3QgeyByZXR1cm4g
bV93aGVlbERlbHRhOyB9Ci0KLSAgICBib29sIHNjcm9sbGJhckNhcHR1cmluZ01vdXNlKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsgfQotICAgIHZvaWQgc2V0U2Ny
b2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2Ug
PSBiOyB9Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50
OwotICAgIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBw
b3B1bGF0ZSgpOwotCi0gICAgUmV0YWluUHRyPE5TUG9wVXBCdXR0b25DZWxsPiBtX3BvcHVwOwot
I2VsaWYgUExBVEZPUk0oUVQpCi0gICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBtX3BvcHVwOwotI2Vs
aWYgUExBVEZPUk0oV0lOKQotICAgIC8vIFNjcm9sbEJhckNsaWVudAotICAgIHZpcnR1YWwgdm9p
ZCB2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHNj
cm9sbGJhckNvcm5lclByZXNlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgdm9p
ZCBjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyopOwot
ICAgIHZvaWQgaW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KTsKLQotICAgIHN0YXRpYyBMUkVTVUxU
IENBTExCQUNLIFBvcHVwTWVudVduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwot
ICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJh
bSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDbGFzcygpOwotCi0g
ICAgUmVmUHRyPFNjcm9sbGJhcj4gbV9zY3JvbGxiYXI7Ci0gICAgSFdORCBtX3BvcHVwOwotICAg
IEhEQyBtX0RDOwotICAgIEhCSVRNQVAgbV9ibXA7Ci0gICAgYm9vbCBtX3dhc0NsaWNrZWQ7Ci0g
ICAgSW50UmVjdCBtX3dpbmRvd1JlY3Q7Ci0gICAgaW50IG1faXRlbUhlaWdodDsKLSAgICBpbnQg
bV9zY3JvbGxPZmZzZXQ7Ci0gICAgaW50IG1fd2hlZWxEZWx0YTsKLSAgICBpbnQgbV9mb2N1c2Vk
SW5kZXg7Ci0gICAgYm9vbCBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOwotICAgIGJvb2wgbV9z
aG93UG9wdXA7Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAgSW50UG9pbnQgbV9tZW51UG9zaXRp
b247Ci0gICAgR1JlZlB0cjxHdGtNZW51PiBtX3BvcHVwOwotICAgIEhhc2hNYXA8R3RrV2lkZ2V0
KiwgaW50PiBtX2luZGV4TWFwOwotICAgIHN0YXRpYyB2b2lkIG1lbnVJdGVtQWN0aXZhdGVkKEd0
a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnUqKTsKLSAgICBzdGF0aWMgdm9pZCBtZW51VW5tYXBw
ZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51Kik7Ci0gICAgc3RhdGljIHZvaWQgbWVudVBvc2l0aW9u
RnVuY3Rpb24oR3RrTWVudSosIGdpbnQqLCBnaW50KiwgZ2Jvb2xlYW4qLCBQb3B1cE1lbnUqKTsK
LSAgICBzdGF0aWMgdm9pZCBtZW51UmVtb3ZlSXRlbShHdGtXaWRnZXQqLCBQb3B1cE1lbnUqKTsK
LSNlbGlmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oQlJFV01QKQotICAgIEZyYW1lVmlldyog
bV92aWV3OwotI2VsaWYgUExBVEZPUk0oV1gpCi0gICAgd3hNZW51KiBtX21lbnU7Ci0gICAgdm9p
ZCBPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmKTsKLSNlbGlmIFBMQVRGT1JNKENI
Uk9NSVVNKQotICAgIFBvcHVwTWVudVByaXZhdGUgcDsKLSNlbGlmIFBMQVRGT1JNKEhBSUtVKQot
ICAgIFBvcHVwTWVudUhhaWt1KiBtX21lbnU7Ci0jZW5kaWYKLQorICAgIHZpcnR1YWwgflBvcHVw
TWVudSgpIHt9CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
Y29ubmVjdENsaWVudCgpID0gMDsKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUG9wdXBN
ZW51X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCmluZGV4IDQyODVjZGYuLmQxZWNkMGYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsMjQgKzIzLDIxIEBACiAKICNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXRv
bWljU3RyaW5nOwogCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsK
K2NsYXNzIFNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFNlYXJjaFBvcHVwTWVu
dT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3Jl
YXRlKFBvcHVwTWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNo
UG9wdXBNZW51KGNsaWVudCkpOyB9Ci0KLSAgICB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7
Ci0gICAgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotCi0gICAgYm9vbCBlbmFibGVkKCk7Ci0gICAg
Ci1wcml2YXRlOgotICAgIFNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB2
aXJ0dWFsIH5TZWFyY2hQb3B1cE1lbnUoKSB7fQorICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1
cE1lbnUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgZW5hYmxlZCgpID0gMDsKIH07CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gU2VhcmNoUG9w
dXBNZW51X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcAppbmRleCBlYjAz
YzY2Li4yNGI3Yjg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51
QnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwCkBA
IC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVk
ZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKICAqIENvcHlyaWdodCAoQykgMjAxMCBDb21wYW55IDEwMCwgSW5jLgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVCcmV3
LmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRCcmV3Lmgi
CkBAIC0zMiwyMCArMzMsMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Qb3B1cE1lbnU6
OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIG1lbnVMaXN0KQorUG9wdXBNZW51QnJldzo6UG9w
dXBNZW51QnJldyhQb3B1cE1lbnVDbGllbnQqIG1lbnVMaXN0KQogICAgIDogbV9wb3B1cENsaWVu
dChtZW51TGlzdCkKICAgICAsIG1fdmlldygwKQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1l
bnUoKQorUG9wdXBNZW51QnJldzo6flBvcHVwTWVudUJyZXcoKQogewogICAgIC8vIFRlbGwgY2xp
ZW50IHRvIGRlc3Ryb3kgZGF0YSByZWxhdGVkIHRvIHRoaXMgcG9wdXAgc2luY2UgdGhpcyBvYmpl
Y3QgaXMKICAgICAvLyBnb2luZyBhd2F5LgogICAgIGhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1l
bnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgp
Cit2b2lkIFBvcHVwTWVudUJyZXc6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBD
bGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVudUJyZXc6OnNob3coY29uc3QgSW50UmVjdCYg
cmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKG1fcG9wdXBD
bGllbnQpOwogICAgIENocm9tZUNsaWVudEJyZXcqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0
PENocm9tZUNsaWVudEJyZXcqPih2aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGll
bnQoKSk7CkBAIC01NSw3ICs2MSw3IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJl
Y3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogICAgIGNocm9tZUNsaWVudC0+
Y3JlYXRlU2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5kZXgsIHJlY3QpOwogfQogCi12b2lk
IFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUJyZXc6OmhpZGUoKQogewogICAgIEFT
U0VSVChtX3ZpZXcpOwogICAgIENocm9tZUNsaWVudEJyZXcqIGNocm9tZUNsaWVudCA9IHN0YXRp
Y19jYXN0PENocm9tZUNsaWVudEJyZXcqPihtX3ZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21l
KCktPmNsaWVudCgpKTsKQEAgLTY0LDE0ICs3MCwxNCBAQCB2b2lkIFBvcHVwTWVudTo6aGlkZSgp
CiAgICAgY2hyb21lQ2xpZW50LT5kZXN0cm95U2VsZWN0UG9wdXAoKTsKIH0KIAotdm9pZCBQb3B1
cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51QnJldzo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xpZW50KCktPnNl
bGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19CisvLyBib29sIFBvcHVwTWVudUJy
ZXc6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKKy8vIHsKKy8vICAgICByZXR1cm4g
dHJ1ZTsKKy8vIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Q
b3B1cE1lbnVCcmV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM4OGY5
YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51QnJl
d19oCisjZGVmaW5lIFBvcHVwTWVudUJyZXdfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2lu
Y2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisK
K2NsYXNzIFBvcHVwTWVudUJyZXcgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQ
b3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVCcmV3KCk7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGlu
ZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
cm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3By
aXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIEZyYW1lVmll
dyogbV92aWV3OworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX3BvcHVwQ2xpZW50OyB9CisKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudUJyZXdf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuY3BwCmluZGV4
IDc4MGM3ZTUuLmMyMmNiNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFy
Y2hQb3B1cE1lbnVCcmV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9w
dXBNZW51QnJldy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEw
IENvbXBhbnkgMTAwLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwyOSArMjUsMzQgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVk
ZSAiU2VhcmNoUG9wdXBNZW51QnJldy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFNh
dmUgdGhlIHBhc3Qgc2VhcmNoZXMgc3RvcmVkIGluICdzZWFyY2hJdGVtcycgdG8gYSBkYXRhYmFz
ZSBhc3NvY2lhdGVkIHdpdGggJ25hbWUnCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVCcmV3OjpzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpCiB7CiB9CiAKIC8vIExvYWQgcGFzdCBzZWFyY2hlcyBhc3NvY2lhdGVkIHdpdGggJ25h
bWUnIGZyb20gdGhlIGRhdGFiYXNlIHRvICdzZWFyY2hJdGVtcycKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUJyZXc6OmxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcykKIHsKIH0KIAogLy8gQ3JlYXRlIGEgc2VhcmNoIHBvcHVwIG1lbnUgLSBub3Qgc3Vy
ZSB3aGF0IGVsc2Ugd2UgaGF2ZSB0byBkbyBoZXJlCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQp
CitTZWFyY2hQb3B1cE1lbnVCcmV3OjpTZWFyY2hQb3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKLWJvb2wgU2VhcmNoUG9w
dXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51QnJldzo6ZW5hYmxlZCgpCiB7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUJyZXc6
OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBN
ZW51QnJldy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGVhMTAyCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51QnJl
d19oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUJyZXdfaAorCisjaW5jbHVkZSAiUG9wdXBNZW51
QnJldy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUJyZXcgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51
IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVudCopOwor
CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51
QnJldyBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51QnJld19o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVt
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmlu
ZGV4IDQ3MDFhNzUuLjkwNTEyMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
YykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDgsNyArNDksNiBA
QAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2Ny
ZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCi0jaW5jbHVkZSAiUG9wdXBN
ZW51LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5oIgpAQCAtMTMyMSwyMCArMTMyMSwyMCBA
QCBib29sIFBvcHVwTGlzdEJveDo6aXNQb2ludEluQm91bmRzKGNvbnN0IEludFBvaW50JiBwb2lu
dCkKIH0KIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gUG9wdXBNZW51IGltcGxlbWVudGF0
aW9uCisvLyBQb3B1cE1lbnVDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbgogLy8gCiAvLyBOb3RlOiB5
b3UgY2Fubm90IGFkZCBtZXRob2RzIHRvIHRoaXMgY2xhc3MsIHNpbmNlIGl0IGlzIGRlZmluZWQg
YWJvdmUgdGhlIAogLy8gICAgICAgcG9ydGFiaWxpdHkgbGF5ZXIuIFRvIGFjY2VzcyBtZXRob2Rz
IGFuZCBwcm9wZXJ0aWVzIG9uIHRoZQogLy8gICAgICAgcG9wdXAgd2lkZ2V0cywgdXNlIHxwb3B1
cFdpbmRvd3wgYWJvdmUuIAogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkgCitQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0oUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKIHsKIH0KIAotUG9w
dXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUNocm9taXVtOjp+UG9wdXBNZW51Q2hyb21p
dW0oKQogewotICAgIC8vIFdoZW4gdGhlIFBvcHVwTWVudSBpcyBkZXN0cm95ZWQsIHRoZSBjbGll
bnQgY291bGQgYWxyZWFkeSBoYXZlIGJlZW4KKyAgICAvLyBXaGVuIHRoZSBQb3B1cE1lbnVDaHJv
bWl1bSBpcyBkZXN0cm95ZWQsIHRoZSBjbGllbnQgY291bGQgYWxyZWFkeSBoYXZlIGJlZW4KICAg
ICAvLyBkZWxldGVkLgogICAgIGlmIChwLnBvcHVwKQogICAgICAgICBwLnBvcHVwLT5saXN0Qm94
KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKQEAgLTEzNDUsNyArMTM0NSw3IEBAIFBvcHVwTWVudTo6
flBvcHVwTWVudSgpCiAvLyB0byBkaXNwbGF5LCBoYW5kbGUgdGhlIGlucHV0IHRyYWNraW5nIGFu
ZCBtZW51IGl0ZW0gc2VsZWN0aW9uIGZvciB0aGUgcG9wdXAuCiAvLyBXaW5kb3dzIGFuZCBMaW51
eCBDaHJvbWl1bSBsZXQgb3VyIFdlYktpdCBwb3J0IGhhbmRsZSB0aGUgZGlzcGxheSwgd2hpbGUK
IC8vIGFub3RoZXIgcHJvY2VzcyBtYW5hZ2VzIHRoZSBwb3B1cCB3aW5kb3cgYW5kIGlucHV0IGhh
bmRsaW5nLgotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3
KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUNocm9taXVtOjpzaG93KGNvbnN0IEludFJl
Y3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogewogICAgIGlmICghcC5wb3B1cCkKICAg
ICAgICAgcC5wb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUoY2xpZW50KCksIFBvcHVwQ29u
dGFpbmVyOjpTZWxlY3QsIGRyb3BEb3duU2V0dGluZ3MpOwpAQCAtMTM1NiwyMCArMTM1NiwyMSBA
QCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGlu
dCBpbmRleCkKICNlbmRpZgogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVw
TWVudUNocm9taXVtOjpoaWRlKCkKIHsKICAgICBpZiAocC5wb3B1cCkKICAgICAgICAgcC5wb3B1
cC0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9p
ZCBQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIHAucG9wdXAt
Pmxpc3RCb3goKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgCi17IAotICAgIHJldHVybiBmYWxzZTsgCisK
K3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9w
dXBDbGllbnQgPSAwOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKaW5kZXggYTg1Y2Y0OS4uYTBhMDUy
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1
bS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uaApA
QCAtMzYsNiArMzYsOCBAQAogCiAjaW5jbHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlldy5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnVQcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAxLDYgKzIwMywy
MyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb3B1cE9wZW47CiB9OwogCitjbGFzcyBQb3B1cE1l
bnVDaHJvbWl1bSA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVwTWVudUNo
cm9taXVtKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVDaHJvbWl1bSgpOworCisg
ICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRl
eCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2
YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBQb3B1cE1lbnVQ
cml2YXRlIHA7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fcG9wdXBDbGllbnQ7IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uY3BwCmluZGV4IDg5YmZkZGQuLjE4ZTg2YzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMjksMjkgKzMwLDM0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNs
aWVudCkKK1NlYXJjaFBvcHVwTWVudUNocm9taXVtOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCi1i
b29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVu
dUNocm9taXVtOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKworYm9v
bCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9p
ZCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mOGZmM2FmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bV9oCisjZGVmaW5l
IFNlYXJjaFBvcHVwTWVudUNocm9taXVtX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVt
LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0gOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51
IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnQq
KTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworICAgIAorcHJpdmF0ZToKKyAgICBQ
b3B1cE1lbnVDaHJvbWl1bSBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9w
dXBNZW51Q2hyb21pdW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBN
ZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAKaW5kZXgg
OWRjNjk4Ni4uNDAxZjI0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBN
ZW51RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwCkBA
IC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9r
aWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVt
YmVkZGVkIHN5c3RlbXMKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ry
b25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDI5ICsyMywzMCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnVFZmwuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkNocm9tZUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCitQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
ICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICwgbV92aWV3KDApCiB7CiB9CiAKLVBv
cHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVFZmw6On5Qb3B1cE1lbnVFZmwoKQogewog
ICAgIC8vIFRlbGwgY2xpZW50IHRvIGRlc3Ryb3kgZGF0YSByZWxhdGVkIHRvIHRoaXMgcG9wdXAg
c2luY2UgdGhpcyBvYmplY3QgaXMKICAgICAvLyBnb2luZyBhd2F5LgogICAgIGhpZGUoKTsKIH0K
IAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2
aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUVmbDo6c2hvdyhjb25zdCBJbnRSZWN0JiBy
ZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBBU1NFUlQobV9wb3B1cENs
aWVudCk7CiAgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxD
aHJvbWVDbGllbnRFZmwqPih2aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KSk7CkBAIC01NCw3ICs1Niw3IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogICAgIGNocm9tZUNsaWVudC0+Y3Jl
YXRlU2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5kZXgsIHJlY3QpOwogfQogCi12b2lkIFBv
cHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUVmbDo6aGlkZSgpCiB7CiAgICAgQVNTRVJU
KG1fdmlldyk7CiAgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2Fz
dDxDaHJvbWVDbGllbnRFZmwqPihtX3ZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpKTsKQEAgLTYzLDE0ICs2NSwxNCBAQCB2b2lkIFBvcHVwTWVudTo6aGlkZSgpCiAgICAg
Y2hyb21lQ2xpZW50LT5kZXN0cm95U2VsZWN0UG9wdXAoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51RWZsOjp1cGRhdGVGcm9tRWxlbWVu
dCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJ
bmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpkaXNjb25uZWN0Q2xpZW50KCkKIHsKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmggYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Q
b3B1cE1lbnVFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmJiNmEw
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgK
QEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51RWZsX2gK
KyNkZWZpbmUgUG9wdXBNZW51RWZsX2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRl
ICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3
OworY2xhc3MgU2Nyb2xsYmFyOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFzcyBQb3B1
cE1lbnVFZmwgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVFZmwo
UG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUVmbCgpOworCisgICAgdmlydHVhbCB2
b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmly
dHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAgIFBv
cHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBGcmFtZVZpZXcqIG1fdmlldzsKKwor
ICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVu
dDsgfQorCit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVFZmxfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKaW5kZXggZDE4MTc0Zi4uY2FmZmU1NCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwCkBAIC0yLDYg
KzIsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRl
IFRlY25vbG9naWEKICAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRk
ZWQgc3lzdGVtcwogICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xOSwyOSArMjAsMzQgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCiAKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVu
dCkKK1NlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCitQb3B1cE1lbnUqIFNlYXJjaFBv
cHVwTWVudUVmbDo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKK3Zv
aWQgU2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OmxvYWRS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQo
KQorYm9vbCBTZWFyY2hQb3B1cE1lbnVFZmw6OmVuYWJsZWQoKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9TZWFyY2hQb3B1cE1lbnVFZmwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVw
TWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0Y2IyZTUKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
aApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9w
dXBNZW51RWZsX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51RWZsX2gKKworI2luY2x1ZGUgIlBv
cHVwTWVudUVmbC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUVmbCA6IHB1YmxpYyBTZWFyY2hQb3B1
cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQq
KTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVw
TWVudUVmbCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51RWZs
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCmluZGV4IGJmOGNmYjQuLmNhMDY3
ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcApAQCAtNCw2ICs0LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBtaWtlLmVtbWVs
QGdtYWlsLmNvbQogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVu
dUd0ay5oIgogCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3RrVmVyc2lvbmlu
Zy5oIgpAQCAtMzQsMTIgKzM1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBN
ZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVHdGs6OlBv
cHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQo
Y2xpZW50KQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51R3RrOjp+
UG9wdXBNZW51R3RrKCkKIHsKICAgICBpZiAobV9wb3B1cCkgewogICAgICAgICBnX3NpZ25hbF9o
YW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV9wb3B1cC5nZXQoKSwgR19TSUdOQUxfTUFUQ0hf
REFUQSwgMCwgMCwgMCwgMCwgdGhpcyk7CkBAIC00Nyw3ICs0OCw3IEBAIFBvcHVwTWVudTo6flBv
cHVwTWVudSgpCiAgICAgfQogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0
JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpz
aG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewog
ICAgIEFTU0VSVChjbGllbnQoKSk7CiAKQEAgLTExMCw0MyArMTExLDQzIEBAIHZvaWQgUG9wdXBN
ZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4
KQogICAgIGd0a19tZW51X3BvcHVwKG1fcG9wdXAuZ2V0KCksIDAsIDAsIHJlaW50ZXJwcmV0X2Nh
c3Q8R3RrTWVudVBvc2l0aW9uRnVuYz4obWVudVBvc2l0aW9uRnVuY3Rpb24pLCB0aGlzLCAwLCBn
dGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUo
KQordm9pZCBQb3B1cE1lbnVHdGs6OmhpZGUoKQogewogICAgIEFTU0VSVChtX3BvcHVwKTsKICAg
ICBndGtfbWVudV9wb3Bkb3duKG1fcG9wdXAuZ2V0KCkpOwogfQogCi12b2lkIFBvcHVwTWVudTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVHdGs6OnVwZGF0ZUZyb21FbGVtZW50
KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3RlZElu
ZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQordm9pZCBQb3B1cE1lbnVHdGs6OmRpc2Nvbm5lY3RDbGllbnQoKQogewotICAgIHJldHVy
biB0cnVlOworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVu
dUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQg
UG9wdXBNZW51R3RrOjptZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9wdXBN
ZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5jbGllbnQoKSk7CiAgICAgQVNTRVJU
KHRoYXQtPm1faW5kZXhNYXAuY29udGFpbnMoR1RLX1dJREdFVChpdGVtKSkpOwogICAgIHRoYXQt
PmNsaWVudCgpLT52YWx1ZUNoYW5nZWQodGhhdC0+bV9pbmRleE1hcC5nZXQoR1RLX1dJREdFVChp
dGVtKSkpOwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVudVVubWFwcGVkKEd0a1dpZGdldCosIFBv
cHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQoR3RrV2lkZ2V0
KiwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5jbGllbnQoKSk7CiAg
ICAgdGhhdC0+Y2xpZW50KCktPnBvcHVwRGlkSGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6
bWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqIHgsIGdpbnQqIHksIGdib29sZWFu
KiBwdXNoSW4sIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51UG9zaXRp
b25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCogeCwgZ2ludCogeSwgZ2Jvb2xlYW4qIHB1c2hJbiwg
UG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgICp4ID0gdGhhdC0+bV9tZW51UG9zaXRpb24ueCgp
OwogICAgICp5ID0gdGhhdC0+bV9tZW51UG9zaXRpb24ueSgpOwogICAgICpwdXNoSW4gPSB0cnVl
OwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVudVJlbW92ZUl0ZW0oR3RrV2lkZ2V0KiB3aWRnZXQs
IFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51UmVtb3ZlSXRlbShHdGtX
aWRnZXQqIHdpZGdldCwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5t
X3BvcHVwKTsKICAgICBndGtfY29udGFpbmVyX3JlbW92ZShHVEtfQ09OVEFJTkVSKHRoYXQtPm1f
cG9wdXAuZ2V0KCkpLCB3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmMyMmU1Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmgKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51R3RrX2gKKyNkZWZpbmUgUG9wdXBNZW51
R3RrX2gKKworI2luY2x1ZGUgIkdSZWZQdHJHdGsuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCit0eXBlZGVmIHN0cnVj
dCBfR3RrTWVudSBHdGtNZW51OwordHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVtIEd0a01lbnVJ
dGVtOwordHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFzcyBQ
b3B1cE1lbnVHdGsgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVH
dGsoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUd0aygpOworCisgICAgdmlydHVh
bCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAg
dmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAg
IFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBJbnRQb2ludCBtX21lbnVQb3Np
dGlvbjsKKyAgICBHUmVmUHRyPEd0a01lbnU+IG1fcG9wdXA7CisgICAgSGFzaE1hcDxHdGtXaWRn
ZXQqLCBpbnQ+IG1faW5kZXhNYXA7CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAgIHN0YXRpYyB2b2lkIG1lbnVJdGVt
QWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnVHdGsqKTsKKyAgICBzdGF0aWMg
dm9pZCBtZW51VW5tYXBwZWQoR3RrV2lkZ2V0KiwgUG9wdXBNZW51R3RrKik7CisgICAgc3RhdGlj
IHZvaWQgbWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqLCBnaW50KiwgZ2Jvb2xl
YW4qLCBQb3B1cE1lbnVHdGsqKTsKKyAgICBzdGF0aWMgdm9pZCBtZW51UmVtb3ZlSXRlbShHdGtX
aWRnZXQqLCBQb3B1cE1lbnVHdGsqKTsKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudUd0
a19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcAppbmRleCBm
YmFhNTI3Li5kZmI4NGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQ
b3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVu
dUd0ay5jcHAKQEAgLTEsNCArMSw2IEBACiAvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKICAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKQEAgLTE1LDI5ICsxNywzNCBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnVHdGsuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51R3Rr
OjpTZWFyY2hQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3Bv
cHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBv
cHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUo
KQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwordm9pZCBTZWFyY2hQb3B1cE1lbnVHdGs6
OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudUd0azo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVu
dUd0azo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YzJlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaApAQCAtMCwwICsxLDQ0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51R3RrX2gKKyNkZWZpbmUg
U2VhcmNoUG9wdXBNZW51R3RrX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5oIgorI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNl
YXJjaFBvcHVwTWVudUd0ayA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAg
IFNlYXJjaFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9w
dXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJv
b2wgZW5hYmxlZCgpOworICAgIAorcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVHdGsgbV9wb3B1cDsK
K307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUd0a19oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwCmluZGV4IDVhZGJjNjYuLmUzZWRiODMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwCkBAIC0yLDYgKzIsNyBAQAog
ICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHBvcHVwIG1lbnUgaW1wbGVtZW50YXRpb24gZm9y
IDxzZWxlY3Q+IGVsZW1lbnRzIGluIFdlYkNvcmUuCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDEw
IFN0ZXBoYW4gQcOfbXVzIDxzdXBlcnN0aXBwaUBnbXguZGU+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yMSw3ICsyMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCiAK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKIApAQCAtNzIsOSArNzMsOSBAQCBwcml2YXRlOgogICAg
IFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKIH07CiAKLWNsYXNzIFBvcHVwTWVudUhh
aWt1IDogcHVibGljIEJQb3BVcE1lbnUgeworY2xhc3MgSGFpa3VQb3B1cCA6IHB1YmxpYyBCUG9w
VXBNZW51IHsKIHB1YmxpYzoKLSAgICBQb3B1cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqIHBv
cHVwQ2xpZW50KQorICAgIEhhaWt1UG9wdXAoUG9wdXBNZW51Q2xpZW50KiBwb3B1cENsaWVudCkK
ICAgICAgICAgOiBCUG9wVXBNZW51KCJXZWJDb3JlIFBvcHVwIiwgdHJ1ZSwgZmFsc2UpCiAgICAg
ICAgICwgbV9wb3B1cENsaWVudChwb3B1cENsaWVudCkKICAgICAgICAgLCBtX0hhbmRsZXIocG9w
dXBDbGllbnQpCkBAIC04Niw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgU2V0QXN5bmNBdXRv
RGVzdHJ1Y3QoZmFsc2UpOwogICAgIH0KIAotICAgIHZpcnR1YWwgflBvcHVwTWVudUhhaWt1KCkK
KyAgICB2aXJ0dWFsIH5IYWlrdVBvcHVwKCkKICAgICB7CiAgICAgICAgIGlmIChiZV9hcHAtPkxv
Y2soKSkgewogICAgICAgICAgICAgYmVfYXBwLT5SZW1vdmVIYW5kbGVyKCZtX0hhbmRsZXIpOwpA
QCAtMTUzLDM5ICsxNTQsMzkgQEAgcHJpdmF0ZToKICAgICBQb3B1cE1lbnVIYW5kbGVyIG1fSGFu
ZGxlcjsKIH07CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQorUG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCi0gICAgLCBtX21lbnUobmV3IFBvcHVwTWVu
dUhhaWt1KGNsaWVudCkpCisgICAgLCBtX21lbnUobmV3IEhhaWt1UG9wdXAoY2xpZW50KSkKIHsK
ICAgICAvLyBXZSBkb24ndCBuZWVkIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyB0byB0aGUgY2xpZW50
LCBzaW5jZSB3ZSBjb21wbGV0ZWx5CiAgICAgLy8gY29udHJvbCBhbnkgc3ViLW9iamVjdHMgd2Ug
Y3JlYXRlIHRoYXQgbmVlZCBpdCBhcyB3ZWxsLgogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUo
KQorUG9wdXBNZW51SGFpa3U6On5Qb3B1cE1lbnVIYWlrdSgpCiB7CiAgICAgZGVsZXRlIG1fbWVu
dTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVW
aWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xp
ZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVIYWlr
dTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkK
IHsKICAgICAvLyBUaGUgbWVudSB3aWxsIHVwZGF0ZSBpdHNlbGYgZnJvbSB0aGUgUG9wdXBNZW51
Q2xpZW50IGJlZm9yZSBzaG93aW5nLgogICAgIG1fbWVudS0+c2hvdyhyZWN0LCB2aWV3LCBpbmRl
eCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51SGFpa3U6Omhp
ZGUoKQogewogICAgIG1fbWVudS0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRl
RnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVIYWlrdTo6dXBkYXRlRnJvbUVsZW1lbnQoKQog
ewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0obV9wb3B1cENsaWVudC0+c2VsZWN0ZWRJ
bmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjkxYmU0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaWZuZGVmIFBvcHVwTWVudUhhaWt1X2gKKyNkZWZpbmUgUG9wdXBNZW51SGFp
a3VfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2lu
Y2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBGcmFtZVZpZXc7CitjbGFzcyBIYWlrdVBvcHVwOworY2xhc3MgU2Nyb2xsYmFyOworCitjbGFz
cyBQb3B1cE1lbnVIYWlrdSA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVw
TWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVIYWlrdSgpOworCisg
ICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRl
eCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpIHsgbV9wb3B1
cENsaWVudCA9IDA7IH0KKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBD
bGllbnQ7CisgICAgSGFpa3VQb3B1cCogbV9tZW51OworCisgICAgUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKK307CisKK30KKworI2Vu
ZGlmIC8vIFBvcHVwTWVudUhhaWt1X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFy
Y2hQb3B1cE1lbnVIYWlrdS5jcHAKaW5kZXggZmQ1ZDk2Yy4uNDQzMzhlNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHAKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IFJ5YW4gTGVhdmVuZ29vZCA8bGVhdmVuZ29v
ZEBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCw3ICsx
OSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUhhaWt1LmgiCiAKICNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtMjYsMjYgKzI3
LDMxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorU2VhcmNoUG9wdXBNZW51SGFpa3U6OlNlYXJjaFBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKLXZvaWQgU2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUhh
aWt1OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9w
dXBNZW51SGFpa3U6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVu
dUhhaWt1OjplbmFibGVkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVIYWlrdTo6cG9wdXBNZW51KCkK
K3sKKyAgICByZXR1cm4gbV9wb3B1cDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUzMmQzYwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuaApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51SGFpa3VfaAor
I2RlZmluZSBTZWFyY2hQb3B1cE1lbnVIYWlrdV9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVIYWlr
dS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUhhaWt1IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7
CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50Kik7CisK
KyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNh
dmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7
CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVI
YWlrdSBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51SGFpa3Vf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmggYi9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43ZjhhZjU0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUG9wdXBNZW51TWFjLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgUG9wdXBNZW51TWFjX2gKKyNkZWZpbmUgUG9wdXBNZW51TWFjX2gKKworI2luY2x1ZGUgIklu
dFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorCitjbGFzcyBOU1BvcFVwQnV0dG9uQ2VsbDsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxi
YXI7CisKK2NsYXNzIFBvcHVwTWVudU1hYyA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgor
ICAgIFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51TWFjKCk7
CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGllbnQgPSAwOyB9CisK
KyAgICB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7Cisg
ICAgdm9pZCBoaWRlKCk7CisKKyAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisKKyAgICBz
dGF0aWMgYm9vbCBpdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworCitwcml2YXRlOgor
ICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBSZXRhaW5QdHI8TlNQb3BV
cEJ1dHRvbkNlbGw+IG1fcG9wdXA7CisKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBwb3B1
bGF0ZSgpOworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9w
b3B1cENsaWVudDsgfQorfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51TWFjX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbSBiL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQppbmRleCA2YzA2N2I5Li4wZjUwNTk4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCw3ICsxOSw3IEBACiAgKi8KIAogI2lt
cG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQb3B1cE1lbnUuaCIKKyNpbXBvcnQgIlBvcHVwTWVu
dU1hYy5oIgogCiAjaW1wb3J0ICJBWE9iamVjdENhY2hlLmgiCiAjaW1wb3J0ICJDaHJvbWUuaCIK
QEAgLTMxLDYgKzMyLDcgQEAKICNpbXBvcnQgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW1wb3J0
ICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2ltcG9ydCAiUGFnZS5oIgorI2ltcG9ydCAiUG9wdXBN
ZW51Q2xpZW50LmgiCiAjaW1wb3J0ICJTaW1wbGVGb250RGF0YS5oIgogI2ltcG9ydCAiV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oIgogCkBAIC0zOCwyNCArNDAsMjQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1Qb3B1cE1lbnU6OlBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVudU1hYzo6UG9wdXBNZW51TWFjKFBv
cHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiB7CiB9
CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVNYWM6On5Qb3B1cE1lbnVNYWMo
KQogewogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBbbV9wb3B1cC5nZXQoKSBzZXRDb250cm9s
VmlldzpuaWxdOwogfQogCi12b2lkIFBvcHVwTWVudTo6Y2xlYXIoKQordm9pZCBQb3B1cE1lbnVN
YWM6OmNsZWFyKCkKIHsKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAgW21fcG9wdXAuZ2V0KCkg
cmVtb3ZlQWxsSXRlbXNdOwogfQogCi12b2lkIFBvcHVwTWVudTo6cG9wdWxhdGUoKQordm9pZCBQ
b3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKIHsKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAgY2xl
YXIoKTsKQEAgLTExNCw3ICsxMTYsNyBAQCB2b2lkIFBvcHVwTWVudTo6cG9wdWxhdGUoKQogICAg
IFtbbV9wb3B1cC5nZXQoKSBtZW51XSBzZXRNZW51Q2hhbmdlZE1lc3NhZ2VzRW5hYmxlZDptZXNz
YWdlc0VuYWJsZWRdOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiBy
LCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0
IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogewogICAgIHBvcHVsYXRlKCk7
CiAgICAgaW50IG51bUl0ZW1zID0gW21fcG9wdXAuZ2V0KCkgbnVtYmVyT2ZJdGVtc107CkBAIC0x
NjIsNyArMTY0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJh
bWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IHYtPmZyYW1l
KCk7CiAgICAgTlNFdmVudCogZXZlbnQgPSBbZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5jdXJyZW50
TlNFdmVudCgpIHJldGFpbl07CiAgICAgCi0gICAgUmVmUHRyPFBvcHVwTWVudT4gcHJvdGVjdG9y
KHRoaXMpOworICAgIFJlZlB0cjxQb3B1cE1lbnVNYWM+IHByb3RlY3Rvcih0aGlzKTsKIAogICAg
IFJldGFpblB0cjxOU1ZpZXc+IGR1bW15VmlldyhBZG9wdE5TLCBbW05TVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpyXSk7CiAgICAgW3ZpZXcgYWRkU3VidmlldzpkdW1teVZpZXcuZ2V0KCldOwpA
QCAtMTk0LDE2ICsxOTYsMTYgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYg
ciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgW2V2ZW50IHJlbGVhc2VdOwogfQogCi12
b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudU1hYzo6aGlkZSgpCiB7CiAgICAg
W21fcG9wdXAuZ2V0KCkgZGlzbWlzc1BvcFVwXTsKIH0KICAgICAKLXZvaWQgUG9wdXBNZW51Ojp1
cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQo
KQogewogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KQorYm9vbCBQb3B1cE1lbnVNYWM6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nl
YXJjaFBvcHVwTWVudU1hYy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51
TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRmOTFhMAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1l
bnVNYWNfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVNYWNfaAorCisjaW5jbHVkZSAiUG9wdXBN
ZW51TWFjLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51TWFjIDogcHVibGljIFNlYXJjaFBvcHVwTWVu
dSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51TWFjKFBvcHVwTWVudUNsaWVudCopOwor
CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51
TWFjIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVNYWNfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tIGIv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCmluZGV4IDI2MjczNGQu
Ljc4YjI5YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0K
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCwxNCArMTksMTQg
QEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudS5o
IgorI2ltcG9ydCAiU2VhcmNoUG9wdXBNZW51TWFjLmgiCiAKICNpbXBvcnQgIkF0b21pY1N0cmlu
Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkK
K1NlYXJjaFBvcHVwTWVudU1hYzo6U2VhcmNoUG9wdXBNZW51TWFjKFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAKQEAgLTM0LDEyICszNSwxNyBA
QCBzdGF0aWMgTlNTdHJpbmcqIGF1dG9zYXZlS2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBy
ZXR1cm4gW0AiY29tLmFwcGxlLldlYktpdC5zZWFyY2hGaWVsZDoiIHN0cmluZ0J5QXBwZW5kaW5n
U3RyaW5nOm5hbWVdOwogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitQb3B1
cE1lbnUqIFNlYXJjaFBvcHVwTWVudU1hYzo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1f
cG9wdXA7Cit9CisKK2Jvb2wgU2VhcmNoUG9wdXBNZW51TWFjOjplbmFibGVkKCkKIHsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51TWFjOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7
CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC01Niw3ICs2Miw3
IEBAIHZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8CiAgICAgfQogfQogCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVNYWM6OmxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcykKIHsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKaW5kZXggMzE1Yjg5MS4uNTU5MDU1NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51UXQuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0
LmgiCkBAIC0zNSwxOCArMzUsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Qb3B1cE1l
bnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1BvcHVwTWVudVF0OjpQb3B1
cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xp
ZW50KQogICAgICwgbV9wb3B1cCgwKQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQor
UG9wdXBNZW51UXQ6On5Qb3B1cE1lbnVRdCgpCiB7CiAgICAgZGVsZXRlIG1fcG9wdXA7CiB9CiAK
LXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmll
dywgaW50IGluZGV4KQorCit2b2lkIFBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sK
KyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVRdDo6c2hvdyhjb25z
dCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsKICAgICBDaHJv
bWVDbGllbnRRdCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50UXQqPigK
ICAgICAgICAgdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAt
NjcsMTkgKzczLDE0IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3Qs
IEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogCiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRl
KCkKK3ZvaWQgUG9wdXBNZW51UXQ6OmhpZGUoKQogewogICAgIG1fcG9wdXAtPmhpZGUoKTsKIH0K
IAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKLXsKLSAgICBjbGllbnQoKS0+
c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7Ci19Ci0KLWJv
b2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit2b2lkIFBvcHVw
TWVudVF0Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIG1f
cG9wdXBDbGllbnQtPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxlY3RlZEluZGV4
KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0
LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjVhOWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUG9wdXBNZW51UXQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2lmbmRlZiBQb3B1cE1lbnVRdF9oCisjZGVmaW5lIFBvcHVwTWVudVF0X2gKKworI2luY2x1ZGUg
IlBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsK
K2NsYXNzIFF0QWJzdHJhY3RXZWJQb3B1cDsKK2NsYXNzIFNjcm9sbGJhcjsKK2NsYXNzIFBvcHVw
TWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51UXQgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1
YmxpYzoKKyAgICBQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51
UXQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcq
LCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQo
KTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAg
UXRBYnN0cmFjdFdlYlBvcHVwKiBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBN
ZW51UXRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9w
dXAuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKaW5kZXggZGFk
NDk5Ny4uNWY2ZjYxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0
V2ViUG9wdXAuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5o
CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBRRm9udCBmb250KCkgeyByZXR1cm4gbV9w
b3B1cENsaWVudC0+bWVudVN0eWxlKCkuZm9udCgpLmZvbnQoKTsgfQogCiBwcml2YXRlOgotICAg
IGZyaWVuZCBjbGFzcyBQb3B1cE1lbnU7CisgICAgZnJpZW5kIGNsYXNzIFBvcHVwTWVudVF0Owog
ICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKICAgICBRV2ViUGFnZUNsaWVudCog
bV9wYWdlQ2xpZW50OwogICAgIGludCBtX2N1cnJlbnRJbmRleDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKaW5kZXggMTg3YTVkZS4uODY4YjlhNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IEMgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOCwyNiArMTksMjkgQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLSNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVRdC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVu
dVF0OjpTZWFyY2hQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1f
cG9wdXAoY2xpZW50KQoreworfQorCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudVF0Ojpwb3B1
cE1lbnUoKQogeworICAgIHJldHVybiAmbV9wb3B1cDsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi12b2lkIFNl
YXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiB9CiAKLWJvb2wgU2Vh
cmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51UXQ6OmVuYWJsZWQo
KQogewogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1l
bnVRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNzRmYjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmgKQEAg
LTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVu
dVF0X2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51UXRfaAorCisjaW5jbHVkZSAiUG9wdXBNZW51
UXQuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVRdCA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgewor
cHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudVF0KFBvcHVwTWVudUNsaWVudCopOworCisgICAg
dmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisgICAgCitwcml2YXRlOgorICAgIFBvcHVwTWVudVF0
IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVRdF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAppbmRleCA0YmM2ZGM3Li5jYmFjZDRmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSBJbmMuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCw3ICsyMSw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudVdpbi5oIgogCiAjaW5jbHVkZSAiQml0bWFwSW5mby5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCkBAIC04Niw3ICs4Nyw3IEBAIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZVBvaW50KExQQVJBTSYg
bFBhcmFtLCBIV05EIGZyb20sIEhXTkQgdG8pCiAgICAgbFBhcmFtID0gTUFLRUxQQVJBTShwdC54
LCBwdC55KTsKIH0KIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCitQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkK
ICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICwgbV9zY3JvbGxiYXIoMCkKICAgICAs
IG1fcG9wdXAoMCkKQEAgLTEwMiw3ICsxMDMsNyBAQCBQb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1Bv
cHVwTWVudVdpbjo6flBvcHVwTWVudVdpbigpCiB7CiAgICAgaWYgKG1fYm1wKQogICAgICAgICA6
OkRlbGV0ZU9iamVjdChtX2JtcCk7CkBAIC0xMTQsMTIgKzExNSwxNyBAQCBQb3B1cE1lbnU6On5Q
b3B1cE1lbnUoKQogICAgICAgICBtX3Njcm9sbGJhci0+c2V0UGFyZW50KDApOwogfQogCi1MUENU
U1RSIFBvcHVwTWVudTo6cG9wdXBDbGFzc05hbWUoKQordm9pZCBQb3B1cE1lbnVXaW46OmRpc2Nv
bm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCitMUENUU1RSIFBv
cHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUoKQogewogICAgIHJldHVybiBrUG9wdXBXaW5kb3dD
bGFzc05hbWU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZy
YW1lVmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVXaW46OnNob3coY29uc3Qg
SW50UmVjdCYgciwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgY2FsY3VsYXRl
UG9zaXRpb25BbmRTaXplKHIsIHZpZXcpOwogICAgIGlmIChjbGllbnRSZWN0KCkuaXNFbXB0eSgp
KQpAQCAtMjY3LDcgKzI3Myw3IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3Qm
IHIsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogICAgIGhpZGUoKTsKIH0KIAotdm9pZCBQ
b3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVXaW46OmhpZGUoKQogewogICAgIGlmICgh
bV9zaG93UG9wdXApCiAgICAgICAgIHJldHVybjsKQEAgLTI4Myw3ICsyODksNyBAQCB2b2lkIFBv
cHVwTWVudTo6aGlkZSgpCiAgICAgOjpQb3N0TWVzc2FnZShtX3BvcHVwLCBXTV9OVUxMLCAwLCAw
KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJ
bnRSZWN0JiByLCBGcmFtZVZpZXcqIHYpCit2b2lkIFBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9z
aXRpb25BbmRTaXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKIHsKICAgICAvLyBy
IGlzIGluIGFic29sdXRlIGRvY3VtZW50IGNvb3JkaW5hdGVzLCBidXQgd2Ugd2FudCB0byBiZSBp
biBzY3JlZW4gY29vcmRpbmF0ZXMKIApAQCAtMzczLDcgKzM3OSw3IEBAIHZvaWQgUG9wdXBNZW51
OjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2
KQogICAgIHJldHVybjsKIH0KIAotYm9vbCBQb3B1cE1lbnU6OnNldEZvY3VzZWRJbmRleChpbnQg
aSwgYm9vbCBob3RUcmFja2luZykKK2Jvb2wgUG9wdXBNZW51V2luOjpzZXRGb2N1c2VkSW5kZXgo
aW50IGksIGJvb2wgaG90VHJhY2tpbmcpCiB7CiAgICAgaWYgKGkgPCAwIHx8IGkgPj0gY2xpZW50
KCktPmxpc3RTaXplKCkgfHwgaSA9PSBmb2N1c2VkSW5kZXgoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMzk1LDIyICs0MDEsMjIgQEAgYm9vbCBQb3B1cE1lbnU6OnNldEZvY3VzZWRJbmRl
eChpbnQgaSwgYm9vbCBob3RUcmFja2luZykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotaW50IFBv
cHVwTWVudTo6dmlzaWJsZUl0ZW1zKCkgY29uc3QKK2ludCBQb3B1cE1lbnVXaW46OnZpc2libGVJ
dGVtcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNsaWVudFJlY3QoKS5oZWlnaHQoKSAvIG1faXRl
bUhlaWdodDsKIH0KIAotaW50IFBvcHVwTWVudTo6bGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQ
b2ludCYgcG9pbnQpIGNvbnN0CitpbnQgUG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KGNv
bnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zY3JvbGxPZmZzZXQg
KyBwb2ludC55KCkgLyBtX2l0ZW1IZWlnaHQ7CiB9CiAKLWludCBQb3B1cE1lbnU6OmZvY3VzZWRJ
bmRleCgpIGNvbnN0CitpbnQgUG9wdXBNZW51V2luOjpmb2N1c2VkSW5kZXgoKSBjb25zdAogewog
ICAgIHJldHVybiBtX2ZvY3VzZWRJbmRleDsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmZvY3VzRmly
c3QoKQordm9pZCBQb3B1cE1lbnVXaW46OmZvY3VzRmlyc3QoKQogewogICAgIGlmICghY2xpZW50
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQyNCw3ICs0MzAsNyBAQCB2b2lkIFBvcHVwTWVudTo6
Zm9jdXNGaXJzdCgpCiAgICAgICAgIH0KIH0KIAotdm9pZCBQb3B1cE1lbnU6OmZvY3VzTGFzdCgp
Cit2b2lkIFBvcHVwTWVudVdpbjo6Zm9jdXNMYXN0KCkKIHsKICAgICBpZiAoIWNsaWVudCgpKQog
ICAgICAgICByZXR1cm47CkBAIC00MzgsNyArNDQ0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmZvY3Vz
TGFzdCgpCiAgICAgICAgIH0KIH0KIAotYm9vbCBQb3B1cE1lbnU6OmRvd24odW5zaWduZWQgbGlu
ZXMpCitib29sIFBvcHVwTWVudVdpbjo6ZG93bih1bnNpZ25lZCBsaW5lcykKIHsKICAgICBpZiAo
IWNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NTcsNyArNDYzLDcgQEAgYm9v
bCBQb3B1cE1lbnU6OmRvd24odW5zaWduZWQgbGluZXMpCiAgICAgcmV0dXJuIHNldEZvY3VzZWRJ
bmRleChsYXN0U2VsZWN0YWJsZUluZGV4KTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6OnVwKHVuc2ln
bmVkIGxpbmVzKQorYm9vbCBQb3B1cE1lbnVXaW46OnVwKHVuc2lnbmVkIGxpbmVzKQogewogICAg
IGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ3Niw3ICs0ODIsNyBA
QCBib29sIFBvcHVwTWVudTo6dXAodW5zaWduZWQgbGluZXMpCiAgICAgcmV0dXJuIHNldEZvY3Vz
ZWRJbmRleChsYXN0U2VsZWN0YWJsZUluZGV4KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmludmFs
aWRhdGVJdGVtKGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51V2luOjppbnZhbGlkYXRlSXRlbShp
bnQgaW5kZXgpCiB7CiAgICAgaWYgKCFtX3BvcHVwKQogICAgICAgICByZXR1cm47CkBAIC00OTEs
NyArNDk3LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmludmFsaWRhdGVJdGVtKGludCBpbmRleCkKICAg
ICA6OkludmFsaWRhdGVSZWN0KG1fcG9wdXAsICZyLCBUUlVFKTsKIH0KIAotSW50UmVjdCBQb3B1
cE1lbnU6OmNsaWVudFJlY3QoKSBjb25zdAorSW50UmVjdCBQb3B1cE1lbnVXaW46OmNsaWVudFJl
Y3QoKSBjb25zdAogewogICAgIEludFJlY3QgY2xpZW50UmVjdCA9IG1fd2luZG93UmVjdDsKICAg
ICBjbGllbnRSZWN0LmluZmxhdGUoLXBvcHVwV2luZG93Qm9yZGVyV2lkdGgpOwpAQCAtNDk5LDEy
ICs1MDUsMTIgQEAgSW50UmVjdCBQb3B1cE1lbnU6OmNsaWVudFJlY3QoKSBjb25zdAogICAgIHJl
dHVybiBjbGllbnRSZWN0OwogfQogCi12b2lkIFBvcHVwTWVudTo6aW5jcmVtZW50V2hlZWxEZWx0
YShpbnQgZGVsdGEpCit2b2lkIFBvcHVwTWVudVdpbjo6aW5jcmVtZW50V2hlZWxEZWx0YShpbnQg
ZGVsdGEpCiB7CiAgICAgbV93aGVlbERlbHRhICs9IGRlbHRhOwogfQogCi12b2lkIFBvcHVwTWVu
dTo6cmVkdWNlV2hlZWxEZWx0YShpbnQgZGVsdGEpCit2b2lkIFBvcHVwTWVudVdpbjo6cmVkdWNl
V2hlZWxEZWx0YShpbnQgZGVsdGEpCiB7CiAgICAgQVNTRVJUKGRlbHRhID49IDApOwogICAgIEFT
U0VSVChkZWx0YSA8PSBhYnMobV93aGVlbERlbHRhKSk7CkBAIC01MTcsNyArNTIzLDcgQEAgdm9p
ZCBQb3B1cE1lbnU6OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKQogICAgICAgICByZXR1cm47
CiB9CiAKLWJvb2wgUG9wdXBNZW51OjpzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpCitib29sIFBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQogewogICAgIGlmICghbV9zY3Jv
bGxiYXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUzNyw3ICs1NDMsNyBAQCBib29sIFBv
cHVwTWVudTo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51V2lu
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgaWYgKCFtX3BvcHVwKQogICAgICAgICByZXR1
cm47CkBAIC01NDksMTQgKzU1NSw5IEBAIHZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCgpCiAgICAgICAgIDo6VXBkYXRlV2luZG93KG1fcG9wdXApOwogfQogCi1ib29sIFBvcHVwTWVu
dTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSAKLXsgCi0gICAgcmV0dXJuIHRydWU7
IAotfQotCiBjb25zdCBpbnQgc2VwYXJhdG9yUGFkZGluZyA9IDQ7CiBjb25zdCBpbnQgc2VwYXJh
dG9ySGVpZ2h0ID0gMTsKLXZvaWQgUG9wdXBNZW51OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1h
Z2VSZWN0LCBIREMgaGRjKQordm9pZCBQb3B1cE1lbnVXaW46OnBhaW50KGNvbnN0IEludFJlY3Qm
IGRhbWFnZVJlY3QsIEhEQyBoZGMpCiB7CiAgICAgaWYgKCFtX3BvcHVwKQogICAgICAgICByZXR1
cm47CkBAIC02NjMsNyArNjY0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnBhaW50KGNvbnN0IEludFJl
Y3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiAgICAgICAgIDo6UmVsZWFzZURDKG1fcG9wdXAsIGxv
Y2FsREMpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dmFsdWVDaGFuZ2VkKFNjcm9sbGJhciogc2Ny
b2xsQmFyKQordm9pZCBQb3B1cE1lbnVXaW46OnZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqIHNjcm9s
bEJhcikKIHsKICAgICBBU1NFUlQobV9zY3JvbGxiYXIpOwogCkBAIC02OTksNyArNzAwLDcgQEAg
dm9pZCBQb3B1cE1lbnU6OnZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqIHNjcm9sbEJhcikKICAgICA6
OlVwZGF0ZVdpbmRvdyhtX3BvcHVwKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQor
dm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Ny
b2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9
IHJlY3Q7CiAgICAgc2Nyb2xsUmVjdC5tb3ZlKHNjcm9sbGJhci0+eCgpLCBzY3JvbGxiYXItPnko
KSk7CkBAIC03MDcsNyArNzA4LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWMKICAgICA6Oklu
dmFsaWRhdGVSZWN0KG1fcG9wdXAsICZyLCBmYWxzZSk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpy
ZWdpc3RlckNsYXNzKCkKK3ZvaWQgUG9wdXBNZW51V2luOjpyZWdpc3RlckNsYXNzKCkKIHsKICAg
ICBzdGF0aWMgYm9vbCBoYXZlUmVnaXN0ZXJlZFdpbmRvd0NsYXNzID0gZmFsc2U7CiAKQEAgLTc0
Myw3ICs3NDQsNyBAQCB2b2lkIFBvcHVwTWVudTo6cmVnaXN0ZXJDbGFzcygpCiB9CiAKIAotTFJF
U1VMVCBDQUxMQkFDSyBQb3B1cE1lbnU6OlBvcHVwTWVudVduZFByb2MoSFdORCBoV25kLCBVSU5U
IG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCitMUkVTVUxUIENBTExCQUNL
IFBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwg
V1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIHsKICNpZiBPUyhXSU5DRSkKICAgICBMT05H
IGxvbmdQdHIgPSBHZXRXaW5kb3dMb25nKGhXbmQsIDApOwpAQCAtNzcxLDcgKzc3Miw3IEBAIExS
RVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51OjpQb3B1cE1lbnVXbmRQcm9jKEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhCiAKIGNvbnN0IGludCBzbW9vdGhTY3JvbGxBbmltYXRpb25E
dXJhdGlvbiA9IDUwMDA7CiAKLUxSRVNVTFQgUG9wdXBNZW51Ojp3bmRQcm9jKEhXTkQgaFduZCwg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQorTFJFU1VMVCBQb3B1
cE1lbnVXaW46OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0s
IExQQVJBTSBsUGFyYW0pCiB7CiAgICAgTFJFU1VMVCBsUmVzdWx0ID0gMDsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
OGVlNmIxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51
V2luX2gKKyNkZWZpbmUgUG9wdXBNZW51V2luX2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNs
dWRlICJTY3JvbGxiYXIuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJDbGllbnQuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCit0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7Cit0eXBlZGVm
IHN0cnVjdCBIRENfXyogSERDOwordHlwZWRlZiBzdHJ1Y3QgSEJJVE1BUF9fKiBIQklUTUFQOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJh
cjsKKworY2xhc3MgUG9wdXBNZW51V2luIDogcHVibGljIFBvcHVwTWVudSwgcHJpdmF0ZSBTY3Jv
bGxiYXJDbGllbnQgeworcHVibGljOgorICAgIFBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQq
KTsKKyAgICB+UG9wdXBNZW51V2luKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJ
bnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgp
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBt
X3BvcHVwQ2xpZW50OworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BvcHVwQ2xpZW50OyB9CisKKyAgICBTY3JvbGxiYXIqIHNjcm9sbGJhcigpIGNvbnN0
IHsgcmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CisKKyAgICBzdGF0aWMgTFBDVFNUUiBwb3B1
cENsYXNzTmFtZSgpOworCisgICAgYm9vbCB1cCh1bnNpZ25lZCBsaW5lcyA9IDEpOworICAgIGJv
b2wgZG93bih1bnNpZ25lZCBsaW5lcyA9IDEpOworCisgICAgaW50IGl0ZW1IZWlnaHQoKSBjb25z
dCB7IHJldHVybiBtX2l0ZW1IZWlnaHQ7IH0KKyAgICBjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dSZWN0OyB9CisgICAgSW50UmVjdCBjbGllbnRSZWN0
KCkgY29uc3Q7CisKKyAgICBpbnQgdmlzaWJsZUl0ZW1zKCkgY29uc3Q7CisKKyAgICBpbnQgbGlz
dEluZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0OworCisgICAgYm9vbCBzZXRGb2N1
c2VkSW5kZXgoaW50IGluZGV4LCBib29sIGhvdFRyYWNraW5nID0gZmFsc2UpOworICAgIGludCBm
b2N1c2VkSW5kZXgoKSBjb25zdDsKKyAgICB2b2lkIGZvY3VzRmlyc3QoKTsKKyAgICB2b2lkIGZv
Y3VzTGFzdCgpOworCisgICAgdm9pZCBwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBI
REMgPSAwKTsKKworICAgIEhXTkQgcG9wdXBIYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX3BvcHVw
OyB9CisKKyAgICB2b2lkIHNldFdhc0NsaWNrZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX3dhc0NsaWNr
ZWQgPSBiOyB9CisgICAgYm9vbCB3YXNDbGlja2VkKCkgY29uc3QgeyByZXR1cm4gbV93YXNDbGlj
a2VkOyB9CisKKyAgICB2b2lkIHNldFNjcm9sbE9mZnNldChpbnQgb2Zmc2V0KSB7IG1fc2Nyb2xs
T2Zmc2V0ID0gb2Zmc2V0OyB9CisgICAgaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Nyb2xsT2Zmc2V0OyB9CisKKyAgICBib29sIHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7
CisKKyAgICB2b2lkIGluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKTsKKyAgICB2b2lkIHJl
ZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKTsKKyAgICBpbnQgd2hlZWxEZWx0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fd2hlZWxEZWx0YTsgfQorCisgICAgYm9vbCBzY3JvbGxiYXJDYXB0dXJpbmdNb3Vz
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7IH0KKyAgICB2b2lk
IHNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKGJvb2wgYikgeyBtX3Njcm9sbGJhckNhcHR1cmlu
Z01vdXNlID0gYjsgfQorfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51V2luX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCmluZGV4IGYyNzA5YmIuLjRh
NWNiMjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdp
bi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMTkgKzE5LDI0IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgor
I2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVdpbi5oIgogCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5n
LmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNoUG9w
dXBNZW51V2luKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQp
CiB7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK1BvcHVwTWVudSogU2Vh
cmNoUG9wdXBNZW51V2luOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30K
KworYm9vbCBTZWFyY2hQb3B1cE1lbnVXaW46OmVuYWJsZWQoKQogewogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtNDEsNyArNDcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBhdXRv
c2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4oQWRvcHRDRiwga2V5LmNyZWF0ZUNGU3RyaW5nKCkpOwogfQogCi12b2lkIFNlYXJjaFBv
cHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVXaW46
OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTYxLDcgKzY3LDcgQEAgdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjwKICAg
ICBDRlByZWZlcmVuY2VzQXBwU3luY2hyb25pemUoa0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGlj
YXRpb24pOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9p
ZCBTZWFyY2hQb3B1cE1lbnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBpZiAobmFtZS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NlYXJjaFBvcHVwTWVudVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9w
dXBNZW51V2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU4N2Q3Ngot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdp
bi5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQ
b3B1cE1lbnVXaW5faAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVXaW5faAorCisjaW5jbHVkZSAi
UG9wdXBNZW51V2luLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51V2luIDogcHVibGljIFNlYXJjaFBv
cHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVu
dCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwg
dm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50
U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgUG9w
dXBNZW51V2luIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVX
aW5faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcAppbmRleCA5YjBkZWJhLi5lODhkMWU1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmNwcApAQCAtMiw2ICsyLDcgQEAKICAqIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1cCBtZW51IGltcGxlbWVudGF0aW9uIGZvciA8c2Vs
ZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgogICoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEs
NyArMjIsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1l
bnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVXeC5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQxLDE4ICs0MiwyMyBAQCBzdGF0aWMgaW50IHNfbWVu
dVN0YXJ0SWQgPSB3eE5ld0lkKCk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51
OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVXeDo6UG9wdXBN
ZW51V3goUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVu
dCkKICAgICAsIG1fbWVudShOVUxMKQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQor
UG9wdXBNZW51V3g6On5Qb3B1cE1lbnVXeCgpCiB7CiAgICAgZGVsZXRlIG1fbWVudTsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQg
aW5kZXgpCit2b2lkIFBvcHVwTWVudVd4OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3Bv
cHVwQ2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVXeDo6c2hvdyhjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKICAgICAvLyBqdXN0IGRlbGV0ZSBhbmQg
cmVjcmVhdGUKICAgICBkZWxldGUgbV9tZW51OwpAQCAtNzgsMTMgKzg0LDEzIEBAIHZvaWQgUG9w
dXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQog
ICAgICAgICAgICAgICAgICAgICBtX21lbnUtPkFwcGVuZChzX21lbnVTdGFydElkICsgaSwgY2xp
ZW50KCktPml0ZW1UZXh0KGkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBu
YXRpdmVXaW4tPkNvbm5lY3Qoc19tZW51U3RhcnRJZCwgc19tZW51U3RhcnRJZCArIChzaXplLTEp
LCB3eEVWVF9DT01NQU5EX01FTlVfU0VMRUNURUQsIHd4Q29tbWFuZEV2ZW50SGFuZGxlcihQb3B1
cE1lbnU6Ok9uTWVudUl0ZW1TZWxlY3RlZCksIE5VTEwsIHRoaXMpOworICAgICAgICBuYXRpdmVX
aW4tPkNvbm5lY3Qoc19tZW51U3RhcnRJZCwgc19tZW51U3RhcnRJZCArIChzaXplLTEpLCB3eEVW
VF9DT01NQU5EX01FTlVfU0VMRUNURUQsIHd4Q29tbWFuZEV2ZW50SGFuZGxlcihQb3B1cE1lbnVX
eDo6T25NZW51SXRlbVNlbGVjdGVkKSwgMCwgdGhpcyk7CiAgICAgICAgIG5hdGl2ZVdpbi0+UG9w
dXBNZW51KG1fbWVudSwgci54KCkgLSB2LT5zY3JvbGxYKCksIHIueSgpIC0gdi0+c2Nyb2xsWSgp
KTsKLSAgICAgICAgbmF0aXZlV2luLT5EaXNjb25uZWN0KHNfbWVudVN0YXJ0SWQsIHNfbWVudVN0
YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3eENvbW1hbmRF
dmVudEhhbmRsZXIoUG9wdXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCBOVUxMLCB0aGlzKTsK
KyAgICAgICAgbmF0aXZlV2luLT5EaXNjb25uZWN0KHNfbWVudVN0YXJ0SWQsIHNfbWVudVN0YXJ0
SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3eENvbW1hbmRFdmVu
dEhhbmRsZXIoUG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1TZWxlY3RlZCksIDAsIHRoaXMpOwogICAg
IH0KIH0KIAotdm9pZCBQb3B1cE1lbnU6Ok9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVu
dCYgZXZlbnQpCit2b2lkIFBvcHVwTWVudVd4OjpPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5k
RXZlbnQmIGV2ZW50KQogewogICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICBjbGllbnQoKS0+
dmFsdWVDaGFuZ2VkKGV2ZW50LkdldElkKCkgLSBzX21lbnVTdGFydElkKTsKQEAgLTkzLDIwICs5
OSwxNSBAQCB2b2lkIFBvcHVwTWVudTo6T25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2ZW50
JiBldmVudCkKICAgICAvLyBUT0RPOiBEbyB3ZSBuZWVkIHRvIGNhbGwgRGlzY29ubmVjdCBoZXJl
PyBEbyB3ZSBoYXZlIGEgcmVmIHRvIHRoZSBuYXRpdmUgd2luZG93IHN0aWxsPwogfQogCi12b2lk
IFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudVd4OjpoaWRlKCkKIHsKICAgICAvLyB3
ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhlcmUsIHRoZSBuYXRpdmUgY29udHJvbCBvbmx5
IGV4aXN0cyBkdXJpbmcgdGhlIHRpbWUKICAgICAvLyBzaG93IGlzIGNhbGxlZAogfQogCi12b2lk
IFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVXeDo6dXBkYXRl
RnJvbUVsZW1lbnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0obV9wb3B1cENs
aWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaCBiL1dlYkNvcmUvcGxhdGZv
cm0vd3gvUG9wdXBNZW51V3guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
NjA0YjkxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVX
eC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBQb3B1cE1l
bnVXeF9oCisjZGVmaW5lIFBvcHVwTWVudVd4X2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNp
ZmRlZiBfX1dYTVNXX18KKyNpbmNsdWRlIDx3eC9tc3cvd2ludW5kZWYuaD4KKyNlbmRpZgorY2xh
c3Mgd3hNZW51OworI2luY2x1ZGUgPHd4L2RlZnMuaD4KKyNpbmNsdWRlIDx3eC9ldmVudC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJh
cjsKKworY2xhc3MgUG9wdXBNZW51V3ggOiBwdWJsaWMgUG9wdXBNZW51LCBwdWJsaWMgd3hFdnRI
YW5kbGVyIHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVXeChQb3B1cE1lbnVDbGllbnQqKTsKKyAg
ICB+UG9wdXBNZW51V3goKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3Qm
LCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nv
bm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBD
bGllbnQ7CisKKyAgICB3eE1lbnUqIG1fbWVudTsKKyAgICB2b2lkIE9uTWVudUl0ZW1TZWxlY3Rl
ZCh3eENvbW1hbmRFdmVudCYpOworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVw
TWVudVd4X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51
V3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAKaW5kZXgg
ZGJiZTMzOS4uYTVhZWIxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQ
b3B1cE1lbnVXeC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVX
eC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI0LDMyICsyNSwzNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnVXeC5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVXeDo6U2Vh
cmNoUG9wdXBNZW51V3goUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNs
aWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVu
dTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVXeDo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2Vh
cmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudVd4Ojps
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFy
Y2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVXeDo6ZW5hYmxlZCgp
CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51V3g6
OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaCBiL1dlYkNvcmUvcGxh
dGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42ZGM3N2JhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVXeF9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudVd4X2gK
KworI2luY2x1ZGUgIlBvcHVwTWVudVd4LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51V3ggOiBwdWJs
aWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVXeChQb3B1
cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQg
bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRl
OgorICAgIFBvcHVwTWVudVd4IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQ
b3B1cE1lbnVXeF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMTc3OTIx
Yy4uMTcwMzEwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAKICNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC04OCw4
ICs4OSw4IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OmFkanVzdElubmVyU3R5bGUoKQogICAgIG1f
aW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ1JpZ2h0KExlbmd0aCh0aGVtZSgpLT5wb3B1
cEludGVybmFsUGFkZGluZ1JpZ2h0KHN0eWxlKCkpLCBGaXhlZCkpOwogICAgIG1faW5uZXJCbG9j
ay0+c3R5bGUoKS0+c2V0UGFkZGluZ1RvcChMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBh
ZGRpbmdUb3Aoc3R5bGUoKSksIEZpeGVkKSk7CiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5z
ZXRQYWRkaW5nQm90dG9tKExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ0JvdHRv
bShzdHlsZSgpKSwgRml4ZWQpKTsKLSAgICAgICAgCi0gICAgaWYgKFBvcHVwTWVudTo6aXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkgeworCisgICAgaWYgKGRvY3VtZW50KCktPnBhZ2Uo
KS0+Y2hyb21lKCktPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKICAg
ICAgICAgLy8gSXRlbXMgaW4gdGhlIHBvcHVwIHdpbGwgbm90IHJlc3BlY3QgdGhlIENTUyB0ZXh0
LWFsaWduIGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcywKICAgICAgICAgLy8gc28gd2UgbXVzdCBh
ZGp1c3Qgb3VyIG93biBzdHlsZSB0byBtYXRjaC4KICAgICAgICAgbV9pbm5lckJsb2NrLT5zdHls
ZSgpLT5zZXRUZXh0QWxpZ24oTEVGVCk7CkBAIC0yNzgsNyArMjc5LDcgQEAgdm9pZCBSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1cCBjYWxsIGFu
ZCBpdCB3b3VsZCBmYWlsLgogICAgIGNyZWF0ZUlubmVyQmxvY2soKTsKICAgICBpZiAoIW1fcG9w
dXApCi0gICAgICAgIG1fcG9wdXAgPSBQb3B1cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAg
bV9wb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0ZVBvcHVwTWVudSh0
aGlzKTsKICAgICBTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSkpOwogICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAppbmRleCBkNzJlMWE5Li45NmRlYWQ1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgUmVu
ZGVyTWVudUxpc3RfaAogI2RlZmluZSBSZW5kZXJNZW51TGlzdF9oCiAKKyNpbmNsdWRlICJQb3B1
cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJG
bGV4aWJsZUJveC5oIgogCkBAIC0zNSw4ICszNiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgUG9wdXBNZW51OwogY2xhc3MgUmVuZGVyVGV4dDsKK2NsYXNzIFNlbGVjdFVJQ2xp
ZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQogY2xhc3MgUmVuZGVyTWVu
dUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNs
aWVudCB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcAppbmRleCBkMGFiMTA3Li5hOWMxNjZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogICAgICAgICAgIChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pIAogICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAKKyNpbmNsdWRlICJDaHJv
bWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zOCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlNlbGVj
dGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNpbXBs
ZUZvbnREYXRhLmgiCkBAIC02Miw3ICs2Myw3IEBAIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKE5vZGUqIG5vZGUsIGJvb2wgcGxhY2VoCiBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUo
KQogewogICAgIGlmIChtX3NlYXJjaFBvcHVwKSB7Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAtPmRp
c2Nvbm5lY3RDbGllbnQoKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmRp
c2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IDA7CiAgICAgfQogIApA
QCAtMTA3LDcgKzEwOCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjphZGRT
ZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVO
YW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0g
U2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBk
b2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7
CiAKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRT
ZWFyY2hlcyk7CiB9CkBAIC0xMjUsNyArMTI2LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmU6OnNob3dQb3B1cCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9zZWFy
Y2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRl
KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJv
bWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOwogCiAgICAgaWYgKCFtX3NlYXJjaFBv
cHVwLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE0NSwxNCArMTQ2LDE0IEBAIHZv
aWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAgICAgICBtX3Nl
YXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAg
ICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+c2hvdyhhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0
cnVlKSwgZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CisgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBN
ZW51KCktPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZp
ZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBv
cHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpOwogICAgIGlmICht
X3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwLT5oaWRlKCk7CisgICAgICAgIG1f
c2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5oaWRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpCkBAIC02ODUsNyArNjg2LDcgQEAg
dm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAg
ICB9CiAKICAgICBpZiAobV9zZWFyY2hQb3B1cElzVmlzaWJsZSkKLSAgICAgICAgbV9zZWFyY2hQ
b3B1cC0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBN
ZW51KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBlbmQpCkBAIC04ODMsNyAr
ODg0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdlZCh1
bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW4KICAgICAgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAgICAgICAgICAgaWYgKCFuYW1lLmlz
RW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAg
ICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMp
OworICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgp
LT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOwogICAgICAgICAgICAgICAg
IG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVz
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA5MmVjYWRkLi40ZmU0ZjlmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmls
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8p
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNCw2ICsyNSw3IEBACiAKICNp
bmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5o
IgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDcgKzM0LDcgQEAgY2xhc3MgSW5wdXRFbGVtZW50Owog
Y2xhc3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50
OwotY2xhc3MgU2VhcmNoUG9wdXBNZW51OworY2xhc3MgU2VhcmNoVUlDbGllbnQ7CiBjbGFzcyBT
cGluQnV0dG9uRWxlbWVudDsKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50OwogCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCAxYjU5NjZkLi5kNGFkNTU3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1
cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBD
aHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUg
YW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMg
dGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisg
ICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorCiAyMDEwLTA3LTI3ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBkNDNkODhhLi5jZmFkNDZkIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NTUsNiArNTYsNyBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKKyNpbmNsdWRl
ICJTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2UuaCIKICNpZiBVU0UoVjgpCkBAIC03
NjUsNCArNzY3LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZXhpdEZ1bGxzY3JlZW5Gb3JO
b2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmV4
aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJOb2RlKG5vZGUpKTsKIH0KIAorYm9vbCBDaHJvbWVDbGll
bnRJbXBsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gQ2hyb21lQ2xp
ZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9wdXBNZW51Q2hy
b21pdW0oY2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShjbGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGU4MjQz
ODEuLjRkZjlhYmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTMyLDEyICszMywxNSBAQAogI2RlZmluZSBDaHJvbWVDbGllbnRJbXBsX2gKIAog
I2luY2x1ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBGaWxlQ2hvb3NlcjsKIGNsYXNzIEhUTUxQ
YXJzZXJRdWlya3M7CiBjbGFzcyBQb3B1cENvbnRhaW5lcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVu
dDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogfQpAQCAt
MTY1LDYgKzE2OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ3Vy
c29ySW5mbyYgY3Vyc29yKTsKICAgICB2b2lkIHNldEN1cnNvckZvclBsdWdpbihjb25zdCBXZWJD
dXJzb3JJbmZvJiBjdXJzb3IpOwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2ViQ29yZTo6UG9wdXBDb250YWluZXIq
LCBXZWJQb3B1cE1lbnVJbmZvKik7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9n
IGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNzUzNGJmZC4uODg3M2EyOSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAg
ICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQ
b3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRl
IGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFu
Z2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50RWZsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTAtMDctMjYgIFJh
ZmFlbCBBbnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGZmYmQ2NDIuLmYzN2RhMTkgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTUsNiArNSw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgpAQCAtNDcsNiArNDgsOCBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSAiUG9wdXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCiAj
aW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5o
IgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCkBAIC01MTMsNCArNTE2LDE5IEBAIHZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBj
b25zdCBWaWV3cG9ydEFyCiAgICAgZXdrX3ZpZXdfdmlld3BvcnRfc2V0KG1fdmlldywgYXJndW1l
bnRzLndpZHRoLCBhcmd1bWVudHMuaGVpZ2h0LCBhcmd1bWVudHMuaW5pdGlhbFNjYWxlLCBhcmd1
bWVudHMubWluaW11bVNjYWxlLCBhcmd1bWVudHMubWF4aW11bVNjYWxlLCBhcmd1bWVudHMudXNl
clNjYWxhYmxlKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51
RWZsKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVFZmwoY2xpZW50
KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5o
CmluZGV4IGNlOGFiZDEuLmIyMmQ5ODEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuaApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBJ
TmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0xMzcsNiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50
cyYgYXJndW1lbnRzKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7CisKICAgICBFdmFzX09iamVjdCogbV92aWV3OwogICAgIEtVUkwgbV9o
b3ZlcmVkTGlua1VSTDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDgwM2JmMTIuLjQwYTljNTYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAg
QXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBN
ZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggODg0NDBiYS4uOTM5
NDE4YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDkgKzMyLDEyIEBACiAjaW5jbHVkZSAi
R3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudUd0ay5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJY29uLmgi
CiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUd0ay5oIgogI2lu
Y2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKICNpbmNsdWRlICJ3ZWJr
aXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKQEAgLTYxNiw0
ICs2MjAsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnIKICAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUod2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5jZWxsZWQiLCB3
ZWJGcmFtZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFBvcHVwTWVudUd0ayhjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U2VhcmNoUG9wdXBNZW51R3RrKGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBjZTVjNWE3Li4zZjc2ZDE5IDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw5ICsyMywxNSBAQAogCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3OwogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBQb3B1cE1lbnVDbGllbnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgY2xhc3Mg
Q2hyb21lQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjIsNiAr
MTI5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R2VvbG9jYXRpb24qKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKik7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAg
cHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJD
b3JlOjpLVVJMIG1faG92ZXJlZExpbmtVUkw7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hh
bmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA4NDFhOTRjLi5jZmRkZGYzIDEw
MDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlrdS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXou
YWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8g
V2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9y
IHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5j
ZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRl
ZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBv
cHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBkMThiODRkLi42ZDY0YWM3IDEwMDY0
NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3Bw
CisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAK
QEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0Br
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3IFJ5YW4gTGVhdmVuZ29vZCA8
bGVhdmVuZ29vZEBnbWFpbC5jb20+IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
ICoKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM1LDYgKzM2LDggQEAKICNpbmNsdWRlICJJY29uLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
SGFpa3UuaCIKIAogI2luY2x1ZGUgPEFsZXJ0Lmg+CiAjaW5jbHVkZSA8U3RyaW5nLmg+CkBAIC0z
ODAsNSArMzgzLDIwIEBAIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gQ2hyb21lQ2xpZW50
SGFpa3U6OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKQogICAgIHJldHVybiAwOwogfQogCitib29s
IENocm9tZUNsaWVudEhhaWt1OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21l
Q2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOwor
fQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggOTYzZTcyZi4uMzhmZWYyNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwu
Y29tPiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0xMjgsNiArMTI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lKTsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CisKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVl
ZGVkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAzNDc3YjE3Li4xMjM5MmNjIDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVw
TWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIEFzIENo
cm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0
aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAg
ICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1
cE1lbnUpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUp
OgorCiAyMDEwLTA3LTI3ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDdkMDgwLi5mYTI5YjMyIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY3LDYgKzE2NywxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdl
YkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGViNTYyNDAuLmU5M2VhMDkgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisr
KyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYyLDEyICs2MiwxNiBA
QAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2Ny
ZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1BvcHVwTWVudU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2ltcG9ydCA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAorCisKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNlbmRpZgpAQCAtNzI0LDYgKzcyOCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9y
bURpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoY29uc3Rf
Y2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKK30KKwor
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51TWFjKGNsaWVudCkp
OworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggY2RlNWE1Yi4uYTExNjIwYyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9w
dXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMg
Q2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51
IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2Vz
IHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bwor
ICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
UXQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0wNy0yNyAgU2ltb24gSGF1c21hbm4g
IDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFy
bmUgVmVzdGLDuC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
CmluZGV4IDJjNjRhNzguLjc5MTBjMWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0
LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudFF0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIK
ICNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkKICNpbmNsdWRlICJRdE1hZW1vV2ViUG9wdXAuaCIK
ICNlbHNlCkBAIC01Miw2ICs1NCw3IEBACiAjZW5kaWYKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51UXQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZpZXdwb3J0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKQEAgLTY0NCw0ICs2NDcs
MTkgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6ZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZy
YW1lKiBmcmFtZSwgY29uc3QgVmlld3BvcnRBcmcKICAgICBlbWl0IG1fd2ViUGFnZS0+dmlld3Bv
cnRDaGFuZ2VSZXF1ZXN0ZWQoaGludHMpOwogfQogCitib29sIENocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBvcHVwTWVudVF0KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVu
dVF0KGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRhMjUuLjA2YWI1YjggMTAwNjQ0
Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTc2LDYgKzE3Nywx
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc01pbmltaXpl
ZCgpOwogI2VuZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworCiAgICAgICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogY3JlYXRl
U2VsZWN0UG9wdXAoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0
QXJndW1lbnRzKEZyYW1lKiwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
ODY3MGUyNi4uYjk1NWVmNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBB
Z29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4g
cHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUg
cmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQor
ICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hy
b21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUg
bmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDctMjcgIFN0
ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggNzM1MzJhNi4uMmU5YmE1YiAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTUsNiArNTYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VhcmNoUG9wdXBNZW51V2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5o
PgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtODY4LDMgKzg3MSwxOCBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKQogCiAjZW5kaWYKIAorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOworfQorCitQ
YXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVXaW4oY2xpZW50KSk7Cit9CisKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3ODQ1YTkuLmU3MTdlZjEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTY1LDYgKzE2NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJl
c2VudGVyKj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9CiAjZW5kaWYKIAorICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURl
bGVnYXRlPiB1aURlbGVnYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cg
Yi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDMyZmY2ZmUuLjQ0YTU2MDMgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAg
IEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVw
TWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xh
c3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQg
dG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50V3g6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpo
ZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYg
LS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKaW5kZXggZDgxYTIwYy4uMjUz
MTJiNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
Y3BwCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4gT2xsaXZpZXIgPGtl
dmlub0B0aGVvbGxpdmllcnMuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKQEAgLTM4LDYgKzM5LDggQEAKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgIlBvcHVwTWVudVd4LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51V3guaCIKICNpbmNs
dWRlICJXaW5kb3dGZWF0dXJlcy5oIgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTQ1OCw0ICs0
NjEsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lv
bkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKK2Jvb2wgQ2hyb21lQ2xpZW50V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBD
aHJvbWVDbGllbnRXeDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V3goY2xpZW50KSk7Cit9
CisKK1Bhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRXeDo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V3goY2xpZW50KSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDRiMTU2ZWQuLjVmMjJjYmUg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysr
IGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0aGVv
bGxpdmllcnMuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKQEAgLTE0MSw2ICsxNDIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUo
RnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVw
TWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB3eFdlYlZpZXcqIG1fd2ViVmll
dzsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDUwNDM4ZmIuLjY0OGExYTcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTAtMDctMjcgIEx1aXog
QWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGlu
IHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQ2xhc3NlcyBXZWJQb3B1cE1lbnUgYW5k
IFdlYlNlYXJjaFBvcHVwTWVudSBpbmhlcml0IGZyb20gUG9wdXBNZW51IGFuZAorICAgICAgICBT
ZWFyY2hQb3B1cE1lbnUgcmVzcGVjdGl2ZWx5LiBBdCB0aGlzIHBvaW50IHRoZXkgYXJlIGp1c3Qg
ZW1wdHkgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51OjpXZWJQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQ
b3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGll
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OnNob3cpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJT
ZWFyY2hQb3B1cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFy
Y2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNl
YXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCisKKyAgICAgICAgQXMgQ2hyb21lQ2xp
ZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFy
Y2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5o
ZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBp
bXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKworICAgICAgICBidWls
ZCBpc3N1ZXM6CisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorCiAyMDEwLTA3LTI3ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBS
b2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2E4
Y2JiZi4uZWZhMzc1MCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI1Nyw2ICsyNTcsMTAgQEAKIAkJQkNGNjlGQTMxMTc2RDAxNDAwNDcxQTUyIC8qIFdl
Yk5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5j
cHAgKi87IH07CiAJCUJDRjY5RkE5MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUZB
NzExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkNGNjlGQUExMTc2RDFDQjAwNDcxQTUy
IC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNGNjlGQTgxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRh
dGEuY3BwICovOyB9OworCQlEM0I5NDg0NjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0
ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovOyB9OworCQlEM0I5NDg0
NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
UG9wdXBNZW51LmggKi87IH07CisJCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFy
Y2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAg
Ki87IH07CisJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRTFFRTUz
RTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMxMUY4
Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9Owog
CQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
Y3BwICovOyB9OwogCQlFMUVFNTVGNDExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTU1RjMx
MUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC01NDYsNiArNTUwLDEwIEBACiAJCUJDRjY5RkEx
MTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOYXZpZ2F0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5RkE3MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRp
b25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTmF2aWdhdGlvbkRh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNjlGQTgxMTc2RDFDQjAwNDcx
QTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tOYXZpZ2F0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUG9wdXBNZW51LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVw
TWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQb3B1cE1lbnUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRUU1NUYzMTFGOEYxODkwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTgzMyw2ICs4NDEsMTAgQEAKIAkJCQlCQzAzMkQ2RDEwRjQzNzhE
MDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCiAJCQkJMUEzRTczNjAxMUNDMjY1
OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8sCiAJCQkJMUEzRTczNUYx
MUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICovLAorCQkJCUQzQjk0
ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovLAorCQkJCUQzQjk0ODQz
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLywKKwkJCQlEM0I5NDg0NDExRkY0
QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKKwkJCQlEM0I5NDg0NTEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IFdlYkNvcmVTdXBwb3J0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyODgs
NiArMTMwMCw4IEBACiAJCQkJQkNGMDQ5RTYxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlRnJh
bWVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0YwNDlFNzExRkUyMEY2MDBGODZBNTgg
LyogV0tCdW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU0OTc2ODExRkY2NThF
MDA0OEI0NjQgLyogTlBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4NDcxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4
NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0xNDg2LDYgKzE1MDAsOCBAQAogCQkJCUUxRUU1NUY4MTFGOEYxQkMwMENDQkVFNCAvKiBX
S0J1bmRsZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxRUU1NjU2MTFGOEY3MTcwMEND
QkVFNCAvKiBXS0J1bmRsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFNDk3NjkxMUZG
NjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNCOTQ4
NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAyMzI1ODA5Li4xOTY3ZTY5IDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApA
QCAtMzQsOCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaCIK
KyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3Jl
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVu
dS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtNDY4LDYgKzQ3
MCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgTm9kZSopCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
UGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViUG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKIFBh
c3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVIVE1MUGFy
c2VyUXVpcmtzKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGRkNDg3YjQu
LmJkNjcxYjMgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE2Miw2ICsxNjIsMTAgQEAgcHJpdmF0ZToKICAgICAKICAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6SFRNTFBhcnNlclF1aXJrcz4gY3JlYXRlSFRN
TFBhcnNlclF1aXJrcygpOwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVw
TWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0Owor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1l
bnUuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNlNzM4YwotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
Y3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKKworI2luY2x1ZGUgIkZyYW1lVmlldy5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CisgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKK3sKK30KKworV2ViUG9wdXBNZW51Ojp+V2Vi
UG9wdXBNZW51KCkKK3sKK30KKworCit2b2lkIFdlYlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVu
dCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgV2ViUG9wdXBNZW51Ojpz
aG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIFdlYkNvcmU6OkZyYW1lVmlldyogdmll
dywgaW50IGluZGV4KQoreworCit9CisKK3ZvaWQgV2ViUG9wdXBNZW51OjpoaWRlKCkKK3sKK30K
Kwordm9pZCBXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKK30KKworfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5o
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NTUxYzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdlYlBvcHVwTWVudV9oCisj
ZGVmaW5lIFdlYlBvcHVwTWVudV9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUG9wdXBNZW51IDogcHVibGljIFdlYkNvcmU6OlBvcHVwTWVudSB7
CitwdWJsaWM6CisgICAgV2ViUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworICAgIH5XZWJQ
b3B1cE1lbnUoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBXZWJDb3JlOjpGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBo
aWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVh
bCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJQb3B1
cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zYmYyNTFhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTZWFyY2hQb3B1
cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlNlYXJjaFBvcHVwTWVudTo6V2Vi
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDog
bV9wb3B1cChjbGllbnQpCit7Cit9CisKK1BvcHVwTWVudSogV2ViU2VhcmNoUG9wdXBNZW51Ojpw
b3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwordm9pZCBXZWJTZWFyY2hQ
b3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcm
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit7Cit9CisKK3ZvaWQgV2ViU2VhcmNoUG9wdXBNZW51
Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mKQoreworfQorCitib29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmggYi9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTE4MzNlMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV2ViU2VhcmNoUG9wdXBNZW51X2gKKyNk
ZWZpbmUgV2ViU2VhcmNoUG9wdXBNZW51X2gKKworI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudSB7
CitwdWJsaWM6CisgICAgV2ViU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworCisg
ICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwg
dm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1l
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisK
K3ByaXZhdGU6CisgICAgV2ViUG9wdXBNZW51IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAv
LyBXZWJTZWFyY2hQb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52
Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCBkZjdmYzVhLi5kZGY0NjEx
IDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagpAQCAtNTU5LDYgKzU1OSwyMiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViSW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2Vi
UHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJQb3B1cE1lbnUuY3BwIg0KKwkJCQkJPg0KKwkJCQk8
L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2Vi
Q29yZVN1cHBvcnRcV2ViUG9wdXBNZW51LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJ
PEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxX
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViU2Vh
cmNoUG9wdXBNZW51LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQkJPEZpbHRlcg0KIAkJ
CQkJTmFtZT0id2luIg0KIAkJCQkJPg0KLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62776</attachid>
            <date>2010-07-27 17:28:29 -0700</date>
            <delta_ts>2010-07-30 10:56:28 -0700</delta_ts>
            <desc>patch 9</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>186178</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAxMTFmYTU4Mjc3MzUxYTQ5MDA1OTE5ZWE4NTAwNzY2MDFkZjZhZmFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMjcgSnVsIDIwMTAgMTU6NTk6NDAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51IGhhdmUgYmVlbiBtYWRlIHB1cmUgdmlydHVhbC4KCiogcGxhdGZvcm0vUG9wdXBNZW51
Lmg6CihXZWJDb3JlOjpQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgoqIHBsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojp+U2VhcmNoUG9wdXBNZW51KToK
CkNsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHlDb250cm9sU2luZ2xlTGluZSBo
YXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CihXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3ZXJlIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBpbnN0YW5jZXMgb2YgY2xhc3NlcwpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCgoqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKFdlYkNvcmU6OkVtcHR5UG9w
dXBNZW51OjpoaWRlKToKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCk6CihXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CihXZWJDb3Jl
OjpFbXB0eVNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6RW1wdHlTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpFbXB0eVNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudSk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlUG9wdXBN
ZW51KToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKiBwYWdlL0No
cm9tZS5oOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CgpPcmlnaW5hbCBjb250ZW50cyBvZiBmaWxl
cyBQb3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmggaGF2ZSBiZWVuIHNwbGl0ZWQKaW4g
c2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFguaCBhbmQg
U2VhcmNoUG9wdXBNZW51WFhYLmgpLgpFYWNoIG9mIG5ldyB0aGUgZmlsZXMgY29udGFpbiB0aGUg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1lbnUgb3IKU2VhcmNoUG9w
dXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtLgoK
YnJldzoKCiogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNvcmU6OlBvcHVw
TWVudUJyZXc6OlBvcHVwTWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6Omhp
ZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL2JyZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OmNsaWVudCk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVCcmV3OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgoKY2hy
b21pdW06CgoqIFdlYkNvcmUuZ3lwaToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0p
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSk6CihXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQp
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQpOgoqIHBsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJv
bWl1bTo6Y2xpZW50KToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0pOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSk6
CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMpOgoqIHBsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmg6IEFkZGVkLgoKZWZsOgoKKiBwbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51
RWZsKToKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFk
ZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgoqIHBsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQ
b3B1cE1lbnVFZmwpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51RWZsOjplbmFibGVkKToKKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmg6IEFkZGVkLgoKZ3RrOgoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKToKKFdl
YkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVudUd0ayk6CihXZWJDb3JlOjpQb3B1cE1lbnVH
dGs6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKFdlYkNvcmU6OlBvcHVw
TWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpkaXNj
b25uZWN0Q2xpZW50KToKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQp
OgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQpOgooV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbik6CihXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKToKKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgooV2Vi
Q29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgoqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVH
dGspOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmg6IEFk
ZGVkLgoKaGFpa3U6CgoqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcDoKKFdlYkNv
cmU6OkhhaWt1UG9wdXA6OkhhaWt1UG9wdXApOgooV2ViQ29yZTo6SGFpa3VQb3B1cDo6fkhhaWt1
UG9wdXApOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KToKKFdlYkNv
cmU6OlBvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UpOgooV2ViQ29yZTo6UG9wdXBNZW51
SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OnNob3cp
OgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmhpZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBwbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5o
OiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKFdl
YkNvcmU6OlBvcHVwTWVudUhhaWt1OjpjbGllbnQpOgoqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBv
cHVwTWVudUhhaWt1LmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSk6CiogcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuaDogQWRkZWQuCgptYWM6CgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmg6IEFkZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNjb25uZWN0Q2xpZW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgooV2ViQ29yZTo6
UG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xl
YXIpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CihXZWJDb3JlOjpQb3B1cE1l
bnVNYWM6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51TWFjOjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJj
aGVzKToKCnF0OgoKKiBXZWJDb3JlLnBybzoKKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6
CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQpOgooV2ViQ29yZTo6UG9wdXBNZW51
UXQ6On5Qb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6
aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgoqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oOgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVRdDo6cG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVj
ZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CiogcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCgp3aW46CgoqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgooV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp+UG9w
dXBNZW51V2luKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmhpZGUpOgooV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp2aXNpYmxlSXRl
bXMpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9j
dXNGaXJzdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmRvd24pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp1cCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Y2xpZW50UmVjdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEp
OgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyk6
CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNsaWVudCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhcik6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46Oml0ZW1I
ZWlnaHQpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3aW5kb3dSZWN0KToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6cG9wdXBIYW5kbGUpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRXYXND
bGlja2VkKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2FzQ2xpY2tlZCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNj
cm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndoZWVsRGVsdGEpOgooV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSk6CihXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKToKKiBwbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNo
UG9wdXBNZW51V2luKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5oOiBBZGRlZC4KCndrOgoKKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6CihXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6UG9wdXBNZW51V3g6On5Q
b3B1cE1lbnVXeCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXeDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51
SXRlbVNlbGVjdGVkKToKKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
aDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6Y2xpZW50KToKKiBwbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNo
UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudVd4Ojpwb3B1cE1lbnUpOgoqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6
IEFkZGVkLgoKQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bwppbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCiogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgoKV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVw
TWVudSk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXQv
d2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6Cgoq
IFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoK
V2ViS2l0MjoKCkNsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdCBmcm9tIFBvcHVwTWVudSBhbmQKU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1
cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViS2l0
OjpXZWJQb3B1cE1lbnU6OnNob3cpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgooV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CihXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6
cG9wdXBNZW51KToKKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMpOgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCgpBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQppbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21l
Q2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCmltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpidWlsZCBpc3N1ZXM6CgoqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjc5ICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgICA4ICsKIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxNCArLQogV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrCiBXZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKystCiBXZWJD
b3JlL3BhZ2UvQ2hyb21lLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKwog
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5
ICsKIFdlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmggICAgICAgICAgICAgICAgICAgICAgIHwg
IDE3NiArLS0tLS0tLS0tLS0tCiBXZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oICAg
ICAgICAgICAgICAgICB8ICAgMjEgKy0KIFdlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVC
cmV3LmNwcCAgICAgICAgICAgIHwgICAyNiArKy0KIFdlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1
cE1lbnVCcmV3LmggICAgICAgICAgICAgIHwgICA1NCArKysrCiBXZWJDb3JlL3BsYXRmb3JtL2Jy
ZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZv
cm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmggICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwICAgIHwgICAyMyArLQogV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oICAgICAgfCAgIDE5ICsr
CiAuLi4vcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwICB8ICAg
MTggKy0KIC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oICAg
IHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAgICAgICAg
ICAgICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmggICAg
ICAgICAgICAgICAgfCAgIDU0ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVw
TWVudUVmbC5jcHAgICAgICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNo
UG9wdXBNZW51RWZsLmggICAgICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UG9wdXBNZW51R3RrLmNwcCAgICAgICAgICAgICAgfCAgIDI1ICstCiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuaCAgICAgICAgICAgICAgICB8ICAgNjcgKysrKysKIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAgICAgICAgIHwgICAxOSArLQogV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggICAgICAgICAgfCAgIDQ0ICsr
KwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAgICAgICAgICAgfCAg
IDMxICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5oICAgICAgICAg
ICAgfCAgIDU2ICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFp
a3UuY3BwICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1l
bnVIYWlrdS5oICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmggICAgICAgICAgICAgICAgfCAgIDYyICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Q
b3B1cE1lbnVNYWMubW0gICAgICAgICAgICAgICB8ICAgMjIgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
bWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxh
dGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbSAgICAgICAgIHwgICAxOCArLQogV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAgICAgICAgICAgICAgICAgfCAgIDI1ICstCiBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmggICAgICAgICAgICAgICAgICB8ICAgNDkg
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaCAgICAgICAgICAg
fCAgICAyICstCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCAgICAg
ICAgICB8ICAgMjAgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaCAg
ICAgICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHAgICAgICAgICAgICAgIHwgICA2NSArKystLS0KIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5oICAgICAgICAgICAgICAgIHwgICA5OCArKysrKysrCiBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwICAgICAgICB8ICAgMTggKy0KIFdlYkNvcmUvcGxh
dGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oICAgICAgICAgIHwgICA0NCArKysKIFdlYkNv
cmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwICAgICAgICAgICAgICAgIHwgICAyOSArLQog
V2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5oICAgICAgICAgICAgICAgICAgfCAgIDY0
ICsrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmNwcCAgICAgICAg
ICB8ICAgMTggKy0KIFdlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaCAgICAg
ICAgICAgIHwgICA0NCArKysKIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAg
ICAgICAgICAgICAgIHwgICAgNyArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
aCAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwICB8ICAgMTcgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oICAgIHwgICAgNCArLQogV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgICAgICAgIHwgICAgOCArCiBXZWJL
aXQvZWZsL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysK
IFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCAgICAgIHwgICAx
OCArKwogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCAgICAgICAg
fCAgICA1ICsKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNyArKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwICAgICAgfCAgIDE5ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oICAgICAgICB8ICAgMTEgKwogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuY3BwICB8ICAgMTggKysKIFdlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oICAgIHwgICAgNSArCiBXZWJLaXQvbWFjL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgICAgIHwgICAgNiArLQogV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gICAgICAgfCAgIDIxICsrLQogV2Vi
S2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsr
CiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAg
MTggKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAgICAgICAg
IHwgICAgNSArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTcgKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCAgICAgIHwgICAxOCArKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCAgICAgICAgfCAgICA1ICsKIFdlYktpdC93eC9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guY3BwICAgICAgICAgfCAgIDE4ICsrCiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oICAgICAgICAgICB8ICAgIDUgKwogV2ViS2l0Mi9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQxICsrKwogV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgIDE5ICsrCiAuLi4vV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwICB8ICAgMTcgKysKIC4u
Li9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgNCAr
CiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCB8ICAg
NTYgKysrKwogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5o
ICAgfCAgIDQ4ICsrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
ICAgICAgICAgIHwgICA1MCArKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
ZWFyY2hQb3B1cE1lbnUuaCB8ICAgNDQgKysrCiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysKIDg3IGZpbGVzIGNoYW5nZWQsIDIyMDMg
aW5zZXJ0aW9ucygrKSwgMzc5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNv
cmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVu
dUhhaWt1LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJj
aFBvcHVwTWVudUhhaWt1LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL21h
Yy9Qb3B1cE1lbnVNYWMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbWFj
L1NlYXJjaFBvcHVwTWVudU1hYy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Qb3B1cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TZWFyY2hQb3B1cE1lbnVRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxh
dGZvcm0vd3gvUG9wdXBNZW51V3guaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZv
cm0vd3gvU2VhcmNoUG9wdXBNZW51V3guaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVhNTAzYmMuLmJhODRmNDQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjgyIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAg
ICAgIENsYXNzZXMgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUgaGF2ZSBiZWVuIG1hZGUg
cHVyZSB2aXJ0dWFsLiAKKworICAgICAgICAqIHBsYXRmb3JtL1BvcHVwTWVudS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Ojp+UG9wdXBNZW51KToKKyAgICAgICAgKiBwbGF0Zm9ybS9T
ZWFyY2hQb3B1cE1lbnUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudTo6flNl
YXJjaFBvcHVwTWVudSk6CisKKyAgICAgICAgQ2xhc3NlcyBSZW5kZXJNZW51TGlzdCBhbmQgUmVu
ZGVyVGV4eUNvbnRyb2xTaW5nbGVMaW5lIGhhdmUgYmVlbiBjaGFuZ2VkIHRvIHVzZQorICAgICAg
ICB0aGUgbmV3IHB1cmUgdmlydHVhbCBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2Vk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisK
KyAgICAgICAgQ2hyb21lIGFuZCBDaHJvbWVDbGllbnQgd2VyZSBtYWRlIHJlc3BvbnNpYmxlIGZv
ciBwcm92aWRpbmcgaW5zdGFuY2VzIG9mIGNsYXNzZXMgCisgICAgICAgIFBvcHVwTWVudSBhbmQg
U2VhcmNoUG9wdXBNZW51IHRvIGl0cyB1c2Vycy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0
eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNl
YXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlT
ZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eVNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNo
cm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAg
IChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZTo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisKKyAgICAgICAgT3JpZ2luYWwgY29udGVudHMgb2YgZmlsZXMgUG9w
dXBNZW51LmggYW5kIFNlYXJjaFBvcHVwTWVudS5oIGhhdmUgYmVlbiBzcGxpdGVkIAorICAgICAg
ICBpbiBzZXZlcmFsIGZpbGVzLCB0d28gZm9yIGVhY2ggcGxhdGZvcm0gKFBvcHVwTWVudVhYWC5o
IGFuZCBTZWFyY2hQb3B1cE1lbnVYWFguaCkuCisgICAgICAgIEVhY2ggb2YgbmV3IHRoZSBmaWxl
cyBjb250YWluIHRoZSBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmb3JtIFBvcHVwTWVu
dSBvciAKKyAgICAgICAgU2VhcmNoUG9wdXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBj
b3JyZXNwb25kaW5nIHBsYXRmb3JtLgorCisgICAgICAgIGJyZXc6CisKKyAgICAgICAgKiBwbGF0
Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
QnJldzo6UG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3Ojp+
UG9wdXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpkaXNjb25u
ZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVCcmV3Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vYnJl
dy9Qb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJl
dzo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6c2F2ZVJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OmxvYWRSZWNl
bnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3OjpTZWFy
Y2hQb3B1cE1lbnVCcmV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6
OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6cG9wdXBN
ZW51KToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaDogQWRk
ZWQuCisKKyAgICAgICAgY2hyb21pdW06CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OlBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjp+UG9wdXBNZW51Q2hyb21pdW0pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51Q2hyb21pdW06OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hy
b21pdW06OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNo
cm9taXVtOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06
OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dUNocm9taXVtOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW06OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hy
b21pdW06OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVDaHJvbWl1bTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oOiBBZGRlZC4KKworICAgICAgICBlZmw6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVF
Zmw6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51RWZsOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQb3B1
cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50
U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjplbmFibGVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmg6IEFkZGVkLgor
CisgICAgICAgIGd0azoKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
R3RrOjpQb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjp+UG9w
dXBNZW51R3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51R3RrOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVHdGs6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3Rr
OjptZW51SXRlbUFjdGl2YXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVVbm1hcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1lbnVQb3NpdGlv
bkZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudVJlbW92ZUl0
ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVHdGs6OlNlYXJjaFBvcHVwTWVudUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVHdGs6OnBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVHdGs6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVHdGs6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVHdGs6OmVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1
cE1lbnVHdGsuaDogQWRkZWQuCisKKyAgICAgICAgaGFpa3U6CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIYWlrdVBvcHVw
OjpIYWlrdVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhhaWt1UG9wdXA6On5IYWlrdVBvcHVw
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpQb3B1cE1lbnVIYWlrdSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6flBvcHVwTWVudUhhaWt1KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudUhhaWt1OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1Ojp1cGRh
dGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3Uu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6Y2xpZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6U2VhcmNoUG9wdXBNZW51SGFpa3UpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnNhdmVSZWNlbnRTZWFyY2hlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpwb3B1cE1lbnUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1Lmg6IEFkZGVkLgorCisg
ICAgICAgIG1hYzoKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUG9w
dXBNZW51TWFjLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNj
b25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6
Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9w
dXBNZW51TWFjOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6dXBkYXRl
RnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51TWFjOjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1
cE1lbnVNYWMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjplbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJjaGVz
KToKKworICAgICAgICBxdDoKKworICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0
OjpQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6flBvcHVwTWVu
dVF0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpkaXNjb25uZWN0Q2xpZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVF0OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0Ojp1cGRh
dGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmg6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51UXQ6OlNlYXJjaFBvcHVwTWVudVF0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudVF0Ojpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51UXQ6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnVRdDo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TZWFyY2hQ
b3B1cE1lbnVRdC5oOiBBZGRlZC4KKworICAgICAgICB3aW46CisKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V2luKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6flBvcHVwTWVudVdpbik6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpwb3B1cENsYXNzTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpoaWRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Y2FsY3VsYXRlUG9zaXRpb25BbmRT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0Rm9jdXNlZEluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmlzaWJsZUl0ZW1zKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6bGlzdEluZGV4QXRQb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzZWRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OmZvY3VzRmlyc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpm
b2N1c0xhc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpkb3duKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dXApOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjppbnZhbGlkYXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46
OmNsaWVudFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjppbmNyZW1lbnRX
aGVlbERlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6cmVkdWNlV2hlZWxE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbFRvUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dXBkYXRlRnJvbUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpwYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6cmVnaXN0ZXJDbGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVXaW46OlBvcHVwTWVudVduZFByb2MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2lu
Ojp3bmRQcm9jKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpjbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjppdGVtSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0V2FzQ2xpY2tlZCk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVXaW46Ondhc0NsaWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpzZXRTY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpzY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3
aGVlbERlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xsYmFyQ2Fw
dHVyaW5nTW91c2UpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRTY3JvbGxi
YXJDYXB0dXJpbmdNb3VzZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXaW46OlNlYXJjaFBv
cHVwTWVudVdpbik6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXaW46OnBvcHVw
TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXaW46OmVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpzYXZlUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpsb2FkUmVjZW50U2VhcmNo
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaDogQWRkZWQu
CisKKyAgICAgICAgd2s6CisKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51V3g6On5Qb3B1cE1lbnVXeCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVXeDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51SXRlbVNl
bGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vd3gvUG9wdXBNZW51V3guaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVXeDo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNoUG9wdXBNZW51
V3gpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNl
YXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4Ojpwb3B1cE1lbnUpOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6IEFkZGVkLgorCisKKwogMjAxMC0w
Ny0yNyAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA2ZmVmYzhiLi4xODg1YzkyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTI0NjAsNiArMjQ2MCw3IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVu
dUd0ay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0v
Z3RrL1JlbmRlclRoZW1lR3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0
ay5jcHAgXApAQCAtMjQ2OCw2ICsyNDY5LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNo
UG9wdXBNZW51R3RrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAgXAogCVdl
YkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU291bmRHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRmYmQxNTAuLmQ2Njc5Y2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMjUwLDYgKzI1MCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlMjdjaGVja0ludGVn
cml0eUJlZm9yZU9wZW5pbmdFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U0b3BlbkVSS05T
XzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTVjbG9zZUV2CiBfX1pON1dlYkNv
cmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4SWNvbkRhdGFiYXNlQ2xpZW50RQorX19a
TjdXZWJDb3JlMTJQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19aTjdX
ZWJDb3JlMTJQcmludENvbnRleHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlGbG9h
dFNpemVFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDE2aXNQYWdlQm94VmlzaWJsZUVQTlNf
NUZyYW1lRWkKQEAgLTQwOCw2ICs0MDksNyBAQCBfX1pON1dlYkNvcmUxN25hbWVGb3JDdXJzb3JU
eXBlRU5TXzZDdXJzb3I0VHlwZUUKIF9fWk43V2ViQ29yZTE3b3BlblRlbXBvcmFyeUZpbGVFUEtj
UmkKIF9fWk43V2ViQ29yZTE4ZGVwcmVjYXRlZFBhcnNlVVJMRVJLTlNfNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FCitfX1pO
N1dlYkNvcmUxOFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9f
Wk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5pbWF0aW9uc0VQTlNfOERv
Y3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNwZW5kQW5pbWF0
aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMjBw
YXVzZUFuaW1hdGlvbkF0VGltZUVQTlNfMTJSZW5kZXJPYmplY3RFUktOU182U3RyaW5nRWQKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggYWFmYjIyMi4uNmNiNWZjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIxMjIsNiArMjEyMiw3IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bU1hYy5tbScsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbi5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVt
LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hy
b21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2hhcmVkVGltZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NvdW5kQ2hyb21pdW1Q
b3NpeC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NvdW5kQ2hyb21pdW1X
aW4uY3BwJywKQEAgLTI2MTQsNiArMjYxNSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9QbGF0Zm9ybU1v
dXNlRXZlbnRNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVl
bk1hYy5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbScsCkBAIC0yNjIxLDYgKzI2MjMsNyBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
bWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2Vh
cmNoUG9wdXBNZW51TWFjLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1
cE1lbnVNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMu
bW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9TaGFyZWRUaW1lck1hYy5tbScsCkBAIC0y
NzcxLDYgKzI3NzQsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BsYXRmb3JtTW91c2VF
dmVudFF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
cXQvUVdlYlBvcHVwLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvUVdlYlBvcHVwLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwJywKQEAgLTI3ODEs
NiArMjc4NSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2Nyb2xsYmFyVGhlbWVRdC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1Njcm9sbGJhclRoZW1lUXQuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9xdC9TaGFyZWRCdWZmZXJRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NoYXJl
ZFRpbWVyUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9Tb3VuZFF0LmNwcCcsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCAwNzUxODA5Li5jMGRjZDE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE3MDUsNiArMTcwNSw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCiAgICAgcGxhdGZv
cm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2lu
dC5oIFwKKyAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuaCBcCiAgICAgcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaCBcCiAgICAgcGxhdGZv
cm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmggXApAQCAtMTcxNCw2ICsxNzE1LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFyLmggXAogICAgIHBsYXRmb3JtL1Njcm9sbGJh
clRoZW1lQ29tcG9zaXRlLmggXAogICAgIHBsYXRmb3JtL1Njcm9sbFZpZXcuaCBcCisgICAgcGxh
dGZvcm0vU2VhcmNoUG9wdXBNZW51LmggXAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIFwK
ICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NR
TGl0ZUZpbGVTeXN0ZW0uaCBcCkBAIC0zMjg1LDYgKzMyODcsOCBAQCBIRUFERVJTICs9IFwKICAg
ICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRXJyb3JzLmggXAogICAg
IC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaCBcCkBAIC0zMzU3LDYgKzMzNjEsOCBAQCBTT1VSQ0VTICs9IFwKICAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkJhY2tGb3J3YXJkQ29udHJvbGxlckNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCiAgICAg
Li4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcCBc
CiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhLmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDg5YzA3ZDUuLmNk
MzkzNDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjM3MjAsNiAr
MjM3MjAsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxQb3B1cE1lbnVXaW4uaCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5c
U2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpAQCAtMjM3
NDAsNiArMjM3NDQsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxTZWFyY2hQb3B1cE1lbnVXaW4uaCINCisJ
CQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVx3aW5cU2hhcmVkQnVmZmVyV2luLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTQ1YWE1ZC4u
MjAzZGZlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQyLDcgKzQyLDcgQEAKIAkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NjVBRDRGMjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjVBRDRGNjBCMEMyRURB
MDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NUFENEYzMEIwQzJFREEwMDVBMkIxRCAvKiBD
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQkwNjVBRDRGNzBCMEMyRURBMDA1QTJC
MUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGNDBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1l
bnVDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxODkwQUREOTYyNDAw
NDEyOEUwIC8qIFBvcHVwTWVudS5oICovOyB9OworCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAg
LyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2OEUxOTAwQUREOTY0MDAw
NDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA2NjhFMThFMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMu
bW0gKi87IH07CiAJCTA2NkM3NzJCMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2Qzc3MkEwQUI2
MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY2Qzc3MkQwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVD
aG9vc2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tICovOyB9OwpA
QCAtMzU4MiwxMiArMzU4MiwxMiBAQAogCQlBQjRDQjRFQjBCOEJEQTNEMDA5RjQwQjAgLyogSlNI
VE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUI0Q0I0RUEwQjhCREEzRDAwOUY0MEIwIC8qIEpTSFRNTFNlbGVjdEVs
ZW1lbnRDdXN0b20uaCAqLzsgfTsKIAkJQUI2N0QxQTgwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRl
clRleHRDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFCNjdEMUE2MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5jcHAg
Ki87IH07CiAJCUFCNjdEMUE5MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI2N0QxQTcw
OTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250cm9sLmggKi87IH07Ci0JCUFCNzE3MDg5
MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBT
ZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKKwkJQUI3MTcwODkwQjMxMTgwODAwMTcxMjNFIC8qIFNl
YXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFCNzE3MEEwMEIz
MTE5M0IwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA5RjBCMzExOTNCMDAxNzEyM0UgLyog
U2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQlBQkFGMjIwODBDMDNCMUM3MDBCMEJDRjAg
LyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUJBRjIyMDcwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSAqLzsgfTsKIAkJ
QUJCNTQxOUUwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJCNTQxOUMwQUNEREZFNDAwMjgy
MEVCIC8qIFJlbmRlckxpc3RCb3guY3BwICovOyB9OwogCQlBQkI1NDE5RjBBQ0RERkU0MDAyODIw
RUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUJCNTQxOUQwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guaCAq
LzsgfTsKLQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJDMTI4NzYwQjMz
QUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovOyB9OworCQlBQkMxMjg3NzBCMzNB
QTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkMxMjg3NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBN
ZW51Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQUJEREZFNzkwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCRERGRTczMEE1QzZF
NkYwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5jcHAgKi87IH07CiAJCUFCRERGRTdBMEE1QzZF
NzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREZFNzQwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1l
bnVMaXN0LmggKi87IH07CiAJCUFCRkU3RTEyMEQzMkZBRjYwMDY2RjREMiAvKiBNZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQkZFN0UxMDBEMzJGQUY1MDA2NkY0RDIgLyogTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
ICovOyB9OwpAQCAtNTAwOCw2ICs1MDA4LDggQEAKIAkJRDIzQ0E1NUQwQUIwRUFBRTAwNTEwOEE1
IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9u
LmggKi87IH07CiAJCUQyM0NBNTVGMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyM0NB
NTVFMEFCMEVBQjYwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJRDIz
Q0E1NkMwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUg
LyogUmFuZ2VFeGNlcHRpb24uaCAqLzsgfTsKKwkJRDM5RDAwNkQxMUY4RTMwODAwNjA0MUYyIC8q
IFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUQzOUQwMDlEMTFGOTA3
RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDlDMTFGOTA3RTYwMDYwNDFGMiAvKiBTZWFy
Y2hQb3B1cE1lbnVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBD
ODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERC
MjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07
CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CkBAIC0xMDY3Niw2
ICsxMDY3OCw4IEBACiAJCUQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQyM0NBNTVFMEFCMEVBQjYwMDUxMDhB
NSAvKiBKU1JhbmdlRXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1JhbmdlRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDIzQ0E1NkIwQUIwRUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudU1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMzlEMDA5QzExRjkwN0U2MDA2MDQxRjIgLyogU2Vh
cmNoUG9wdXBNZW51TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJj
aFBvcHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEw
MzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4
RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91
dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRP
dXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyMjIsMTAg
KzEyMjI2LDEyIEBACiAJCQkJNEIyNzA5ODEwQUYyRTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRN
YWMubW0gKi8sCiAJCQkJOTM1QzQ3NkYwOUFDNEQ3MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VF
dmVudE1hYy5tbSAqLywKIAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1T
Y3JlZW5NYWMubW0gKi8sCisJCQkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVu
dU1hYy5oICovLAogCQkJCTA2NjhFMThFMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMu
bW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlck1h
Yy5jcHAgKi8sCiAJCQkJNDQ3RDY5MDEwRkE2MjY4MTAwMTVDQ0IxIC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oICovLAogCQkJCTQ0N0Q2OTAyMEZBNjI2ODEwMDE1Q0NCMSAvKiBSdW50aW1l
QXBwbGljYXRpb25DaGVja3MubW0gKi8sCisJCQkJRDM5RDAwOUMxMUY5MDdFNjAwNjA0MUYyIC8q
IFNlYXJjaFBvcHVwTWVudU1hYy5oICovLAogCQkJCTFDRTI0Rjk2MEQ3Q0FGMEUwMDdFMDRDMiAv
KiBTY2hlZHVsZVBhaXJNYWMubW0gKi8sCiAJCQkJQkNBQTkwQzIwQTdFQkE2MDAwOEIxMjI5IC8q
IFNjcm9sbGJhci5jcHAgKi8sCiAJCQkJQkM4Qjg1M0MwRTdDN0YxMTAwQUI2OTg0IC8qIFNjcm9s
bGJhclRoZW1lTWFjLmggKi8sCkBAIC0xOTg0Nyw2ICsxOTg1Myw4IEBACiAJCQkJRTFCRTUxMkUw
Q0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29tTW9kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRDM5RDAwNkQxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRDM5RDAwOUQxMUY5MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDk5MzhiYmMuLmNjNjI3
MTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNiBFcmljIFNlaWRlbCAoZXJpY0B3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzQwLDkgQEAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVu
dC5oIgogI2luY2x1ZGUgIlBsdWdpbkhhbHRlckNsaWVudC5oIgorI2luY2x1ZGUgIlBvcHVwTWVu
dS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnUuaCIKIAogLyoKICBUaGlzIGZpbGUgaG9sZHMgZW1wdHkgQ2xpZW50IHN0dWJzIGZvciB1c2Ug
YnkgV2ViQ29yZS4KQEAgLTU2LDYgKzU5LDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgRW1wdHlQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KSB7fQorICAg
IHZpcnR1YWwgdm9pZCBoaWRlKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1l
bnQoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkge30KK307CisKK2Ns
YXNzIEVtcHR5U2VhcmNoUG9wdXBNZW51IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpIHsgcmV0dXJuICZtX3BvcHVw
OyB9CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpIHt9CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHt9CisgICAg
dmlydHVhbCBib29sIGVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorCitwcml2YXRlOgorICAg
IEVtcHR5UG9wdXBNZW51IG1fcG9wdXA7Cit9OworCiBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6
IHB1YmxpYyBDaHJvbWVDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkVtcHR5Q2hyb21l
Q2xpZW50KCkgeyB9CkBAIC0xMDgsNiArMTMwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZElu
dGVycnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5UG9wdXBNZW51KCkp
OyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBF
bXB0eVNlYXJjaFBvcHVwTWVudSgpKTsgfQorCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2Jh
clRleHQoY29uc3QgU3RyaW5nJikgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3Mo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAwYzY2OTI1Li45ZmVlYTFhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00ODIsNSArNDgyLDIwIEBAIGJvb2wg
Q2hyb21lQ2xpZW50OjpwYWludEN1c3RvbVNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFJlY3QmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWU6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gbV9jbGll
bnQtPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Cit9CisKK1Bhc3NSZWZQ
dHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVBvcHVwTWVudShjbGll
bnQpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY2xpZW50LT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoY2xpZW50KTsKK30KKwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNTM3NDY4YS4uMzBlZGYyOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjQsNiArMjUsOCBAQAogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCiAjaW5jbHVkZSAi
Rm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJIb3N0V2luZG93LmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTQ0LDYgKzQ3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgTm9kZTsKICAg
ICBjbGFzcyBQYWdlOworICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKICAgICBjbGFzcyBTdHJp
bmc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgY2xhc3MgTm90aWZpY2F0aW9uUHJl
c2VudGVyOwpAQCAtMTQ0LDYgKzE0OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7IAog
I2VuZGlmCiAKKyAgICAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpOworICAgICAgICBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCopIGNvbnN0OworICAgICAgICBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgcHJp
dmF0ZToKICAgICAgICAgUGFnZSogbV9wYWdlOwogICAgICAgICBDaHJvbWVDbGllbnQqIG1fY2xp
ZW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDc5NWIyNWMuLjA0YWY3N2QgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yNiw3ICsyNywxMCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJRdWlya3MuaCIKICNpbmNsdWRlICJIb3N0V2lu
ZG93LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTMsNiArNTcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBh
Z2U7CisgICAgY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogICAgIGNsYXNzIFN0cmluZzsKICAgICBj
bGFzcyBXaWRnZXQ7CiAKQEAgLTI1Miw2ICsyNTcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNaW5pbWl6ZWQoKSB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkgPSAwOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVh
dGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3QgPSAwOworCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFs
IH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9Qb3B1cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKaW5kZXggZDlkMjc0
MC4uOGViYmEwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwxODAgKzIxLDIyIEBACiAjaWZu
ZGVmIFBvcHVwTWVudV9oCiAjZGVmaW5lIFBvcHVwTWVudV9oCiAKLSNpbmNsdWRlICJJbnRSZWN0
LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi0jaWYgUExBVEZPUk0oTUFDKQot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpZmRlZiBfX09CSkNfXwotQGNsYXNzIE5TUG9w
VXBCdXR0b25DZWxsOwotI2Vsc2UKLWNsYXNzIE5TUG9wVXBCdXR0b25DZWxsOwotI2VuZGlmCi0j
ZWxpZiBQTEFURk9STShXSU4pCi0jaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCi0jaW5jbHVkZSAiU2Ny
b2xsYmFyQ2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotdHlwZWRlZiBzdHJ1Y3Qg
SFdORF9fKiBIV05EOwotdHlwZWRlZiBzdHJ1Y3QgSERDX18qIEhEQzsKLXR5cGVkZWYgc3RydWN0
IEhCSVRNQVBfXyogSEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKFFUKQotbmFtZXNwYWNlIFdlYkNv
cmUgewotY2xhc3MgUXRBYnN0cmFjdFdlYlBvcHVwOwotfQotI2VsaWYgUExBVEZPUk0oR1RLKQot
dHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKLXR5cGVkZWYgc3RydWN0IF9HdGtNZW51
SXRlbSBHdGtNZW51SXRlbTsKLXR5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0Owot
I2luY2x1ZGUgIkdSZWZQdHJHdGsuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1
ZGUgPGdsaWIuaD4KLSNlbGlmIFBMQVRGT1JNKFdYKQotI2lmZGVmIF9fV1hNU1dfXwotI2luY2x1
ZGUgPHd4L21zdy93aW51bmRlZi5oPgotI2VuZGlmCi1jbGFzcyB3eE1lbnU7Ci0jaW5jbHVkZSA8
d3gvZGVmcy5oPgotI2luY2x1ZGUgPHd4L2V2ZW50Lmg+Ci0jZWxpZiBQTEFURk9STShDSFJPTUlV
TSkKLSNpbmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgiCi0jZWxpZiBQTEFURk9STShIQUlLVSkK
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBvcHVwTWVudUhhaWt1OwotfQotI2VuZGlmCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWVWaWV3OwotY2xhc3MgU2Nyb2xsYmFy
OworY2xhc3MgSW50UmVjdDsKIAotY2xhc3MgUG9wdXBNZW51IDogcHVibGljIFJlZkNvdW50ZWQ8
UG9wdXBNZW51PgotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgICAgICAgICAsIHByaXZhdGUg
U2Nyb2xsYmFyQ2xpZW50Ci0jZW5kaWYKLSNpZiBQTEFURk9STShXWCkKLSAgICAgICAgICAgICAg
ICAsIHB1YmxpYyB3eEV2dEhhbmRsZXIKLSNlbmRpZgoteworY2xhc3MgUG9wdXBNZW51IDogcHVi
bGljIFJlZkNvdW50ZWQ8UG9wdXBNZW51PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8UG9wdXBNZW51PiBjcmVhdGUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQb3B1cE1lbnUoY2xpZW50KSk7IH0KLSAgICB+UG9wdXBNZW51KCk7Ci0gICAg
Ci0gICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBtX3BvcHVwQ2xpZW50ID0gMDsgfQotCi0g
ICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOwotICAg
IHZvaWQgaGlkZSgpOwotCi0gICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwotICAgIAotICAg
IFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsg
fQotCi0gICAgc3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKLQot
I2lmIFBMQVRGT1JNKFdJTikKLSAgICBTY3JvbGxiYXIqIHNjcm9sbGJhcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9Ci0KLSAgICBzdGF0aWMgTFBDVFNUUiBwb3B1cENsYXNz
TmFtZSgpOwotCi0gICAgYm9vbCB1cCh1bnNpZ25lZCBsaW5lcyA9IDEpOwotICAgIGJvb2wgZG93
bih1bnNpZ25lZCBsaW5lcyA9IDEpOwotCi0gICAgaW50IGl0ZW1IZWlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX2l0ZW1IZWlnaHQ7IH0KLSAgICBjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0KCkgY29u
c3QgeyByZXR1cm4gbV93aW5kb3dSZWN0OyB9Ci0gICAgSW50UmVjdCBjbGllbnRSZWN0KCkgY29u
c3Q7Ci0KLSAgICBpbnQgdmlzaWJsZUl0ZW1zKCkgY29uc3Q7Ci0KLSAgICBpbnQgbGlzdEluZGV4
QXRQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotCi0gICAgYm9vbCBzZXRGb2N1c2VkSW5k
ZXgoaW50IGluZGV4LCBib29sIGhvdFRyYWNraW5nID0gZmFsc2UpOwotICAgIGludCBmb2N1c2Vk
SW5kZXgoKSBjb25zdDsKLSAgICB2b2lkIGZvY3VzRmlyc3QoKTsKLSAgICB2b2lkIGZvY3VzTGFz
dCgpOwotCi0gICAgdm9pZCBwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgPSAw
KTsKLQotICAgIEhXTkQgcG9wdXBIYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwOyB9Ci0K
LSAgICB2b2lkIHNldFdhc0NsaWNrZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX3dhc0NsaWNrZWQgPSBi
OyB9Ci0gICAgYm9vbCB3YXNDbGlja2VkKCkgY29uc3QgeyByZXR1cm4gbV93YXNDbGlja2VkOyB9
Ci0KLSAgICB2b2lkIHNldFNjcm9sbE9mZnNldChpbnQgb2Zmc2V0KSB7IG1fc2Nyb2xsT2Zmc2V0
ID0gb2Zmc2V0OyB9Ci0gICAgaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsT2Zmc2V0OyB9Ci0KLSAgICBib29sIHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7Ci0KLSAg
ICB2b2lkIGluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKTsKLSAgICB2b2lkIHJlZHVjZVdo
ZWVsRGVsdGEoaW50IGRlbHRhKTsKLSAgICBpbnQgd2hlZWxEZWx0YSgpIGNvbnN0IHsgcmV0dXJu
IG1fd2hlZWxEZWx0YTsgfQotCi0gICAgYm9vbCBzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2U7IH0KLSAgICB2b2lkIHNldFNj
cm9sbGJhckNhcHR1cmluZ01vdXNlKGJvb2wgYikgeyBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNl
ID0gYjsgfQotI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICBQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50Kik7Ci0gICAgCi1wcml2YXRlOgotICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVu
dDsKLSAgICAKLSNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQg
cG9wdWxhdGUoKTsKLQotICAgIFJldGFpblB0cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsK
LSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKLSNl
bGlmIFBMQVRGT1JNKFdJTikKLSAgICAvLyBTY3JvbGxCYXJDbGllbnQKLSAgICB2aXJ0dWFsIHZv
aWQgdmFsdWVDaGFuZ2VkKFNjcm9sbGJhciopOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
U2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCBi
b29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBz
Y3JvbGxiYXJDb3JuZXJQcmVzZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIHZv
aWQgY2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqKTsK
LSAgICB2b2lkIGludmFsaWRhdGVJdGVtKGludCBpbmRleCk7Ci0KLSAgICBzdGF0aWMgTFJFU1VM
VCBDQUxMQkFDSyBQb3B1cE1lbnVXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsK
LSAgICBMUkVTVUxUIHduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFy
YW0sIExQQVJBTSBsUGFyYW0pOwotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ2xhc3MoKTsKLQot
ICAgIFJlZlB0cjxTY3JvbGxiYXI+IG1fc2Nyb2xsYmFyOwotICAgIEhXTkQgbV9wb3B1cDsKLSAg
ICBIREMgbV9EQzsKLSAgICBIQklUTUFQIG1fYm1wOwotICAgIGJvb2wgbV93YXNDbGlja2VkOwot
ICAgIEludFJlY3QgbV93aW5kb3dSZWN0OwotICAgIGludCBtX2l0ZW1IZWlnaHQ7Ci0gICAgaW50
IG1fc2Nyb2xsT2Zmc2V0OwotICAgIGludCBtX3doZWVsRGVsdGE7Ci0gICAgaW50IG1fZm9jdXNl
ZEluZGV4OwotICAgIGJvb2wgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZTsKLSAgICBib29sIG1f
c2hvd1BvcHVwOwotI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIEludFBvaW50IG1fbWVudVBvc2l0
aW9uOwotICAgIEdSZWZQdHI8R3RrTWVudT4gbV9wb3B1cDsKLSAgICBIYXNoTWFwPEd0a1dpZGdl
dCosIGludD4gbV9pbmRleE1hcDsKLSAgICBzdGF0aWMgdm9pZCBtZW51SXRlbUFjdGl2YXRlZChH
dGtNZW51SXRlbSogaXRlbSwgUG9wdXBNZW51Kik7Ci0gICAgc3RhdGljIHZvaWQgbWVudVVubWFw
cGVkKEd0a1dpZGdldCosIFBvcHVwTWVudSopOwotICAgIHN0YXRpYyB2b2lkIG1lbnVQb3NpdGlv
bkZ1bmN0aW9uKEd0a01lbnUqLCBnaW50KiwgZ2ludCosIGdib29sZWFuKiwgUG9wdXBNZW51Kik7
Ci0gICAgc3RhdGljIHZvaWQgbWVudVJlbW92ZUl0ZW0oR3RrV2lkZ2V0KiwgUG9wdXBNZW51Kik7
Ci0jZWxpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEJSRVdNUCkKLSAgICBGcmFtZVZpZXcq
IG1fdmlldzsKLSNlbGlmIFBMQVRGT1JNKFdYKQotICAgIHd4TWVudSogbV9tZW51OwotICAgIHZv
aWQgT25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2ZW50Jik7Ci0jZWxpZiBQTEFURk9STShD
SFJPTUlVTSkKLSAgICBQb3B1cE1lbnVQcml2YXRlIHA7Ci0jZWxpZiBQTEFURk9STShIQUlLVSkK
LSAgICBQb3B1cE1lbnVIYWlrdSogbV9tZW51OwotI2VuZGlmCi0KKyAgICB2aXJ0dWFsIH5Qb3B1
cE1lbnUoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZp
ZXcqLCBpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
c2Nvbm5lY3RDbGllbnQoKSA9IDA7CiB9OwogCiB9CiAKLSNlbmRpZgorI2VuZGlmIC8vIFBvcHVw
TWVudV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAppbmRleCA0Mjg1Y2RmLi5kMWVjZDBm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDI0ICsyMywyMSBAQAogCiAj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF0
b21pY1N0cmluZzsKIAotY2xhc3MgU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7
CitjbGFzcyBTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgUmVmQ291bnRlZDxTZWFyY2hQb3B1cE1l
bnU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNy
ZWF0ZShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJj
aFBvcHVwTWVudShjbGllbnQpKTsgfQotCi0gICAgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OwotICAgIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLQotICAgIGJvb2wgZW5hYmxlZCgpOwotICAg
IAotcHJpdmF0ZToKLSAgICBTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kik7CisgICAg
dmlydHVhbCB+U2VhcmNoUG9wdXBNZW51KCkge30KKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9w
dXBNZW51KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGVuYWJsZWQoKSA9IDA7CiB9OwogCiB9CiAKLSNlbmRpZgorI2VuZGlmIC8vIFNlYXJjaFBv
cHVwTWVudV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJl
dy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5jcHAKaW5kZXggZWIw
M2M2Ni4uMjRiN2I4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVu
dUJyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcApA
QCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9u
aWNzCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29tcGFueSAxMDAsIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51QnJl
dy5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50QnJldy5o
IgpAQCAtMzIsMjAgKzMzLDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBNZW51
OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBtZW51TGlzdCkKK1BvcHVwTWVudUJyZXc6OlBv
cHVwTWVudUJyZXcoUG9wdXBNZW51Q2xpZW50KiBtZW51TGlzdCkKICAgICA6IG1fcG9wdXBDbGll
bnQobWVudUxpc3QpCiAgICAgLCBtX3ZpZXcoMCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBN
ZW51KCkKK1BvcHVwTWVudUJyZXc6On5Qb3B1cE1lbnVCcmV3KCkKIHsKICAgICAvLyBUZWxsIGNs
aWVudCB0byBkZXN0cm95IGRhdGEgcmVsYXRlZCB0byB0aGlzIHBvcHVwIHNpbmNlIHRoaXMgb2Jq
ZWN0IGlzCiAgICAgLy8gZ29pbmcgYXdheS4KICAgICBoaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBN
ZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4
KQordm9pZCBQb3B1cE1lbnVCcmV3OjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVw
Q2xpZW50ID0gMDsKK30KKwordm9pZCBQb3B1cE1lbnVCcmV3OjpzaG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIEFTU0VSVChtX3BvcHVw
Q2xpZW50KTsKICAgICBDaHJvbWVDbGllbnRCcmV3KiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2Fz
dDxDaHJvbWVDbGllbnRCcmV3Kj4odmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xp
ZW50KCkpOwpAQCAtNTUsNyArNjEsNyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICBjaHJvbWVDbGllbnQt
PmNyZWF0ZVNlbGVjdFBvcHVwKG1fcG9wdXBDbGllbnQsIGluZGV4LCByZWN0KTsKIH0KIAotdm9p
ZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVCcmV3OjpoaWRlKCkKIHsKICAgICBB
U1NFUlQobV92aWV3KTsKICAgICBDaHJvbWVDbGllbnRCcmV3KiBjaHJvbWVDbGllbnQgPSBzdGF0
aWNfY2FzdDxDaHJvbWVDbGllbnRCcmV3Kj4obV92aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9t
ZSgpLT5jbGllbnQoKSk7CkBAIC02NCwxNCArNzAsMTQgQEAgdm9pZCBQb3B1cE1lbnU6OmhpZGUo
KQogICAgIGNocm9tZUNsaWVudC0+ZGVzdHJveVNlbGVjdFBvcHVwKCk7CiB9CiAKLXZvaWQgUG9w
dXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUJyZXc6OnVwZGF0ZUZy
b21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5z
ZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQotewotICAgIHJldHVybiB0cnVlOwotfQorLy8gYm9vbCBQb3B1cE1lbnVC
cmV3OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCisvLyB7CisvLyAgICAgcmV0dXJu
IHRydWU7CisvLyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmggYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcv
UG9wdXBNZW51QnJldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjODhm
OWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJl
dy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudUJy
ZXdfaAorI2RlZmluZSBQb3B1cE1lbnVCcmV3X2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xsYmFyOwor
CitjbGFzcyBQb3B1cE1lbnVCcmV3IDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAg
UG9wdXBNZW51QnJldyhQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51QnJldygpOwor
CisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBp
bmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
RnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitw
cml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBGcmFtZVZp
ZXcqIG1fdmlldzsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wb3B1cENsaWVudDsgfQorCit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVCcmV3
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcAppbmRl
eCA3ODBjN2U1Li5jMjJjYjc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvU2Vh
cmNoUG9wdXBNZW51QnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBv
cHVwTWVudUJyZXcuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBDb21wYW55IDEwMCwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjkgKzI1LDM0IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudUJyZXcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBT
YXZlIHRoZSBwYXN0IHNlYXJjaGVzIHN0b3JlZCBpbiAnc2VhcmNoSXRlbXMnIHRvIGEgZGF0YWJh
c2UgYXNzb2NpYXRlZCB3aXRoICduYW1lJwotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51QnJldzo6c2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJj
aEl0ZW1zKQogewogfQogCiAvLyBMb2FkIHBhc3Qgc2VhcmNoZXMgYXNzb2NpYXRlZCB3aXRoICdu
YW1lJyBmcm9tIHRoZSBkYXRhYmFzZSB0byAnc2VhcmNoSXRlbXMnCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpCiB7CiB9CiAKIC8vIENyZWF0ZSBhIHNlYXJjaCBwb3B1cCBtZW51IC0gbm90IHN1
cmUgd2hhdCBlbHNlIHdlIGhhdmUgdG8gZG8gaGVyZQotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50
KQorU2VhcmNoUG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyhQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCi1ib29sIFNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudUJyZXc6OmVuYWJsZWQoKQog
ewogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVCcmV3
Ojpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVw
TWVudUJyZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThlYTEwMgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmgKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUJy
ZXdfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVCcmV3X2gKKworI2luY2x1ZGUgIlBvcHVwTWVu
dUJyZXcuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVCcmV3IDogcHVibGljIFNlYXJjaFBvcHVwTWVu
dSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51QnJldyhQb3B1cE1lbnVDbGllbnQqKTsK
KworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVu
dUJyZXcgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUJyZXdf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1
bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcApp
bmRleCAyNjE4MzYyLi5jODVjMzMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTWVudUNocm9taXVtLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ4LDcgKzQ5LDYg
QEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWUuaCIKICNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3IuaCIKQEAgLTEzMzQsMjAgKzEzMzQsMjAg
QEAgYm9vbCBQb3B1cExpc3RCb3g6OmlzUG9pbnRJbkJvdW5kcyhjb25zdCBJbnRQb2ludCYgcG9p
bnQpCiB9CiAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vIFBvcHVwTWVudSBpbXBsZW1lbnRh
dGlvbgorLy8gUG9wdXBNZW51Q2hyb21pdW0gaW1wbGVtZW50YXRpb24KIC8vIAogLy8gTm90ZTog
eW91IGNhbm5vdCBhZGQgbWV0aG9kcyB0byB0aGlzIGNsYXNzLCBzaW5jZSBpdCBpcyBkZWZpbmVk
IGFib3ZlIHRoZSAKIC8vICAgICAgIHBvcnRhYmlsaXR5IGxheWVyLiBUbyBhY2Nlc3MgbWV0aG9k
cyBhbmQgcHJvcGVydGllcyBvbiB0aGUKIC8vICAgICAgIHBvcHVwIHdpZGdldHMsIHVzZSB8cG9w
dXBXaW5kb3d8IGFib3ZlLiAKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIAorUG9wdXBNZW51Q2hyb21pdW06OlBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVu
dUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiB7CiB9CiAKLVBv
cHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9t
aXVtKCkKIHsKLSAgICAvLyBXaGVuIHRoZSBQb3B1cE1lbnUgaXMgZGVzdHJveWVkLCB0aGUgY2xp
ZW50IGNvdWxkIGFscmVhZHkgaGF2ZSBiZWVuCisgICAgLy8gV2hlbiB0aGUgUG9wdXBNZW51Q2hy
b21pdW0gaXMgZGVzdHJveWVkLCB0aGUgY2xpZW50IGNvdWxkIGFscmVhZHkgaGF2ZSBiZWVuCiAg
ICAgLy8gZGVsZXRlZC4KICAgICBpZiAocC5wb3B1cCkKICAgICAgICAgcC5wb3B1cC0+bGlzdEJv
eCgpLT5kaXNjb25uZWN0Q2xpZW50KCk7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBQb3B1cE1lbnU6
On5Qb3B1cE1lbnUoKQogLy8gdG8gZGlzcGxheSwgaGFuZGxlIHRoZSBpbnB1dCB0cmFja2luZyBh
bmQgbWVudSBpdGVtIHNlbGVjdGlvbiBmb3IgdGhlIHBvcHVwLgogLy8gV2luZG93cyBhbmQgTGlu
dXggQ2hyb21pdW0gbGV0IG91ciBXZWJLaXQgcG9ydCBoYW5kbGUgdGhlIGRpc3BsYXksIHdoaWxl
CiAvLyBhbm90aGVyIHByb2Nlc3MgbWFuYWdlcyB0aGUgcG9wdXAgd2luZG93IGFuZCBpbnB1dCBo
YW5kbGluZy4KLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmll
dyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKICAgICBpZiAoIXAucG9wdXApCiAg
ICAgICAgIHAucG9wdXAgPSBQb3B1cENvbnRhaW5lcjo6Y3JlYXRlKGNsaWVudCgpLCBQb3B1cENv
bnRhaW5lcjo6U2VsZWN0LCBkcm9wRG93blNldHRpbmdzKTsKQEAgLTEzNjksMjAgKzEzNjksMjEg
QEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBp
bnQgaW5kZXgpCiAjZW5kaWYKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1
cE1lbnVDaHJvbWl1bTo6aGlkZSgpCiB7CiAgICAgaWYgKHAucG9wdXApCiAgICAgICAgIHAucG9w
dXAtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3Zv
aWQgUG9wdXBNZW51Q2hyb21pdW06OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBwLnBvcHVw
LT5saXN0Qm94KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKLWJvb2wgUG9wdXBNZW51Ojpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIAoteyAKLSAgICByZXR1cm4gZmFsc2U7IAor
Cit2b2lkIFBvcHVwTWVudUNocm9taXVtOjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3Bv
cHVwQ2xpZW50ID0gMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5oCmluZGV4IGE4NWNmNDkuLmEwYTA1
MjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21p
dW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgK
QEAgLTM2LDYgKzM2LDggQEAKIAogI2luY2x1ZGUgIkZyYW1lbGVzc1Njcm9sbFZpZXcuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51UHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwMSw2ICsyMDMs
MjMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcG9wdXBPcGVuOwogfTsKIAorY2xhc3MgUG9wdXBN
ZW51Q2hyb21pdW0gOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVD
aHJvbWl1bShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51Q2hyb21pdW0oKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5k
ZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZy
b21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJp
dmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgUG9wdXBNZW51
UHJpdmF0ZSBwOworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX3BvcHVwQ2xpZW50OyB9Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVD
aHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNo
cm9taXVtLmNwcAppbmRleCA4OWJmZGRkLi4xOGU4NmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTI5LDI5ICszMCwzNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVD
aHJvbWl1bS5oIgogCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShj
bGllbnQpCitTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW0o
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIAot
Ym9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1l
bnVDaHJvbWl1bTo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKK2Jv
b2wgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OmVuYWJsZWQoKQogewogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3Zv
aWQgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJj
aEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6bG9hZFJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjhmZjNhZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW1faAorI2RlZmlu
ZSBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bV9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1
bS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUNocm9taXVtIDogcHVibGljIFNlYXJjaFBvcHVwTWVu
dSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0oUG9wdXBNZW51Q2xpZW50
Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2
b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRT
ZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAg
UG9wdXBNZW51Q2hyb21pdW0gbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBv
cHVwTWVudUNocm9taXVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVw
TWVudUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwCmluZGV4
IDlkYzY5ODYuLjQwMWYyNGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVw
TWVudUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcApA
QCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5v
a2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiwyOSArMjMsMzAg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51RWZsLmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnRFZmwuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KQorUG9wdXBNZW51RWZsOjpQb3B1cE1lbnVFZmwoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fdmlldygwKQogewogfQogCi1Q
b3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51RWZsOjp+UG9wdXBNZW51RWZsKCkKIHsK
ICAgICAvLyBUZWxsIGNsaWVudCB0byBkZXN0cm95IGRhdGEgcmVsYXRlZCB0byB0aGlzIHBvcHVw
IHNpbmNlIHRoaXMgb2JqZWN0IGlzCiAgICAgLy8gZ29pbmcgYXdheS4KICAgICBoaWRlKCk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyog
dmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVFZmw6OnNob3coY29uc3QgSW50UmVjdCYg
cmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKG1fcG9wdXBD
bGllbnQpOwogICAgIENocm9tZUNsaWVudEVmbCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8
Q2hyb21lQ2xpZW50RWZsKj4odmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50
KCkpOwpAQCAtNTQsNyArNTYsNyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0
JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICBjaHJvbWVDbGllbnQtPmNy
ZWF0ZVNlbGVjdFBvcHVwKG1fcG9wdXBDbGllbnQsIGluZGV4LCByZWN0KTsKIH0KIAotdm9pZCBQ
b3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVFZmw6OmhpZGUoKQogewogICAgIEFTU0VS
VChtX3ZpZXcpOwogICAgIENocm9tZUNsaWVudEVmbCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nh
c3Q8Q2hyb21lQ2xpZW50RWZsKj4obV92aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5j
bGllbnQoKSk7CkBAIC02MywxNCArNjUsMTQgQEAgdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogICAg
IGNocm9tZUNsaWVudC0+ZGVzdHJveVNlbGVjdFBvcHVwKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogewogICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xpZW50KCktPnNlbGVjdGVk
SW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpCit2b2lkIFBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCgpCiB7Ci0gICAgcmV0
dXJuIHRydWU7CisgICAgbV9wb3B1cENsaWVudCA9IDA7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZiYjZh
MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5o
CkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudUVmbF9o
CisjZGVmaW5lIFBvcHVwTWVudUVmbF9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVk
ZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmll
dzsKK2NsYXNzIFNjcm9sbGJhcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKKworY2xhc3MgUG9w
dXBNZW51RWZsIDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51RWZs
KFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVFZmwoKTsKKworICAgIHZpcnR1YWwg
dm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZp
cnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQ
b3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgRnJhbWVWaWV3KiBtX3ZpZXc7CisK
KyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGll
bnQ7IH0KKworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51RWZsX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwCmluZGV4IGQxODE3NGYuLmNhZmZlNTQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcApAQCAtMiw2
ICsyLDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBk
ZSBUZWNub2xvZ2lhCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVk
ZGVkIHN5c3RlbXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMjkgKzIwLDM0IEBA
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUVmbC5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGll
bnQpCitTZWFyY2hQb3B1cE1lbnVFZmw6OlNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQorUG9wdXBNZW51KiBTZWFyY2hQ
b3B1cE1lbnVFZmw6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQorCit2
b2lkIFNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2VhcmNoUG9wdXBNZW51RWZsOjpsb2Fk
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVk
KCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51RWZsOjplbmFibGVkKCkKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvU2VhcmNoUG9wdXBNZW51RWZsLmggYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGNiMmU1Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZs
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBv
cHVwTWVudUVmbF9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUVmbF9oCisKKyNpbmNsdWRlICJQ
b3B1cE1lbnVFZmwuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVFZmwgOiBwdWJsaWMgU2VhcmNoUG9w
dXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVFZmwoUG9wdXBNZW51Q2xpZW50
Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2
b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRT
ZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1
cE1lbnVFZmwgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUVm
bF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcAppbmRleCBiZjhjZmI0Li5jYTA2
N2Q5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKQEAgLTQsNiArNCw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1l
bEBnbWFpbC5jb20KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNyArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1l
bnVHdGsuaCIKIAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkd0a1ZlcnNpb25p
bmcuaCIKQEAgLTM0LDEyICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVw
TWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51R3RrOjpQ
b3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50
KGNsaWVudCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUd0azo6
flBvcHVwTWVudUd0aygpCiB7CiAgICAgaWYgKG1fcG9wdXApIHsKICAgICAgICAgZ19zaWduYWxf
aGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKG1fcG9wdXAuZ2V0KCksIEdfU0lHTkFMX01BVENI
X0RBVEEsIDAsIDAsIDAsIDAsIHRoaXMpOwpAQCAtNDcsNyArNDgsNyBAQCBQb3B1cE1lbnU6On5Q
b3B1cE1lbnUoKQogICAgIH0KIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVj
dCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUd0azo6
c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIHsK
ICAgICBBU1NFUlQoY2xpZW50KCkpOwogCkBAIC0xMTAsNDMgKzExMSw0MyBAQCB2b2lkIFBvcHVw
TWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKICAgICBndGtfbWVudV9wb3B1cChtX3BvcHVwLmdldCgpLCAwLCAwLCByZWludGVycHJldF9j
YXN0PEd0a01lbnVQb3NpdGlvbkZ1bmM+KG1lbnVQb3NpdGlvbkZ1bmN0aW9uKSwgdGhpcywgMCwg
Z3RrX2dldF9jdXJyZW50X2V2ZW50X3RpbWUoKSk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRl
KCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpoaWRlKCkKIHsKICAgICBBU1NFUlQobV9wb3B1cCk7CiAg
ICAgZ3RrX21lbnVfcG9wZG93bihtX3BvcHVwLmdldCgpKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51R3RrOjp1cGRhdGVGcm9tRWxlbWVu
dCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJ
bmRleCgpKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpkaXNjb25uZWN0Q2xpZW50KCkKIHsKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKIH0KIAotdm9pZCBQb3B1cE1lbnU6Om1l
bnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBQb3B1cE1lbnUqIHRoYXQpCit2b2lk
IFBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVw
TWVudUd0ayogdGhhdCkKIHsKICAgICBBU1NFUlQodGhhdC0+Y2xpZW50KCkpOwogICAgIEFTU0VS
VCh0aGF0LT5tX2luZGV4TWFwLmNvbnRhaW5zKEdUS19XSURHRVQoaXRlbSkpKTsKICAgICB0aGF0
LT5jbGllbnQoKS0+dmFsdWVDaGFuZ2VkKHRoYXQtPm1faW5kZXhNYXAuZ2V0KEdUS19XSURHRVQo
aXRlbSkpKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6Om1lbnVVbm1hcHBlZChHdGtXaWRnZXQqLCBQ
b3B1cE1lbnUqIHRoYXQpCit2b2lkIFBvcHVwTWVudUd0azo6bWVudVVubWFwcGVkKEd0a1dpZGdl
dCosIFBvcHVwTWVudUd0ayogdGhhdCkKIHsKICAgICBBU1NFUlQodGhhdC0+Y2xpZW50KCkpOwog
ICAgIHRoYXQtPmNsaWVudCgpLT5wb3B1cERpZEhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6
Om1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01lbnUqLCBnaW50KiB4LCBnaW50KiB5LCBnYm9vbGVh
biogcHVzaEluLCBQb3B1cE1lbnUqIHRoYXQpCit2b2lkIFBvcHVwTWVudUd0azo6bWVudVBvc2l0
aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqIHgsIGdpbnQqIHksIGdib29sZWFuKiBwdXNoSW4s
IFBvcHVwTWVudUd0ayogdGhhdCkKIHsKICAgICAqeCA9IHRoYXQtPm1fbWVudVBvc2l0aW9uLngo
KTsKICAgICAqeSA9IHRoYXQtPm1fbWVudVBvc2l0aW9uLnkoKTsKICAgICAqcHVzaEluID0gdHJ1
ZTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6Om1lbnVSZW1vdmVJdGVtKEd0a1dpZGdldCogd2lkZ2V0
LCBQb3B1cE1lbnUqIHRoYXQpCit2b2lkIFBvcHVwTWVudUd0azo6bWVudVJlbW92ZUl0ZW0oR3Rr
V2lkZ2V0KiB3aWRnZXQsIFBvcHVwTWVudUd0ayogdGhhdCkKIHsKICAgICBBU1NFUlQodGhhdC0+
bV9wb3B1cCk7CiAgICAgZ3RrX2NvbnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUih0aGF0LT5t
X3BvcHVwLmdldCgpKSwgd2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BvcHVwTWVudUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJjMjJlNQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5oCkBAIC0wLDAgKzEsNjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudUd0a19oCisjZGVmaW5lIFBvcHVwTWVu
dUd0a19oCisKKyNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgor
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2lu
Y2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwordHlwZWRlZiBzdHJ1
Y3QgX0d0a01lbnUgR3RrTWVudTsKK3R5cGVkZWYgc3RydWN0IF9HdGtNZW51SXRlbSBHdGtNZW51
SXRlbTsKK3R5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJhcjsKKworY2xhc3Mg
UG9wdXBNZW51R3RrIDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51
R3RrKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVHdGsoKTsKKworICAgIHZpcnR1
YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAg
IHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50
KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAg
ICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgSW50UG9pbnQgbV9tZW51UG9z
aXRpb247CisgICAgR1JlZlB0cjxHdGtNZW51PiBtX3BvcHVwOworICAgIEhhc2hNYXA8R3RrV2lk
Z2V0KiwgaW50PiBtX2luZGV4TWFwOworCisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKKyAgICBzdGF0aWMgdm9pZCBtZW51SXRl
bUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRlbSwgUG9wdXBNZW51R3RrKik7CisgICAgc3RhdGlj
IHZvaWQgbWVudVVubWFwcGVkKEd0a1dpZGdldCosIFBvcHVwTWVudUd0ayopOworICAgIHN0YXRp
YyB2b2lkIG1lbnVQb3NpdGlvbkZ1bmN0aW9uKEd0a01lbnUqLCBnaW50KiwgZ2ludCosIGdib29s
ZWFuKiwgUG9wdXBNZW51R3RrKik7CisgICAgc3RhdGljIHZvaWQgbWVudVJlbW92ZUl0ZW0oR3Rr
V2lkZ2V0KiwgUG9wdXBNZW51R3RrKik7Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVH
dGtfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3Rr
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5jcHAKaW5kZXgg
ZmJhYTUyNy4uZGZiODRhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNo
UG9wdXBNZW51R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwCkBAIC0xLDQgKzEsNiBAQAogLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgogICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCiAgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCkBAIC0xNSwyOSArMTcsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51R3RrLmgiCiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudUd0
azo6U2VhcmNoUG9wdXBNZW51R3RrKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9w
b3B1cChjbGllbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQ
b3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUd0azo6cG9wdXBNZW51
KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKK3ZvaWQgU2VhcmNoUG9wdXBNZW51R3Rr
OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0
cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmlu
Zz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVHdGs6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1l
bnVHdGs6OmVuYWJsZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3Rr
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGMyZWE0Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmgKQEAgLTAsMCArMSw0NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUd0a19oCisjZGVmaW5l
IFNlYXJjaFBvcHVwTWVudUd0a19oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVHdGsuaCIKKyNpbmNs
dWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
ZWFyY2hQb3B1cE1lbnVHdGsgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAg
ICBTZWFyY2hQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBv
cHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBi
b29sIGVuYWJsZWQoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51R3RrIG1fcG9wdXA7
Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVHdGtfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcAppbmRleCA1YWRiYzY2Li5lM2VkYjgzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcApAQCAtMiw2ICsyLDcgQEAK
ICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBwb3B1cCBtZW51IGltcGxlbWVudGF0aW9uIGZv
ciA8c2VsZWN0PiBlbGVtZW50cyBpbiBXZWJDb3JlLgogICoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBTdGVwaGFuIEHDn211cyA8c3VwZXJzdGlwcGlAZ214LmRlPgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjEsNyArMjIsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVIYWlrdS5oIgog
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKQEAgLTcyLDkgKzczLDkgQEAgcHJpdmF0ZToKICAg
ICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CiB9OwogCi1jbGFzcyBQb3B1cE1lbnVI
YWlrdSA6IHB1YmxpYyBCUG9wVXBNZW51IHsKK2NsYXNzIEhhaWt1UG9wdXAgOiBwdWJsaWMgQlBv
cFVwTWVudSB7CiBwdWJsaWM6Ci0gICAgUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50KiBw
b3B1cENsaWVudCkKKyAgICBIYWlrdVBvcHVwKFBvcHVwTWVudUNsaWVudCogcG9wdXBDbGllbnQp
CiAgICAgICAgIDogQlBvcFVwTWVudSgiV2ViQ29yZSBQb3B1cCIsIHRydWUsIGZhbHNlKQogICAg
ICAgICAsIG1fcG9wdXBDbGllbnQocG9wdXBDbGllbnQpCiAgICAgICAgICwgbV9IYW5kbGVyKHBv
cHVwQ2xpZW50KQpAQCAtODYsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNldEFzeW5jQXV0
b0Rlc3RydWN0KGZhbHNlKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5Qb3B1cE1lbnVIYWlrdSgp
CisgICAgdmlydHVhbCB+SGFpa3VQb3B1cCgpCiAgICAgewogICAgICAgICBpZiAoYmVfYXBwLT5M
b2NrKCkpIHsKICAgICAgICAgICAgIGJlX2FwcC0+UmVtb3ZlSGFuZGxlcigmbV9IYW5kbGVyKTsK
QEAgLTE1MywzOSArMTU0LDM5IEBAIHByaXZhdGU6CiAgICAgUG9wdXBNZW51SGFuZGxlciBtX0hh
bmRsZXI7CiB9OwogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKK1BvcHVwTWVudUhhaWt1OjpQb3B1cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQotICAgICwgbV9tZW51KG5ldyBQb3B1cE1l
bnVIYWlrdShjbGllbnQpKQorICAgICwgbV9tZW51KG5ldyBIYWlrdVBvcHVwKGNsaWVudCkpCiB7
CiAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgdG8gdGhlIGNsaWVu
dCwgc2luY2Ugd2UgY29tcGxldGVseQogICAgIC8vIGNvbnRyb2wgYW55IHN1Yi1vYmplY3RzIHdl
IGNyZWF0ZSB0aGF0IG5lZWQgaXQgYXMgd2VsbC4KIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51
KCkKK1BvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UoKQogewogICAgIGRlbGV0ZSBtX21l
bnU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1l
VmlldyogdmlldywgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENs
aWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9wdXBNZW51SGFp
a3U6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgp
CiB7CiAgICAgLy8gVGhlIG1lbnUgd2lsbCB1cGRhdGUgaXRzZWxmIGZyb20gdGhlIFBvcHVwTWVu
dUNsaWVudCBiZWZvcmUgc2hvd2luZy4KICAgICBtX21lbnUtPnNob3cocmVjdCwgdmlldywgaW5k
ZXgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6aGlkZSgpCit2b2lkIFBvcHVwTWVudUhhaWt1Ojpo
aWRlKCkKIHsKICAgICBtX21lbnUtPmhpZGUoKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0
ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51SGFpa3U6OnVwZGF0ZUZyb21FbGVtZW50KCkK
IHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVk
SW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45MWJlNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVIYWlrdV9oCisjZGVmaW5lIFBvcHVwTWVudUhh
aWt1X2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNp
bmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRnJhbWVWaWV3OworY2xhc3MgSGFpa3VQb3B1cDsKK2NsYXNzIFNjcm9sbGJhcjsKKworY2xh
c3MgUG9wdXBNZW51SGFpa3UgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQb3B1
cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51SGFpa3UoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5k
ZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZy
b21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9w
dXBDbGllbnQgPSAwOyB9CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVw
Q2xpZW50OworICAgIEhhaWt1UG9wdXAqIG1fbWVudTsKKworICAgIFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCit9OworCit9CisKKyNl
bmRpZiAvLyBQb3B1cE1lbnVIYWlrdV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hh
aWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuY3BwCmluZGV4IGZkNWQ5NmMuLjQ0MzM4ZTUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdv
b2RAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsNyAr
MTksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVIYWlrdS5oIgogCiAjaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTI2LDI2ICsy
NywzMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVudTo6U2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBNZW51KGNsaWVu
dCkKK1NlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQb3B1cE1lbnVIYWlrdShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCi12b2lkIFNlYXJj
aFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVI
YWlrdTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBv
cHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1l
bnVIYWlrdTo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSgp
Cit7CisgICAgcmV0dXJuIG1fcG9wdXA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MzJkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmgKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUhhaWt1X2gK
KyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51SGFpa3VfaAorCisjaW5jbHVkZSAiUG9wdXBNZW51SGFp
a3UuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTZWFyY2hQb3B1cE1lbnVIYWlrdSA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUg
eworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNsaWVudCopOwor
CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51
SGFpa3UgbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUhhaWt1
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uN2Y4YWY1NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BvcHVwTWVudU1hYy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIFBvcHVwTWVudU1hY19oCisjZGVmaW5lIFBvcHVwTWVudU1hY19oCisKKyNpbmNsdWRlICJJ
bnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworY2xhc3MgTlNQb3BVcEJ1dHRvbkNlbGw7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xs
YmFyOworCitjbGFzcyBQb3B1cE1lbnVNYWMgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoK
KyAgICBQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudU1hYygp
OworCisgICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBtX3BvcHVwQ2xpZW50ID0gMDsgfQor
CisgICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQgaW5kZXgpOwor
ICAgIHZvaWQgaGlkZSgpOworCisgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworCisgICAg
c3RhdGljIGJvb2wgaXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKworcHJpdmF0ZToK
KyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgUmV0YWluUHRyPE5TUG9w
VXBCdXR0b25DZWxsPiBtX3BvcHVwOworCisgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgcG9w
dWxhdGUoKTsKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9wdXBDbGllbnQ7IH0KK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudU1hY19oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW0KaW5kZXggNmMwNjdiOS4uMGY1MDU5OCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsNyArMTksNyBAQAogICovCiAKICNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUG9wdXBNZW51LmgiCisjaW1wb3J0ICJQb3B1cE1l
bnVNYWMuaCIKIAogI2ltcG9ydCAiQVhPYmplY3RDYWNoZS5oIgogI2ltcG9ydCAiQ2hyb21lLmgi
CkBAIC0zMSw2ICszMiw3IEBACiAjaW1wb3J0ICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2ltcG9y
dCAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIlBvcHVw
TWVudUNsaWVudC5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIKICNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKIApAQCAtMzgsMjQgKzQwLDI0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUG9wdXBNZW51OjpQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVNYWM6OlBvcHVwTWVudU1hYyhQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQogewog
fQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFj
KCkKIHsKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAgW21fcG9wdXAuZ2V0KCkgc2V0Q29udHJv
bFZpZXc6bmlsXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmNsZWFyKCkKK3ZvaWQgUG9wdXBNZW51
TWFjOjpjbGVhcigpCiB7CiAgICAgaWYgKG1fcG9wdXApCiAgICAgICAgIFttX3BvcHVwLmdldCgp
IHJlbW92ZUFsbEl0ZW1zXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnBvcHVsYXRlKCkKK3ZvaWQg
UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiB7CiAgICAgaWYgKG1fcG9wdXApCiAgICAgICAgIGNs
ZWFyKCk7CkBAIC0xMTQsNyArMTE2LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnBvcHVsYXRlKCkKICAg
ICBbW21fcG9wdXAuZ2V0KCkgbWVudV0gc2V0TWVudUNoYW5nZWRNZXNzYWdlc0VuYWJsZWQ6bWVz
c2FnZXNFbmFibGVkXTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYg
ciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25z
dCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKICAgICBwb3B1bGF0ZSgp
OwogICAgIGludCBudW1JdGVtcyA9IFttX3BvcHVwLmdldCgpIG51bWJlck9mSXRlbXNdOwpAQCAt
MTYyLDcgKzE2NCw3IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZy
YW1lVmlldyogdiwgaW50IGluZGV4KQogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSB2LT5mcmFt
ZSgpOwogICAgIE5TRXZlbnQqIGV2ZW50ID0gW2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y3VycmVu
dE5TRXZlbnQoKSByZXRhaW5dOwogICAgIAotICAgIFJlZlB0cjxQb3B1cE1lbnU+IHByb3RlY3Rv
cih0aGlzKTsKKyAgICBSZWZQdHI8UG9wdXBNZW51TWFjPiBwcm90ZWN0b3IodGhpcyk7CiAKICAg
ICBSZXRhaW5QdHI8TlNWaWV3PiBkdW1teVZpZXcoQWRvcHROUywgW1tOU1ZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6cl0pOwogICAgIFt2aWV3IGFkZFN1YnZpZXc6ZHVtbXlWaWV3LmdldCgpXTsK
QEAgLTE5NCwxNiArMTk2LDE2IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3Qm
IHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgIFtldmVudCByZWxlYXNlXTsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVNYWM6OmhpZGUoKQogewogICAg
IFttX3BvcHVwLmdldCgpIGRpc21pc3NQb3BVcF07CiB9CiAgICAgCi12b2lkIFBvcHVwTWVudTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVNYWM6OnVwZGF0ZUZyb21FbGVtZW50
KCkKIHsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkKK2Jvb2wgUG9wdXBNZW51TWFjOjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
ZWFyY2hQb3B1cE1lbnVNYWMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVu
dU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0ZjkxYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBN
ZW51TWFjX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51TWFjX2gKKworI2luY2x1ZGUgIlBvcHVw
TWVudU1hYy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudU1hYyA6IHB1YmxpYyBTZWFyY2hQb3B1cE1l
bnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqKTsK
KworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVu
dU1hYyBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51TWFjX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbSBi
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQppbmRleCAyNjI3MzRk
Li43OGIyOWE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1l
bnVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1t
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMTQgKzE5LDE0
IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJTZWFyY2hQb3B1cE1lbnUu
aCIKKyNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1hYy5oIgogCiAjaW1wb3J0ICJBdG9taWNTdHJp
bmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQp
CitTZWFyY2hQb3B1cE1lbnVNYWM6OlNlYXJjaFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCkBAIC0zNCwxMiArMzUsMTcg
QEAgc3RhdGljIE5TU3RyaW5nKiBhdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAg
cmV0dXJuIFtAImNvbS5hcHBsZS5XZWJLaXQuc2VhcmNoRmllbGQ6IiBzdHJpbmdCeUFwcGVuZGlu
Z1N0cmluZzpuYW1lXTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorUG9w
dXBNZW51KiBTZWFyY2hQb3B1cE1lbnVNYWM6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZt
X3BvcHVwOworfQorCitib29sIFNlYXJjaFBvcHVwTWVudU1hYzo6ZW5hYmxlZCgpCiB7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQog
ewogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTYsNyArNjIs
NyBAQCB2b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPAogICAgIH0KIH0KIAotdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51TWFjOjpsb2FkUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmluZGV4IDMxNWI4OTEuLjU1OTA1NTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudVF0LmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRR
dC5oIgpAQCAtMzUsMTggKzM1LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUG9wdXBN
ZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1lbnVRdDo6UG9w
dXBNZW51UXQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNs
aWVudCkKICAgICAsIG1fcG9wdXAoMCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkK
K1BvcHVwTWVudVF0Ojp+UG9wdXBNZW51UXQoKQogewogICAgIGRlbGV0ZSBtX3BvcHVwOwogfQog
Ci12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZp
ZXcsIGludCBpbmRleCkKKwordm9pZCBQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCgpCit7
CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9wdXBNZW51UXQ6OnNob3coY29u
c3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiB7CiAgICAgQ2hy
b21lQ2xpZW50UXQqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudFF0Kj4o
CiAgICAgICAgIHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKQEAg
LTY3LDE5ICs3MywxNCBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0
LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKIAogfQogCi12b2lkIFBvcHVwTWVudTo6aGlk
ZSgpCit2b2lkIFBvcHVwTWVudVF0OjpoaWRlKCkKIHsKICAgICBtX3BvcHVwLT5oaWRlKCk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCi17Ci0gICAgY2xpZW50KCkt
PnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxlY3RlZEluZGV4KCkpOwotfQotCi1i
b29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQordm9pZCBQb3B1
cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBt
X3BvcHVwQ2xpZW50LT5zZXRUZXh0RnJvbUl0ZW0obV9wb3B1cENsaWVudC0+c2VsZWN0ZWRJbmRl
eCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVR
dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI1YTlmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1BvcHVwTWVudVF0LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgUG9wdXBNZW51UXRfaAorI2RlZmluZSBQb3B1cE1lbnVRdF9oCisKKyNpbmNsdWRl
ICJQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7
CitjbGFzcyBRdEFic3RyYWN0V2ViUG9wdXA7CitjbGFzcyBTY3JvbGxiYXI7CitjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7CisKK2NsYXNzIFBvcHVwTWVudVF0IDogcHVibGljIFBvcHVwTWVudSB7Citw
dWJsaWM6CisgICAgUG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVu
dVF0KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3
KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50
KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAg
IFF0QWJzdHJhY3RXZWJQb3B1cCogbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVw
TWVudVF0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBv
cHVwLmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCmluZGV4IGRh
ZDQ5OTcuLjVmNmY2MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFj
dFdlYlBvcHVwLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgUUZvbnQgZm9udCgpIHsgcmV0dXJuIG1f
cG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLmZvbnQoKS5mb250KCk7IH0KIAogcHJpdmF0ZToKLSAg
ICBmcmllbmQgY2xhc3MgUG9wdXBNZW51OworICAgIGZyaWVuZCBjbGFzcyBQb3B1cE1lbnVRdDsK
ICAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CiAgICAgUVdlYlBhZ2VDbGllbnQq
IG1fcGFnZUNsaWVudDsKICAgICBpbnQgbV9jdXJyZW50SW5kZXg7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCmluZGV4IDE4N2E1ZGUuLjg2OGI5YTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCBDIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTgsMjYgKzE5LDI5IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi0jaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51UXQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1l
bnVRdDo6U2VhcmNoUG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBt
X3BvcHVwKGNsaWVudCkKK3sKK30KKworUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVRdDo6cG9w
dXBNZW51KCkKIHsKKyAgICByZXR1cm4gJm1fcG9wdXA7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVRdDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotdm9pZCBT
ZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBW
ZWN0b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudVF0Ojpsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogfQogCi1ib29sIFNl
YXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJjaFBvcHVwTWVudVF0OjplbmFibGVk
KCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBN
ZW51UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzc0ZmI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1l
bnVRdF9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudVF0X2gKKworI2luY2x1ZGUgIlBvcHVwTWVu
dVF0LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51UXQgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsK
K3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVRdChQb3B1cE1lbnVDbGllbnQqKTsKKworICAg
IHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworICAgIAorcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVR
dCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51UXRfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggNGJjNmRjNy4uY2JhY2Q0ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUgSW5jLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsNyArMjEsNyBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1
cE1lbnVXaW4uaCIKIAogI2luY2x1ZGUgIkJpdG1hcEluZm8uaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtODYsNyArODcsNyBAQCBzdGF0aWMgdm9pZCB0cmFuc2xhdGVQb2ludChMUEFSQU0m
IGxQYXJhbSwgSFdORCBmcm9tLCBIV05EIHRvKQogICAgIGxQYXJhbSA9IE1BS0VMUEFSQU0ocHQu
eCwgcHQueSk7CiB9CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KQorUG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAsIG1fc2Nyb2xsYmFyKDApCiAgICAg
LCBtX3BvcHVwKDApCkBAIC0xMDIsNyArMTAzLDcgQEAgUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQ
b3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4oKQogewogICAgIGlmIChtX2JtcCkKICAgICAgICAg
OjpEZWxldGVPYmplY3QobV9ibXApOwpAQCAtMTE0LDEyICsxMTUsMTcgQEAgUG9wdXBNZW51Ojp+
UG9wdXBNZW51KCkKICAgICAgICAgbV9zY3JvbGxiYXItPnNldFBhcmVudCgwKTsKIH0KIAotTFBD
VFNUUiBQb3B1cE1lbnU6OnBvcHVwQ2xhc3NOYW1lKCkKK3ZvaWQgUG9wdXBNZW51V2luOjpkaXNj
b25uZWN0Q2xpZW50KCkKK3sKKyAgICBtX3BvcHVwQ2xpZW50ID0gMDsKK30KKworTFBDVFNUUiBQ
b3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKCkKIHsKICAgICByZXR1cm4ga1BvcHVwV2luZG93
Q2xhc3NOYW1lOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0
IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIGNhbGN1bGF0
ZVBvc2l0aW9uQW5kU2l6ZShyLCB2aWV3KTsKICAgICBpZiAoY2xpZW50UmVjdCgpLmlzRW1wdHko
KSkKQEAgLTI2Nyw3ICsyNzMsNyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICBoaWRlKCk7CiB9CiAKLXZvaWQg
UG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51V2luOjpoaWRlKCkKIHsKICAgICBpZiAo
IW1fc2hvd1BvcHVwKQogICAgICAgICByZXR1cm47CkBAIC0yODMsNyArMjg5LDcgQEAgdm9pZCBQ
b3B1cE1lbnU6OmhpZGUoKQogICAgIDo6UG9zdE1lc3NhZ2UobV9wb3B1cCwgV01fTlVMTCwgMCwg
MCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3Qg
SW50UmVjdCYgciwgRnJhbWVWaWV3KiB2KQordm9pZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBv
c2l0aW9uQW5kU2l6ZShjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYpCiB7CiAgICAgLy8g
ciBpcyBpbiBhYnNvbHV0ZSBkb2N1bWVudCBjb29yZGluYXRlcywgYnV0IHdlIHdhbnQgdG8gYmUg
aW4gc2NyZWVuIGNvb3JkaW5hdGVzCiAKQEAgLTM3Myw3ICszNzksNyBAQCB2b2lkIFBvcHVwTWVu
dTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyog
dikKICAgICByZXR1cm47CiB9CiAKLWJvb2wgUG9wdXBNZW51OjpzZXRGb2N1c2VkSW5kZXgoaW50
IGksIGJvb2wgaG90VHJhY2tpbmcpCitib29sIFBvcHVwTWVudVdpbjo6c2V0Rm9jdXNlZEluZGV4
KGludCBpLCBib29sIGhvdFRyYWNraW5nKQogewogICAgIGlmIChpIDwgMCB8fCBpID49IGNsaWVu
dCgpLT5saXN0U2l6ZSgpIHx8IGkgPT0gZm9jdXNlZEluZGV4KCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTM5NSwyMiArNDAxLDIyIEBAIGJvb2wgUG9wdXBNZW51OjpzZXRGb2N1c2VkSW5k
ZXgoaW50IGksIGJvb2wgaG90VHJhY2tpbmcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWludCBQ
b3B1cE1lbnU6OnZpc2libGVJdGVtcygpIGNvbnN0CitpbnQgUG9wdXBNZW51V2luOjp2aXNpYmxl
SXRlbXMoKSBjb25zdAogewogICAgIHJldHVybiBjbGllbnRSZWN0KCkuaGVpZ2h0KCkgLyBtX2l0
ZW1IZWlnaHQ7CiB9CiAKLWludCBQb3B1cE1lbnU6Omxpc3RJbmRleEF0UG9pbnQoY29uc3QgSW50
UG9pbnQmIHBvaW50KSBjb25zdAoraW50IFBvcHVwTWVudVdpbjo6bGlzdEluZGV4QXRQb2ludChj
b25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0
ICsgcG9pbnQueSgpIC8gbV9pdGVtSGVpZ2h0OwogfQogCi1pbnQgUG9wdXBNZW51Ojpmb2N1c2Vk
SW5kZXgoKSBjb25zdAoraW50IFBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9mb2N1c2VkSW5kZXg7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpmb2N1c0Zp
cnN0KCkKK3ZvaWQgUG9wdXBNZW51V2luOjpmb2N1c0ZpcnN0KCkKIHsKICAgICBpZiAoIWNsaWVu
dCgpKQogICAgICAgICByZXR1cm47CkBAIC00MjQsNyArNDMwLDcgQEAgdm9pZCBQb3B1cE1lbnU6
OmZvY3VzRmlyc3QoKQogICAgICAgICB9CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpmb2N1c0xhc3Qo
KQordm9pZCBQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCgpCiB7CiAgICAgaWYgKCFjbGllbnQoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDM4LDcgKzQ0NCw3IEBAIHZvaWQgUG9wdXBNZW51Ojpmb2N1
c0xhc3QoKQogICAgICAgICB9CiB9CiAKLWJvb2wgUG9wdXBNZW51Ojpkb3duKHVuc2lnbmVkIGxp
bmVzKQorYm9vbCBQb3B1cE1lbnVXaW46OmRvd24odW5zaWduZWQgbGluZXMpCiB7CiAgICAgaWYg
KCFjbGllbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDU3LDcgKzQ2Myw3IEBAIGJv
b2wgUG9wdXBNZW51Ojpkb3duKHVuc2lnbmVkIGxpbmVzKQogICAgIHJldHVybiBzZXRGb2N1c2Vk
SW5kZXgobGFzdFNlbGVjdGFibGVJbmRleCk7CiB9CiAKLWJvb2wgUG9wdXBNZW51Ojp1cCh1bnNp
Z25lZCBsaW5lcykKK2Jvb2wgUG9wdXBNZW51V2luOjp1cCh1bnNpZ25lZCBsaW5lcykKIHsKICAg
ICBpZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NzYsNyArNDgyLDcg
QEAgYm9vbCBQb3B1cE1lbnU6OnVwKHVuc2lnbmVkIGxpbmVzKQogICAgIHJldHVybiBzZXRGb2N1
c2VkSW5kZXgobGFzdFNlbGVjdGFibGVJbmRleCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjppbnZh
bGlkYXRlSXRlbShpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudVdpbjo6aW52YWxpZGF0ZUl0ZW0o
aW50IGluZGV4KQogewogICAgIGlmICghbV9wb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDkx
LDcgKzQ5Nyw3IEBAIHZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpCiAg
ICAgOjpJbnZhbGlkYXRlUmVjdChtX3BvcHVwLCAmciwgVFJVRSk7CiB9CiAKLUludFJlY3QgUG9w
dXBNZW51OjpjbGllbnRSZWN0KCkgY29uc3QKK0ludFJlY3QgUG9wdXBNZW51V2luOjpjbGllbnRS
ZWN0KCkgY29uc3QKIHsKICAgICBJbnRSZWN0IGNsaWVudFJlY3QgPSBtX3dpbmRvd1JlY3Q7CiAg
ICAgY2xpZW50UmVjdC5pbmZsYXRlKC1wb3B1cFdpbmRvd0JvcmRlcldpZHRoKTsKQEAgLTQ5OSwx
MiArNTA1LDEyIEBAIEludFJlY3QgUG9wdXBNZW51OjpjbGllbnRSZWN0KCkgY29uc3QKICAgICBy
ZXR1cm4gY2xpZW50UmVjdDsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmluY3JlbWVudFdoZWVsRGVs
dGEoaW50IGRlbHRhKQordm9pZCBQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEoaW50
IGRlbHRhKQogewogICAgIG1fd2hlZWxEZWx0YSArPSBkZWx0YTsKIH0KIAotdm9pZCBQb3B1cE1l
bnU6OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKQordm9pZCBQb3B1cE1lbnVXaW46OnJlZHVj
ZVdoZWVsRGVsdGEoaW50IGRlbHRhKQogewogICAgIEFTU0VSVChkZWx0YSA+PSAwKTsKICAgICBB
U1NFUlQoZGVsdGEgPD0gYWJzKG1fd2hlZWxEZWx0YSkpOwpAQCAtNTE3LDcgKzUyMyw3IEBAIHZv
aWQgUG9wdXBNZW51OjpyZWR1Y2VXaGVlbERlbHRhKGludCBkZWx0YSkKICAgICAgICAgcmV0dXJu
OwogfQogCi1ib29sIFBvcHVwTWVudTo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQorYm9vbCBQ
b3B1cE1lbnVXaW46OnNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCkKIHsKICAgICBpZiAoIW1fc2Ny
b2xsYmFyKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01MzcsNyArNTQzLDcgQEAgYm9vbCBQ
b3B1cE1lbnU6OnNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudVdp
bjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewogICAgIGlmICghbV9wb3B1cCkKICAgICAgICAgcmV0
dXJuOwpAQCAtNTQ5LDE0ICs1NTUsOSBAQCB2b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogICAgICAgICA6OlVwZGF0ZVdpbmRvdyhtX3BvcHVwKTsKIH0KIAotYm9vbCBQb3B1cE1l
bnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgCi17IAotICAgIHJldHVybiB0cnVl
OyAKLX0KLQogY29uc3QgaW50IHNlcGFyYXRvclBhZGRpbmcgPSA0OwogY29uc3QgaW50IHNlcGFy
YXRvckhlaWdodCA9IDE7Ci12b2lkIFBvcHVwTWVudTo6cGFpbnQoY29uc3QgSW50UmVjdCYgZGFt
YWdlUmVjdCwgSERDIGhkYykKK3ZvaWQgUG9wdXBNZW51V2luOjpwYWludChjb25zdCBJbnRSZWN0
JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQogewogICAgIGlmICghbV9wb3B1cCkKICAgICAgICAgcmV0
dXJuOwpAQCAtNjYzLDcgKzY2NCw3IEBAIHZvaWQgUG9wdXBNZW51OjpwYWludChjb25zdCBJbnRS
ZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQogICAgICAgICA6OlJlbGVhc2VEQyhtX3BvcHVwLCBs
b2NhbERDKTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqIHNj
cm9sbEJhcikKK3ZvaWQgUG9wdXBNZW51V2luOjp2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKiBzY3Jv
bGxCYXIpCiB7CiAgICAgQVNTRVJUKG1fc2Nyb2xsYmFyKTsKIApAQCAtNjk5LDcgKzcwMCw3IEBA
IHZvaWQgUG9wdXBNZW51Ojp2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKiBzY3JvbGxCYXIpCiAgICAg
OjpVcGRhdGVXaW5kb3cobV9wb3B1cCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRl
U2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkK
K3ZvaWQgUG9wdXBNZW51V2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNj
cm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3Qg
PSByZWN0OwogICAgIHNjcm9sbFJlY3QubW92ZShzY3JvbGxiYXItPngoKSwgc2Nyb2xsYmFyLT55
KCkpOwpAQCAtNzA3LDcgKzcwOCw3IEBAIHZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRlU2Nyb2xs
YmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjCiAgICAgOjpJ
bnZhbGlkYXRlUmVjdChtX3BvcHVwLCAmciwgZmFsc2UpOwogfQogCi12b2lkIFBvcHVwTWVudTo6
cmVnaXN0ZXJDbGFzcygpCit2b2lkIFBvcHVwTWVudVdpbjo6cmVnaXN0ZXJDbGFzcygpCiB7CiAg
ICAgc3RhdGljIGJvb2wgaGF2ZVJlZ2lzdGVyZWRXaW5kb3dDbGFzcyA9IGZhbHNlOwogCkBAIC03
NDMsNyArNzQ0LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnJlZ2lzdGVyQ2xhc3MoKQogfQogCiAKLUxS
RVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51OjpQb3B1cE1lbnVXbmRQcm9jKEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQorTFJFU1VMVCBDQUxMQkFD
SyBQb3B1cE1lbnVXaW46OlBvcHVwTWVudVduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgTE9O
RyBsb25nUHRyID0gR2V0V2luZG93TG9uZyhoV25kLCAwKTsKQEAgLTc3MSw3ICs3NzIsNyBAQCBM
UkVTVUxUIENBTExCQUNLIFBvcHVwTWVudTo6UG9wdXBNZW51V25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYQogCiBjb25zdCBpbnQgc21vb3RoU2Nyb2xsQW5pbWF0aW9u
RHVyYXRpb24gPSA1MDAwOwogCi1MUkVTVUxUIFBvcHVwTWVudTo6d25kUHJvYyhIV05EIGhXbmQs
IFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgUG9w
dXBNZW51V2luOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFt
LCBMUEFSQU0gbFBhcmFtKQogewogICAgIExSRVNVTFQgbFJlc3VsdCA9IDA7CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MThlZTZiMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVu
dVdpbl9oCisjZGVmaW5lIFBvcHVwTWVudVdpbl9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyQ2xpZW50LmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwordHlwZWRl
ZiBzdHJ1Y3QgSERDX18qIEhEQzsKK3R5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxi
YXI7CisKK2NsYXNzIFBvcHVwTWVudVdpbiA6IHB1YmxpYyBQb3B1cE1lbnUsIHByaXZhdGUgU2Ny
b2xsYmFyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50
Kik7CisgICAgflBvcHVwTWVudVdpbigpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3Qg
SW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCog
bV9wb3B1cENsaWVudDsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCisgICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGJhci5nZXQoKTsgfQorCisgICAgc3RhdGljIExQQ1RTVFIgcG9w
dXBDbGFzc05hbWUoKTsKKworICAgIGJvb2wgdXAodW5zaWduZWQgbGluZXMgPSAxKTsKKyAgICBi
b29sIGRvd24odW5zaWduZWQgbGluZXMgPSAxKTsKKworICAgIGludCBpdGVtSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9pdGVtSGVpZ2h0OyB9CisgICAgY29uc3QgSW50UmVjdCYgd2luZG93UmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93UmVjdDsgfQorICAgIEludFJlY3QgY2xpZW50UmVj
dCgpIGNvbnN0OworCisgICAgaW50IHZpc2libGVJdGVtcygpIGNvbnN0OworCisgICAgaW50IGxp
c3RJbmRleEF0UG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKKworICAgIGJvb2wgc2V0Rm9j
dXNlZEluZGV4KGludCBpbmRleCwgYm9vbCBob3RUcmFja2luZyA9IGZhbHNlKTsKKyAgICBpbnQg
Zm9jdXNlZEluZGV4KCkgY29uc3Q7CisgICAgdm9pZCBmb2N1c0ZpcnN0KCk7CisgICAgdm9pZCBm
b2N1c0xhc3QoKTsKKworICAgIHZvaWQgcGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwg
SERDID0gMCk7CisKKyAgICBIV05EIHBvcHVwSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9wb3B1
cDsgfQorCisgICAgdm9pZCBzZXRXYXNDbGlja2VkKGJvb2wgYiA9IHRydWUpIHsgbV93YXNDbGlj
a2VkID0gYjsgfQorICAgIGJvb2wgd2FzQ2xpY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2xp
Y2tlZDsgfQorCisgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoaW50IG9mZnNldCkgeyBtX3Njcm9s
bE9mZnNldCA9IG9mZnNldDsgfQorICAgIGludCBzY3JvbGxPZmZzZXQoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbE9mZnNldDsgfQorCisgICAgYm9vbCBzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigp
OworCisgICAgdm9pZCBpbmNyZW1lbnRXaGVlbERlbHRhKGludCBkZWx0YSk7CisgICAgdm9pZCBy
ZWR1Y2VXaGVlbERlbHRhKGludCBkZWx0YSk7CisgICAgaW50IHdoZWVsRGVsdGEoKSBjb25zdCB7
IHJldHVybiBtX3doZWVsRGVsdGE7IH0KKworICAgIGJvb2wgc2Nyb2xsYmFyQ2FwdHVyaW5nTW91
c2UoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOyB9CisgICAgdm9p
ZCBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29sIGIpIHsgbV9zY3JvbGxiYXJDYXB0dXJp
bmdNb3VzZSA9IGI7IH0KK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudVdpbl9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcAppbmRleCBmMjcwOWJiLi40
YTVjYjIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVX
aW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIElu
Yy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDE5ICsxOSwyNCBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIK
KyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVXaW4uaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmlu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVXaW46OlNlYXJjaFBv
cHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50
KQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitQb3B1cE1lbnUqIFNl
YXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9
CisKK2Jvb2wgU2VhcmNoUG9wdXBNZW51V2luOjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTQxLDcgKzQ3LDcgQEAgc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYXV0
b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+KEFkb3B0Q0YsIGtleS5jcmVhdGVDRlN0cmluZygpKTsKIH0KIAotdm9pZCBTZWFyY2hQ
b3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51V2lu
OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CkBAIC02MSw3ICs2Nyw3IEBAIHZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8CiAg
ICAgQ0ZQcmVmZXJlbmNlc0FwcFN5bmNocm9uaXplKGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxp
Y2F0aW9uKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3Zv
aWQgU2VhcmNoUG9wdXBNZW51V2luOjpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBv
cHVwTWVudVdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlODdkNzYK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVX
aW4uaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNo
UG9wdXBNZW51V2luX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51V2luX2gKKworI2luY2x1ZGUg
IlBvcHVwTWVudVdpbi5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudVdpbiA6IHB1YmxpYyBTZWFyY2hQ
b3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGll
bnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJj
aEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBv
cHVwTWVudVdpbiBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51
V2luX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAKaW5kZXggOWIwZGViYS4uZTg4ZDFl
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgcG9wdXAgbWVudSBpbXBsZW1lbnRhdGlvbiBmb3IgPHNl
bGVjdD4gZWxlbWVudHMgaW4gV2ViQ29yZS4KICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIx
LDcgKzIyLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBN
ZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51V3guaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC00MSwxOCArNDIsMjMgQEAgc3RhdGljIGludCBzX21l
bnVTdGFydElkID0gd3hOZXdJZCgpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVu
dTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51V3g6OlBvcHVw
TWVudVd4KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGll
bnQpCiAgICAgLCBtX21lbnUoTlVMTCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkK
K1BvcHVwTWVudVd4Ojp+UG9wdXBNZW51V3goKQogewogICAgIGRlbGV0ZSBtX21lbnU7CiB9CiAK
LXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50
IGluZGV4KQordm9pZCBQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9w
b3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9wdXBNZW51V3g6OnNob3coY29uc3QgSW50UmVj
dCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiB7CiAgICAgLy8ganVzdCBkZWxldGUgYW5k
IHJlY3JlYXRlCiAgICAgZGVsZXRlIG1fbWVudTsKQEAgLTc4LDEzICs4NCwxMyBAQCB2b2lkIFBv
cHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkK
ICAgICAgICAgICAgICAgICAgICAgbV9tZW51LT5BcHBlbmQoc19tZW51U3RhcnRJZCArIGksIGNs
aWVudCgpLT5pdGVtVGV4dChpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAg
bmF0aXZlV2luLT5Db25uZWN0KHNfbWVudVN0YXJ0SWQsIHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0x
KSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3eENvbW1hbmRFdmVudEhhbmRsZXIoUG9w
dXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCBOVUxMLCB0aGlzKTsKKyAgICAgICAgbmF0aXZl
V2luLT5Db25uZWN0KHNfbWVudVN0YXJ0SWQsIHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hF
VlRfQ09NTUFORF9NRU5VX1NFTEVDVEVELCB3eENvbW1hbmRFdmVudEhhbmRsZXIoUG9wdXBNZW51
V3g6Ok9uTWVudUl0ZW1TZWxlY3RlZCksIDAsIHRoaXMpOwogICAgICAgICBuYXRpdmVXaW4tPlBv
cHVwTWVudShtX21lbnUsIHIueCgpIC0gdi0+c2Nyb2xsWCgpLCByLnkoKSAtIHYtPnNjcm9sbFko
KSk7Ci0gICAgICAgIG5hdGl2ZVdpbi0+RGlzY29ubmVjdChzX21lbnVTdGFydElkLCBzX21lbnVT
dGFydElkICsgKHNpemUtMSksIHd4RVZUX0NPTU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5k
RXZlbnRIYW5kbGVyKFBvcHVwTWVudTo6T25NZW51SXRlbVNlbGVjdGVkKSwgTlVMTCwgdGhpcyk7
CisgICAgICAgIG5hdGl2ZVdpbi0+RGlzY29ubmVjdChzX21lbnVTdGFydElkLCBzX21lbnVTdGFy
dElkICsgKHNpemUtMSksIHd4RVZUX0NPTU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZl
bnRIYW5kbGVyKFBvcHVwTWVudVd4OjpPbk1lbnVJdGVtU2VsZWN0ZWQpLCAwLCB0aGlzKTsKICAg
ICB9CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZl
bnQmIGV2ZW50KQordm9pZCBQb3B1cE1lbnVXeDo6T25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFu
ZEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoY2xpZW50KCkpIHsKICAgICAgICAgY2xpZW50KCkt
PnZhbHVlQ2hhbmdlZChldmVudC5HZXRJZCgpIC0gc19tZW51U3RhcnRJZCk7CkBAIC05MywyMCAr
OTksMTUgQEAgdm9pZCBQb3B1cE1lbnU6Ok9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVu
dCYgZXZlbnQpCiAgICAgLy8gVE9ETzogRG8gd2UgbmVlZCB0byBjYWxsIERpc2Nvbm5lY3QgaGVy
ZT8gRG8gd2UgaGF2ZSBhIHJlZiB0byB0aGUgbmF0aXZlIHdpbmRvdyBzdGlsbD8KIH0KIAotdm9p
ZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVXeDo6aGlkZSgpCiB7CiAgICAgLy8g
d2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlLCB0aGUgbmF0aXZlIGNvbnRyb2wgb25s
eSBleGlzdHMgZHVyaW5nIHRoZSB0aW1lCiAgICAgLy8gc2hvdyBpcyBjYWxsZWQKIH0KIAotdm9p
ZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51V3g6OnVwZGF0
ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBD
bGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmggYi9XZWJDb3JlL3BsYXRm
b3JtL3d4L1BvcHVwTWVudVd4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTYwNGI5MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51
V3guaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUG9wdXBN
ZW51V3hfaAorI2RlZmluZSBQb3B1cE1lbnVXeF9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCisj
aWZkZWYgX19XWE1TV19fCisjaW5jbHVkZSA8d3gvbXN3L3dpbnVuZGVmLmg+CisjZW5kaWYKK2Ns
YXNzIHd4TWVudTsKKyNpbmNsdWRlIDx3eC9kZWZzLmg+CisjaW5jbHVkZSA8d3gvZXZlbnQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxi
YXI7CisKK2NsYXNzIFBvcHVwTWVudVd4IDogcHVibGljIFBvcHVwTWVudSwgcHVibGljIHd4RXZ0
SGFuZGxlciB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51V3goUG9wdXBNZW51Q2xpZW50Kik7Cisg
ICAgflBvcHVwTWVudVd4KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0
JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVw
Q2xpZW50OworCisgICAgd3hNZW51KiBtX21lbnU7CisgICAgdm9pZCBPbk1lbnVJdGVtU2VsZWN0
ZWQod3hDb21tYW5kRXZlbnQmKTsKKworICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1
cE1lbnVXeF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVu
dVd4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwCmluZGV4
IGRiYmUzMzkuLmE1YWViMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNo
UG9wdXBNZW51V3guY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51
V3guY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNCwzMiArMjUsMzcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51V3guaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51V3g6OlNl
YXJjaFBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChj
bGllbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1l
bnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51V3g6OnNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNl
YXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVXeDo6
bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wgU2Vh
cmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51V3g6OmVuYWJsZWQo
KQogewogICAgIHJldHVybiB0cnVlOwogfQogCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudVd4
Ojpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmggYi9XZWJDb3JlL3Bs
YXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNmRjNzdiYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gv
U2VhcmNoUG9wdXBNZW51V3guaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51V3hfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVXeF9o
CisKKyNpbmNsdWRlICJQb3B1cE1lbnVXeC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudVd4IDogcHVi
bGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51V3goUG9w
dXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lk
IGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJp
bmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0
ZToKKyAgICBQb3B1cE1lbnVXeCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNo
UG9wdXBNZW51V3hfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGZmMTZl
N2UuLmI2YTk3YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgogCiAjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0
b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtODgs
OCArODksOCBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICBt
X2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdSaWdodChMZW5ndGgodGhlbWUoKS0+cG9w
dXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSgpKSwgRml4ZWQpKTsKICAgICBtX2lubmVyQmxv
Y2stPnN0eWxlKCktPnNldFBhZGRpbmdUb3AoTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQ
YWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwogICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+
c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0
b20oc3R5bGUoKSksIEZpeGVkKSk7Ci0gICAgICAgIAotICAgIGlmIChQb3B1cE1lbnU6Oml0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKKworICAgIGlmIChkb2N1bWVudCgpLT5wYWdl
KCktPmNocm9tZSgpLT5zZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpKSB7CiAg
ICAgICAgIC8vIEl0ZW1zIGluIHRoZSBwb3B1cCB3aWxsIG5vdCByZXNwZWN0IHRoZSBDU1MgdGV4
dC1hbGlnbiBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMsCiAgICAgICAgIC8vIHNvIHdlIG11c3Qg
YWRqdXN0IG91ciBvd24gc3R5bGUgdG8gbWF0Y2guCiAgICAgICAgIG1faW5uZXJCbG9jay0+c3R5
bGUoKS0+c2V0VGV4dEFsaWduKExFRlQpOwpAQCAtMjc4LDcgKzI3OSw3IEBAIHZvaWQgUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRlIHRoZSBzaG93UG9wdXAgY2FsbCBh
bmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJsb2NrKCk7CiAgICAgaWYgKCFtX3Bv
cHVwKQotICAgICAgICBtX3BvcHVwID0gUG9wdXBNZW51OjpjcmVhdGUodGhpcyk7CisgICAgICAg
IG1fcG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jcmVhdGVQb3B1cE1lbnUo
dGhpcyk7CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggYWVmOGQ0Zi4uNTgzNWY4ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIFJl
bmRlck1lbnVMaXN0X2gKICNkZWZpbmUgUmVuZGVyTWVudUxpc3RfaAogCisjaW5jbHVkZSAiUG9w
dXBNZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
RmxleGlibGVCb3guaCIKIApAQCAtMzUsOCArMzYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFBvcHVwTWVudTsKIGNsYXNzIFJlbmRlclRleHQ7CitjbGFzcyBTZWxlY3RVSUNs
aWVudDsKIAogI2lmIEVOQUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKIGNsYXNzIFJlbmRlck1l
bnVMaXN0IDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94LCBwcml2YXRlIExpc3RQb3B1cE1lbnVD
bGllbnQgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKaW5kZXggZjQwZmJmMC4uYmNkMzcyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0yLDYgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKSAKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogCisjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzgsNyArNDAsNiBAQAogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJTZWxl
Y3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaW1w
bGVGb250RGF0YS5oIgpAQCAtNjIsNyArNjMsNyBAQCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShOb2RlKiBub2RlLCBib29sIHBsYWNlaAog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
KCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewotICAgICAgICBtX3NlYXJjaFBvcHVwLT5k
aXNjb25uZWN0Q2xpZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5k
aXNjb25uZWN0Q2xpZW50KCk7CiAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSAwOwogICAgIH0KICAK
QEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6YWRk
U2VhcmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZl
TmFtZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0g
ZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMp
OwogCiAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50
U2VhcmNoZXMpOwogfQpAQCAtMTI1LDcgKzEyNiw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2Vh
cmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0
ZSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hy
b21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKIAogICAgIGlmICghbV9zZWFyY2hQ
b3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDUsMTQgKzE0NiwxNCBAQCB2
b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9z
ZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwog
ICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
dHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVw
TWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpLCBkb2N1bWVudCgpLT52
aWV3KCksIC0xKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQ
b3B1cCgpCiB7CiAgICAgQVNTRVJUKG5vZGUoKS0+aXNIVE1MRWxlbWVudCgpKTsKICAgICBpZiAo
bV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cC0+aGlkZSgpOworICAgICAgICBt
X3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+aGlkZSgpOwogfQogCiB2b2lkIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6c3VidHJlZUhhc0NoYW5nZWQoKQpAQCAtNjg1LDcgKzY4Niw3IEBA
IHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAg
ICAgfQogCiAgICAgaWYgKG1fc2VhcmNoUG9wdXBJc1Zpc2libGUpCi0gICAgICAgIG1fc2VhcmNo
UG9wdXAtPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVw
TWVudSgpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6Y2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKQpAQCAtODgzLDcg
Kzg4NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp2YWx1ZUNoYW5nZWQo
dW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVuCiAgICAgICAgICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAg
ICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSh0aGlz
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3VtZW50KCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKICAgICAgICAgICAgICAg
ICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hl
cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggOGM3ZTg0NC4uODczY2FjYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2Jp
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20v
KQorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsNiArMjUsNyBAQAogCiAj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wu
aCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMiw3ICszNCw3IEBAIGNsYXNzIElucHV0RWxlbWVudDsK
IGNsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVu
dDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVudTsKK2NsYXNzIFNlYXJjaFVJQ2xpZW50OwogY2xhc3Mg
U3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudDsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYTY0NmE3OS4uNTE5MTZlZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9w
dXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMg
Q2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51
IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2Vz
IHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bwor
ICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudEltcGw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuaDoKKwogMjAxMC0wNy0yNyAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIEJ1aWxkIEZpeC4gCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBkNDNkODhhLi5jZmFkNDZkIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTUsNiAr
NTYsNyBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJTZWFy
Y2hQb3B1cE1lbnVDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2UuaCIKICNpZiBVU0UoVjgpCkBAIC03NjUsNCAr
NzY3LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdl
YkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmV4aXRGdWxs
c2NyZWVuRm9yTm9kZShXZWJOb2RlKG5vZGUpKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRJbXBs
OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SW1w
bDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW0o
Y2xpZW50KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBDaHJv
bWVDbGllbnRJbXBsOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShjbGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGU4MjQzODEuLjRk
ZjlhYmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTMyLDEyICszMywxNSBAQAogI2RlZmluZSBDaHJvbWVDbGllbnRJbXBsX2gKIAogI2luY2x1
ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5j
bHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBGaWxlQ2hvb3NlcjsKIGNsYXNzIEhUTUxQYXJzZXJR
dWlya3M7CiBjbGFzcyBQb3B1cENvbnRhaW5lcjsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNs
YXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogfQpAQCAtMTY1LDYg
KzE2OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ3Vyc29ySW5m
byYgY3Vyc29yKTsKICAgICB2b2lkIHNldEN1cnNvckZvclBsdWdpbihjb25zdCBXZWJDdXJzb3JJ
bmZvJiBjdXJzb3IpOwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2ViQ29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQ
b3B1cE1lbnVJbmZvKik7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNzUzNGJmZC4uODg3M2EyOSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
b3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBB
cyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNz
ZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRv
CisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTAtMDctMjYgIFJhZmFlbCBB
bnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwCmluZGV4IGZmYmQ2NDIuLmYzN2RhMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTUsNiArNSw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgpAQCAtNDcsNiArNDgsOCBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
UG9wdXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCiAjaW5jbHVk
ZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2lu
Y2x1ZGUgImV3a19wcml2YXRlLmgiCkBAIC01MTMsNCArNTE2LDE5IEBAIHZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBW
aWV3cG9ydEFyCiAgICAgZXdrX3ZpZXdfdmlld3BvcnRfc2V0KG1fdmlldywgYXJndW1lbnRzLndp
ZHRoLCBhcmd1bWVudHMuaGVpZ2h0LCBhcmd1bWVudHMuaW5pdGlhbFNjYWxlLCBhcmd1bWVudHMu
bWluaW11bVNjYWxlLCBhcmd1bWVudHMubWF4aW11bVNjYWxlLCBhcmd1bWVudHMudXNlclNjYWxh
YmxlKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1
cE1lbnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51RWZsKGNs
aWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZs
OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVFZmwoY2xpZW50KSk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4
IGNlOGFiZDEuLmIyMmQ5ODEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0g
SW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0x
MzcsNiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlVmll
d3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJn
dW1lbnRzKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisKICAgICBFdmFzX09iamVjdCogbV92aWV3OwogICAgIEtVUkwgbV9ob3ZlcmVk
TGlua1VSTDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCmluZGV4IDgwM2JmMTIuLjQwYTljNTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBN
ZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hy
b21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRo
YXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAg
ICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggODg0NDBiYS4uOTM5NDE4YSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAt
NCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDkgKzMyLDEyIEBACiAjaW5jbHVkZSAiR3RrVmVy
c2lvbmluZy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUd0
ay5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJY29uLmgiCiAjaW5j
bHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUd0ay5oIgogI2luY2x1ZGUg
IndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2
aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKQEAgLTYxNiw0ICs2MjAs
MTkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnIKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
d2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5jZWxsZWQiLCB3ZWJGcmFt
ZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6
UG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVw
TWVudUd0ayhjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNo
UG9wdXBNZW51R3RrKGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBjZTVjNWE3Li4zZjc2ZDE5IDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw5ICsyMywxNSBAQAogCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5o
IgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
V2ViVmlldyBXZWJLaXRXZWJWaWV3OwogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgY2xhc3MgQ2hyb21l
Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjIsNiArMTI5LDEw
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9j
YXRpb24qKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7
CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNo
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAgcHJpdmF0
ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpL
VVJMIG1faG92ZXJlZExpbmtVUkw7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9n
IGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA4NDFhOTRjLi5jZmRkZGYzIDEwMDY0NAot
LS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3Rp
bmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIK
KworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3Zp
ZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5jZXMsIGNv
bmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBi
ZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVwTWVu
dSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgor
CiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBkMThiODRkLi42ZDY0YWM3IDEwMDY0NAotLS0g
YS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCisrKyBi
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKQEAgLTIs
NiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3IFJ5YW4gTGVhdmVuZ29vZCA8bGVhdmVu
Z29vZEBnbWFpbC5jb20+IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTM1LDYgKzM2LDggQEAKICNpbmNsdWRlICJJY29uLmgiCiAjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51SGFpa3Uu
aCIKIAogI2luY2x1ZGUgPEFsZXJ0Lmg+CiAjaW5jbHVkZSA8U3RyaW5nLmg+CkBAIC0zODAsNSAr
MzgzLDIwIEBAIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gQ2hyb21lQ2xpZW50SGFpa3U6
OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKQogICAgIHJldHVybiAwOwogfQogCitib29sIENocm9t
ZUNsaWVudEhhaWt1OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50
SGFpa3U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOworfQorCitQ
YXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEhhaWt1LmgKaW5kZXggOTYzZTcyZi4uMzhmZWYyNSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTEsNiArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwuY29tPiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0xMjgsNiArMTI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKTsK
IAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CisKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCAzNDc3YjE3Li4xMjM5MmNjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEw
LTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSBy
ZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIEFzIENocm9tZUNs
aWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBhbmQgU2Vh
cmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0aGF0IGlu
aGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAg
aW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorCiAy
MDEwLTA3LTI3ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDdkMDgwLi5mYTI5YjMyIDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTY3LDYgKzE2NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6
Okdlb2xvY2F0aW9uKikgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiBwcml2
YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGViNTYyNDAuLmU5M2VhMDkgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYyLDEyICs2MiwxNiBAQAogI2lt
cG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Bv
cHVwTWVudU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdl
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2ltcG9ydCA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAorCisKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNl
bmRpZgpAQCAtNzI0LDYgKzcyOCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURpZEJs
dXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZp
ZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoY29uc3RfY2FzdDxX
ZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKK30KKworUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51TWFjKGNsaWVudCkpOworfQor
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggY2RlNWE1Yi4uYTExNjIwYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51
IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21l
Q2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBT
ZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQg
aW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAg
ICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0wNy0yNyAgU2ltb24gSGF1c21hbm4gIDxzaW1v
bi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVz
dGLDuC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4
IDJjNjRhNzguLjc5MTBjMWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFj
ayBSdXNpbiA8emFja0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAj
aW5jbHVkZSAiUGFnZUNsaWVudFF0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKICNpZiBk
ZWZpbmVkKFFfV1NfTUFFTU9fNSkKICNpbmNsdWRlICJRdE1hZW1vV2ViUG9wdXAuaCIKICNlbHNl
CkBAIC01Miw2ICs1NCw3IEBACiAjZW5kaWYKICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgog
I2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51UXQu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1l
bnRzLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKQEAgLTY0NCw0ICs2NDcsMTkgQEAg
dm9pZCBDaHJvbWVDbGllbnRRdDo6ZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzKEZyYW1lKiBm
cmFtZSwgY29uc3QgVmlld3BvcnRBcmcKICAgICBlbWl0IG1fd2ViUGFnZS0+dmlld3BvcnRDaGFu
Z2VSZXF1ZXN0ZWQoaGludHMpOwogfQogCitib29sIENocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQ
YXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBv
cHVwTWVudVF0KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hy
b21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVF0KGNs
aWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRhMjUuLjA2YWI1YjggMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTc2LDYgKzE3NywxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc01pbmltaXplZCgpOwog
I2VuZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0OworCiAgICAgICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogY3JlYXRlU2VsZWN0
UG9wdXAoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1l
bnRzKEZyYW1lKiwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggODY3MGUy
Ni4uYjk1NWVmNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGlu
aSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFy
YXRpb24gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9u
c2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAg
ICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xp
ZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1l
dGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDctMjcgIFN0ZXZlIEJs
b2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhl
eSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggNzM1MzJhNi4uMmU5YmE1YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNiAr
NTYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BvcHVwTWVudVdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNo
UG9wdXBNZW51V2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI3By
YWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtODY4LDMgKzg3MSwxOCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKQogCiAjZW5kaWYKIAorYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOworfQorCitQYXNzUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTZWFyY2hQb3B1cE1lbnVXaW4oY2xpZW50KSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3ODQ1YTkuLmU3MTdlZjEgMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTY1LDYgKzE2NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0
IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVy
Kj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRl
PiB1aURlbGVnYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJL
aXQvd3gvQ2hhbmdlTG9nCmluZGV4IDMyZmY2ZmUuLjQ0YTU2MDMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVw
TWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIEFzIENo
cm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0
aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAg
ICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6
OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50V3g6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKaW5kZXggZDgxYTIwYy4uMjUzMTJiNCAx
MDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisr
KyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0
aGVvbGxpdmllcnMuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKQEAgLTM4LDYgKzM5LDggQEAKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlBv
cHVwTWVudVd4LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51V3guaCIKICNpbmNsdWRlICJX
aW5kb3dGZWF0dXJlcy5oIgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTQ1OCw0ICs0NjEsMTkg
QEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jv
b2wgQ2hyb21lQ2xpZW50V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVD
bGllbnRXeDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V3goY2xpZW50KSk7Cit9CisKK1Bh
c3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRXeDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V3goY2xpZW50KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDRiMTU2ZWQuLjVmMjJjYmUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0aGVvbGxpdmll
cnMuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTE0MSw2ICsxNDIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUq
LCBHZW9sb2NhdGlvbiopIHsgfQogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB3eFdlYlZpZXcqIG1fd2ViVmlldzsKIH07
CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDkwZjc0ZTYuLmJiMmIzZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3Rp
bmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBh
cmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQ2xhc3NlcyBXZWJQb3B1cE1lbnUgYW5kIFdlYlNl
YXJjaFBvcHVwTWVudSBpbmhlcml0IGZyb20gUG9wdXBNZW51IGFuZAorICAgICAgICBTZWFyY2hQ
b3B1cE1lbnUgcmVzcGVjdGl2ZWx5LiBBdCB0aGlzIHBvaW50IHRoZXkgYXJlIGp1c3QgZW1wdHkg
aW1wbGVtZW50YXRpb25zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpX
ZWJQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1cE1l
bnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnU6OmhpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0
ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBv
cHVwTWVudS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQ
b3B1cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJj
aFBvcHVwTWVudTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBN
ZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdh
cyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1
cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBm
cm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBsZW1l
bnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKworICAgICAgICBidWlsZCBpc3N1
ZXM6CisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd2luL1dlYktpdDIudmNwcm9qOgorCiAyMDEwLTA3LTI3ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFdpbmRvd3MgYnVpbGQuCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhkY2ViMGUuLjUwZGY4
ZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTks
NiArMjU5LDEwIEBACiAJCUJDRjY5RkEzMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9u
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuY3BwICovOyB9Owog
CQlCQ0Y2OUZBOTExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTcxMTc2RDFDQjAw
NDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CiAJCUJDRjY5RkFBMTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmln
YXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDRjY5RkE4MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmNwcCAqLzsg
fTsKKwkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MjExRkY0QjY1
MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLzsgfTsKKwkJRDNCOTQ4NDcxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
ICovOyB9OworCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0
ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovOyB9OworCQlE
M0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAw
MzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKIAkJRTFFRTUzRTcx
MUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTNFNjExRjhD
RkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLzsgfTsK
IAkJRTFFRTU1RjQxMUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1NUYzMTFGOEYxODkwMEND
QkVFNCAvKiBXS0J1bmRsZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVi
bGljLCApOyB9OyB9OwpAQCAtNTUwLDYgKzU1NCwxMCBAQAogCQlCQ0Y2OUZBMTExNzZEMDE0MDA0
NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViTmF2aWdhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0Y2OUZBNzExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05hdmlnYXRpb25EYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5RkE4MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05h
dmlnYXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
TmF2aWdhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0I5NDg0
MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2Vh
cmNoUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4NDUx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFn
ZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVF
NTVGMzExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04MzksNiArODQ3LDEwIEBACiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThDMTVBIC8q
IFdlYkluc3BlY3RvckNsaWVudC5oICovLAogCQkJCTFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAv
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBM0U3MzVGMTFDQzI2NTkwMDdC
RDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKKwkJCQlEM0I5NDg0MjExRkY0QjY1
MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLywKKwkJCQlEM0I5NDg0MzExRkY0QjY1MDAw
MzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8sCisJCQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5
IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCisJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJDb3Jl
U3VwcG9ydDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjk1LDYgKzEzMDcsOCBA
QAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTQ5NzY4MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUU0OTg3ODExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNDkzLDcgKzE1MDcsMTIg
QEAKIAkJCQlFMUVFNTVGODExRjhGMUJDMDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMUVFNTY1NjExRjhGNzE3MDBDQ0JFRTQgLyogV0tCdW5kbGVOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTQ5NzY5MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpT
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorPDw8PDw8PCBIRUFEOldlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCiAJCQkJMUFFNDk4NzkxMUZGN0ZBQTAwNDhCNDY0IC8q
IEpTTlBPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCis9PT09PT09CisJCQkJRDNCOTQ4NDYxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEM0I5
NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2Vz
ICovLAorPj4+Pj4+PiBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2Vi
S2l0MjpXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCAyMzI1ODA5Li4xOTY3ZTY5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzQsOCArMzQsMTAgQEAKICNp
bmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1l
bnUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtNDY4LDYgKzQ3MCwyMSBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgTm9kZSopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpQ
b3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
UG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1
aXJrcz4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGRkNDg3YjQuLmJkNjcxYjMgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTE2Miw2ICsxNjIsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
V2ViQ29yZTo6SFRNTFBhcnNlclF1aXJrcz4gY3JlYXRlSFRNTFBhcnNlclF1aXJrcygpOwogCisg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZDNlNzM4YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQb3B1
cE1lbnUuaCIKKworI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNs
aWVudC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUG9wdXBNZW51OjpXZWJQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwQ2xpZW50
KGNsaWVudCkKK3sKK30KKworV2ViUG9wdXBNZW51Ojp+V2ViUG9wdXBNZW51KCkKK3sKK30KKwor
Cit2b2lkIFdlYlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENs
aWVudCA9IDA7Cit9CisKK3ZvaWQgV2ViUG9wdXBNZW51OjpzaG93KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3QsIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQoreworCit9
CisKK3ZvaWQgV2ViUG9wdXBNZW51OjpoaWRlKCkKK3sKK30KKwordm9pZCBXZWJQb3B1cE1lbnU6
OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjA2NTUxYzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaWZuZGVmIFdlYlBvcHVwTWVudV9oCisjZGVmaW5lIFdlYlBvcHVwTWVudV9o
CisKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
UG9wdXBNZW51Q2xpZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUG9w
dXBNZW51IDogcHVibGljIFdlYkNvcmU6OlBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgV2ViUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopOworICAgIH5XZWJQb3B1cE1lbnUoKTsKKworICAgIHZp
cnR1YWwgdm9pZCBzaG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpGcmFtZVZp
ZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGll
bnQoKTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBD
bGllbnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJQb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmYyNTFhCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVw
TWVudS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1dlYlNlYXJjaFBvcHVwTWVudTo6V2ViU2VhcmNoUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCit7Cit9
CisKK1BvcHVwTWVudSogV2ViU2VhcmNoUG9wdXBNZW51Ojpwb3B1cE1lbnUoKQoreworICAgIHJl
dHVybiAmbV9wb3B1cDsKK30KKwordm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRT
ZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYpCit7Cit9CisKK3ZvaWQgV2ViU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQoreworfQorCiti
b29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2VhcmNoUG9wdXBNZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE4
MzNlMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWFyY2hQb3B1cE1lbnUuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpZm5kZWYgV2ViU2VhcmNoUG9wdXBNZW51X2gKKyNkZWZpbmUgV2ViU2VhcmNoUG9wdXBN
ZW51X2gKKworI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIldlYlBvcHVw
TWVudS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2VhcmNoUG9wdXBNZW51
IDogcHVibGljIFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgV2ViU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpQ
b3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRl
bXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgV2ViUG9w
dXBNZW51IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJTZWFyY2hQb3B1cE1lbnVf
aApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvagppbmRleCBkYjY4MThlLi43MzY3ODg4IDEwMDc1NQotLS0gYS9XZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAt
NTU5LDYgKzU1OSwyMiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29y
ZVN1cHBvcnRcV2ViSW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dFxXZWJQb3B1cE1lbnUuY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViUG9wdXBN
ZW51LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
Ig0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViU2VhcmNoUG9wdXBNZW51LmgiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCiAJCQkJPEZpbHRlcg0KIAkJCQkJTmFtZT0id2luIg0KIAkJCQkJ
Pg0KLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="51017"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63084</attachid>
            <date>2010-07-30 10:56:28 -0700</date>
            <delta_ts>2010-07-30 18:55:56 -0700</delta_ts>
            <desc>patch 10</desc>
            <filename>0001-PopupMenu-refactoring-in-preparation-to-WebKit2.patch</filename>
            <type>text/plain</type>
            <size>186127</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA2YjllYzkxYzYwNjkwZWYwN2I2N2QxNWQzMWMxYjA0MjViZTYxMTk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMzAgSnVsIDIwMTAgMTQ6MjM6NDUgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpDbGFzc2VzIFBvcHVwTWVudSBhbmQgU2VhcmNoUG9w
dXBNZW51IGhhdmUgYmVlbiBtYWRlIHB1cmUgdmlydHVhbC4KCiogcGxhdGZvcm0vUG9wdXBNZW51
Lmg6CihXZWJDb3JlOjpQb3B1cE1lbnU6On5Qb3B1cE1lbnUpOgoqIHBsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Ojp+U2VhcmNoUG9wdXBNZW51KToK
CkNsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRlclRleHlDb250cm9sU2luZ2xlTGluZSBo
YXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKdGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFu
ZCBTZWFyY2hQb3B1cE1lbnUuCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6CihXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKToKKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkZFNlYXJjaFJlc3VsdCk6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CihXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCk6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKFdlYkNvcmU6OlJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6dmFsdWVDaGFuZ2VkKToKKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CgpDaHJvbWUgYW5kIENocm9tZUNsaWVudCB3ZXJlIG1h
ZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBpbnN0YW5jZXMgb2YgY2xhc3NlcwpQb3B1cE1l
bnUgYW5kIFNlYXJjaFBvcHVwTWVudSB0byBpdHMgdXNlcnMuCgoqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKFdlYkNvcmU6OkVtcHR5UG9w
dXBNZW51OjpoaWRlKToKKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVu
dCk6CihXZWJDb3JlOjpFbXB0eVBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CihXZWJDb3Jl
OjpFbXB0eVNlYXJjaFBvcHVwTWVudTo6cG9wdXBNZW51KToKKFdlYkNvcmU6OkVtcHR5U2VhcmNo
UG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6RW1wdHlTZWFyY2hQb3B1
cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpFbXB0eVNlYXJjaFBvcHVwTWVu
dTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudSk6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlUG9wdXBN
ZW51KToKKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKiBwYWdlL0No
cm9tZS5oOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CgpPcmlnaW5hbCBjb250ZW50cyBvZiBmaWxl
cyBQb3B1cE1lbnUuaCBhbmQgU2VhcmNoUG9wdXBNZW51LmggaGF2ZSBiZWVuIHNwbGl0ZWQKaW4g
c2V2ZXJhbCBmaWxlcywgdHdvIGZvciBlYWNoIHBsYXRmb3JtIChQb3B1cE1lbnVYWFguaCBhbmQg
U2VhcmNoUG9wdXBNZW51WFhYLmgpLgpFYWNoIG9mIG5ldyB0aGUgZmlsZXMgY29udGFpbiB0aGUg
Y29uY3JldGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZm9ybSBQb3B1cE1lbnUgb3IKU2VhcmNoUG9w
dXBNZW51IGFuZCBhcmUgc3BlY2lmaWMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHBsYXRmb3JtLgoK
YnJldzoKCiogcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNvcmU6OlBvcHVw
TWVudUJyZXc6OlBvcHVwTWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6Omhp
ZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL2JyZXcvUG9wdXBNZW51QnJldy5oOiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OmNsaWVudCk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoKKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51QnJldzo6U2VhcmNoUG9wdXBNZW51QnJldyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVCcmV3OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVw
TWVudSk6CiogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgoKY2hy
b21pdW06CgoqIFdlYkNvcmUuZ3lwaToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHA6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hyb21pdW0p
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06On5Qb3B1cE1lbnVDaHJvbWl1bSk6CihXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQp
OgooV2ViQ29yZTo6UG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQpOgoqIHBsYXRm
b3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmg6CihXZWJDb3JlOjpQb3B1cE1lbnVDaHJv
bWl1bTo6Y2xpZW50KToKKiBwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1
bS5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW0pOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51Q2hyb21pdW06OnBvcHVwTWVudSk6
CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCk6CihXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2FkUmVjZW50U2VhcmNoZXMpOgoqIHBsYXRmb3JtL2No
cm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmg6IEFkZGVkLgoKZWZsOgoKKiBwbGF0Zm9y
bS9lZmwvUG9wdXBNZW51RWZsLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6UG9wdXBNZW51
RWZsKToKKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVFZmw6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpoaWRlKToKKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51
RWZsOjpkaXNjb25uZWN0Q2xpZW50KToKKiBwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmg6IEFk
ZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgoqIHBsYXRmb3JtL2VmbC9TZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQ
b3B1cE1lbnVFZmwpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1lbnUpOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51RWZsOjplbmFibGVkKToKKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmg6IEFkZGVkLgoKZ3RrOgoKKiBHTlVtYWtlZmlsZS5hbToKKiBwbGF0Zm9ybS9ndGsvUG9w
dXBNZW51R3RrLmNwcDoKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6UG9wdXBNZW51R3RrKToKKFdl
YkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVudUd0ayk6CihXZWJDb3JlOjpQb3B1cE1lbnVH
dGs6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKFdlYkNvcmU6OlBvcHVw
TWVudUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjpkaXNj
b25uZWN0Q2xpZW50KToKKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVudUl0ZW1BY3RpdmF0ZWQp
OgooV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQpOgooV2ViQ29yZTo6UG9wdXBN
ZW51R3RrOjptZW51UG9zaXRpb25GdW5jdGlvbik6CihXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1l
bnVSZW1vdmVJdGVtKToKKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgooV2Vi
Q29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgoqIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1l
bnVHdGsuY3BwOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVH
dGspOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3RrOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51R3RrOjpzYXZlUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmg6IEFk
ZGVkLgoKaGFpa3U6CgoqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcDoKKFdlYkNv
cmU6OkhhaWt1UG9wdXA6OkhhaWt1UG9wdXApOgooV2ViQ29yZTo6SGFpa3VQb3B1cDo6fkhhaWt1
UG9wdXApOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OlBvcHVwTWVudUhhaWt1KToKKFdlYkNv
cmU6OlBvcHVwTWVudUhhaWt1Ojp+UG9wdXBNZW51SGFpa3UpOgooV2ViQ29yZTo6UG9wdXBNZW51
SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OnNob3cp
OgooV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmhpZGUpOgooV2ViQ29yZTo6UG9wdXBNZW51SGFp
a3U6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBwbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5o
OiBBZGRlZC4KKFdlYkNvcmU6OlBvcHVwTWVudUhhaWt1OjpkaXNjb25uZWN0Q2xpZW50KToKKFdl
YkNvcmU6OlBvcHVwTWVudUhhaWt1OjpjbGllbnQpOgoqIHBsYXRmb3JtL2hhaWt1L1NlYXJjaFBv
cHVwTWVudUhhaWt1LmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpTZWFyY2hQ
b3B1cE1lbnVIYWlrdSk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OnBvcHVwTWVudSk6CiogcGxhdGZvcm0vaGFpa3UvU2Vh
cmNoUG9wdXBNZW51SGFpa3UuaDogQWRkZWQuCgptYWM6CgoqIFdlYkNvcmUuZXhwLmluOgoqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLmg6IEFkZGVkLgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpkaXNjb25uZWN0Q2xpZW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xpZW50KToKKiBwbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMpOgooV2ViQ29yZTo6
UG9wdXBNZW51TWFjOjp+UG9wdXBNZW51TWFjKToKKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6Y2xl
YXIpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CihXZWJDb3JlOjpQb3B1cE1l
bnVNYWM6OnNob3cpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6dXBkYXRlRnJvbUVsZW1lbnQpOgooV2ViQ29yZTo6UG9wdXBNZW51TWFjOjpp
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CiogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVw
TWVudU1hYy5oOiBBZGRlZC4KKiBwbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tOgoo
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpTZWFyY2hQb3B1cE1lbnVNYWMpOgooV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51TWFjOjpwb3B1cE1lbnUpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51TWFjOjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6c2F2ZVJlY2Vu
dFNlYXJjaGVzKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJj
aGVzKToKCnF0OgoKKiBXZWJDb3JlLnBybzoKKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHA6
CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9wdXBNZW51UXQpOgooV2ViQ29yZTo6UG9wdXBNZW51
UXQ6On5Qb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVu
dCk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6
aGlkZSk6CihXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJvbUVsZW1lbnQpOgoqIHBsYXRm
b3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgoqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQ
b3B1cC5oOgoqIHBsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CihXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVRdDo6cG9wdXBNZW51KToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVF0OjpzYXZlUmVj
ZW50U2VhcmNoZXMpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCk6CiogcGxhdGZvcm0v
cXQvU2VhcmNoUG9wdXBNZW51UXQuaDogQWRkZWQuCgp3aW46CgoqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgooV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpQb3B1cE1lbnVXaW4pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp+UG9w
dXBNZW51V2luKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NOYW1lKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmhpZGUpOgooV2ViQ29yZTo6UG9w
dXBNZW51V2luOjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUpOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzZXRGb2N1c2VkSW5kZXgpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp2aXNpYmxlSXRl
bXMpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpsaXN0SW5kZXhBdFBvaW50KToKKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6Zm9jdXNlZEluZGV4KToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9j
dXNGaXJzdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmZvY3VzTGFzdCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OmRvd24pOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp1cCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OmludmFsaWRhdGVJdGVtKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6
Y2xpZW50UmVjdCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEp
OgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpyZWR1Y2VXaGVlbERlbHRhKToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24pOgooV2ViQ29yZTo6UG9wdXBNZW51
V2luOjp1cGRhdGVGcm9tRWxlbWVudCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToK
KFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6dmFsdWVDaGFuZ2VkKToKKFdlYkNvcmU6OlBvcHVwTWVu
dVdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpy
ZWdpc3RlckNsYXNzKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6UG9wdXBNZW51V25kUHJvYyk6
CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnduZFByb2MpOgoqIHBsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uaDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNsaWVudCk6CihXZWJDb3Jl
OjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhcik6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46Oml0ZW1I
ZWlnaHQpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjp3aW5kb3dSZWN0KToKKFdlYkNvcmU6OlBv
cHVwTWVudVdpbjo6cG9wdXBIYW5kbGUpOgooV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzZXRXYXND
bGlja2VkKToKKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2FzQ2xpY2tlZCk6CihXZWJDb3JlOjpQ
b3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNj
cm9sbE9mZnNldCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndoZWVsRGVsdGEpOgooV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjpzY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSk6CihXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnNldFNjcm9sbGJhckNhcHR1cmluZ01vdXNlKToKKiBwbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6U2VhcmNo
UG9wdXBNZW51V2luKToKKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6ZW5hYmxlZCk6CihXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVXaW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CiogcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVu
dVdpbi5oOiBBZGRlZC4KCnd4OgoKKiBwbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHA6CihXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6UG9wdXBNZW51V3g6On5Q
b3B1cE1lbnVXeCk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6ZGlzY29ubmVjdENsaWVudCk6CihX
ZWJDb3JlOjpQb3B1cE1lbnVXeDo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6T25NZW51
SXRlbVNlbGVjdGVkKToKKFdlYkNvcmU6OlBvcHVwTWVudVd4OjpoaWRlKToKKFdlYkNvcmU6OlBv
cHVwTWVudVd4Ojp1cGRhdGVGcm9tRWxlbWVudCk6CiogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3gu
aDogQWRkZWQuCihXZWJDb3JlOjpQb3B1cE1lbnVXeDo6Y2xpZW50KToKKiBwbGF0Zm9ybS93eC9T
ZWFyY2hQb3B1cE1lbnVXeC5jcHA6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNo
UG9wdXBNZW51V3gpOgooV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OnNhdmVSZWNlbnRTZWFy
Y2hlcyk6CihXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjplbmFibGVkKToKKFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudVd4Ojpwb3B1cE1lbnUpOgoqIHBsYXRmb3JtL3d4L1NlYXJjaFBvcHVwTWVudVd4Lmg6
IEFkZGVkLgoKQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRp
bmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFz
c2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0
bwppbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgoKV2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3Jl
YXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KToKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgoKV2ViS2l0L2VmbDoKCiogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50RWZsOjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoK
V2ViS2l0L2d0azoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgoKV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVw
TWVudSk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCiog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CgpXZWJLaXQvcXQ6CgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXQv
d2luOgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CihXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudSk6CihXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudSk6CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6Cgoq
IFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoK
V2ViS2l0MjoKCkNsYXNzZXMgV2ViUG9wdXBNZW51IGFuZCBXZWJTZWFyY2hQb3B1cE1lbnUgaW5o
ZXJpdCBmcm9tIFBvcHVwTWVudSBhbmQKU2VhcmNoUG9wdXBNZW51IHJlc3BlY3RpdmVseS4gQXQg
dGhpcyBwb2ludCB0aGV5IGFyZSBqdXN0IGVtcHR5IGltcGxlbWVudGF0aW9ucy4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2Vi
UG9wdXBNZW51OjpXZWJQb3B1cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6On5XZWJQb3B1
cE1lbnUpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmRpc2Nvbm5lY3RDbGllbnQpOgooV2ViS2l0
OjpXZWJQb3B1cE1lbnU6OnNob3cpOgooV2ViS2l0OjpXZWJQb3B1cE1lbnU6OmhpZGUpOgooV2Vi
S2l0OjpXZWJQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KToKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1
cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudSk6CihXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6
cG9wdXBNZW51KToKKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNo
ZXMpOgooV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CihX
ZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CiogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaDogQWRkZWQuCgpBcyBDaHJvbWVDbGllbnQgd2Fz
IG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVw
TWVudQppbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21l
Q2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCmltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMu
CgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6
CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpidWlsZCBpc3N1ZXM6CgoqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjc5ICsrKysr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgICA4ICsKIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAxNCArLQogV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrCiBXZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKy0KIFdlYkNv
cmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArCiBX
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkg
KwogV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAg
MTc2ICstLS0tLS0tLS0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmggICAg
ICAgICAgICAgICAgIHwgICAyMSArLQogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJy
ZXcuY3BwICAgICAgICAgICAgfCAgIDMwICsrLQogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1BvcHVw
TWVudUJyZXcuaCAgICAgICAgICAgICAgfCAgIDUzICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vYnJl
dy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcCAgICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9y
bS9icmV3L1NlYXJjaFBvcHVwTWVudUJyZXcuaCAgICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgICAgfCAgIDIzICstCiBXZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmggICAgICB8ICAgMTkgKysK
IC4uLi9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5jcHAgIHwgICAx
OCArLQogLi4uL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmggICAg
fCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmNwcCAgICAgICAg
ICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaCAgICAg
ICAgICAgICAgICB8ICAgNTMgKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBN
ZW51RWZsLmNwcCAgICAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQ
b3B1cE1lbnVFZmwuaCAgICAgICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
b3B1cE1lbnVHdGsuY3BwICAgICAgICAgICAgICB8ICAgMjUgKy0KIFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL1BvcHVwTWVudUd0ay5oICAgICAgICAgICAgICAgIHwgICA2NyArKysrKwogV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNwcCAgICAgICAgfCAgIDE5ICstCiBXZWJD
b3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaCAgICAgICAgICB8ICAgNDQgKysr
CiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmNwcCAgICAgICAgICB8ICAg
MzEgKystCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmggICAgICAgICAg
ICB8ICAgNTUgKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlr
dS5jcHAgICAgfCAgIDE4ICstCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVu
dUhhaWt1LmggICAgICB8ICAgNDQgKysrCiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVN
YWMuaCAgICAgICAgICAgICAgICB8ICAgNjIgKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Bv
cHVwTWVudU1hYy5tbSAgICAgICAgICAgICAgIHwgICAyMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2VhcmNoUG9wdXBNZW51TWFjLmggICAgICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tICAgICAgICAgfCAgIDE4ICstCiBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCAgICAgICAgICAgICAgICB8ICAgMjUgKy0KIFdl
YkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCAgICAgICAgICAgICAgICAgIHwgICA0OSAr
KysrCiBXZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oICAgICAgICAgICB8
ICAgIDIgKy0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuY3BwICAgICAg
ICAgIHwgICAyMCArLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFyY2hQb3B1cE1lbnVRdC5oICAg
ICAgICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNw
cCAgICAgICAgICAgICAgfCAgIDY1ICsrKy0tLQogV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmggICAgICAgICAgICAgICAgfCAgIDk4ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0v
d2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAgICAgICAgIHwgICAxOCArLQogV2ViQ29yZS9wbGF0
Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmggICAgICAgICAgfCAgIDQ0ICsrKwogV2ViQ29y
ZS9wbGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAgICAgICAgICAgICAgICAgfCAgIDI5ICstCiBX
ZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmggICAgICAgICAgICAgICAgICB8ICAgNjIg
KysrKysKIFdlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwICAgICAgICAg
IHwgICAxOCArLQogV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oICAgICAg
ICAgICAgfCAgIDQ0ICsrKwogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwICAg
ICAgICAgICAgICAgfCAgICA3ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
ICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHAgIHwgICAxNyArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmggICAgfCAgICAzICstCiBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggICAgICAgICAgICAgfCAgICA4ICsKIFdlYktp
dC9lZmwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwog
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwICAgICAgfCAgIDE4
ICsrCiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oICAgICAgICB8
ICAgIDUgKwogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE3ICsrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAgICAgICB8ICAgMTkgKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmggICAgICAgIHwgICAxMSArCiBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5jcHAgIHwgICAxOCArKwogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmggICAgfCAgICA1ICsKIFdlYktpdC9tYWMvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKwogV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICAgICAgfCAgICA2ICstCiBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSAgICAgICB8ICAgMjEgKystCiBXZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysK
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAx
OCArKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICAgICAgICAg
fCAgICA1ICsKIFdlYktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNyArKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwICAgICAgfCAgIDE4ICsrCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oICAgICAgICB8ICAgIDUgKwogV2ViS2l0L3d4L0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrCiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5jcHAgICAgICAgICB8ICAgMTggKysKIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmggICAgICAgICAgIHwgICAgNSArCiBXZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDEgKysrCiBXZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAgMTYgKysKIC4uLi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgIHwgICAxNyArKwogLi4u
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgfCAgICA0ICsK
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIHwgICA1
NiArKysrCiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51Lmgg
ICB8ICAgNDggKysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAg
ICAgICAgICAgfCAgIDUwICsrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNl
YXJjaFBvcHVwTWVudS5oIHwgICA0NCArKysKIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKwogODcgZmlsZXMgY2hhbmdlZCwgMjE5NyBp
bnNlcnRpb25zKCspLCAzNzkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNv
cmUvcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVtLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVH
dGsuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51
SGFpa3UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvU2VhcmNo
UG9wdXBNZW51SGFpa3UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0vbWFj
L1BvcHVwTWVudU1hYy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2VhcmNoUG9wdXBNZW51TWFjLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3Jt
L3F0L1BvcHVwTWVudVF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL3F0
L1NlYXJjaFBvcHVwTWVudVF0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGxhdGZvcm0v
d2luL1NlYXJjaFBvcHVwTWVudVdpbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0
Zm9ybS93eC9Qb3B1cE1lbnVXeC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9y
bS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNo
UG9wdXBNZW51LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFkNTM4ZS4uYTlkZTg5MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyODIgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAg
ICAgQ2xhc3NlcyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudSBoYXZlIGJlZW4gbWFkZSBw
dXJlIHZpcnR1YWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudTo6flBvcHVwTWVudSk6CisgICAgICAgICogcGxhdGZvcm0vU2Vh
cmNoUG9wdXBNZW51Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6On5TZWFy
Y2hQb3B1cE1lbnUpOgorCisgICAgICAgIENsYXNzZXMgUmVuZGVyTWVudUxpc3QgYW5kIFJlbmRl
clRleHlDb250cm9sU2luZ2xlTGluZSBoYXZlIGJlZW4gY2hhbmdlZCB0byB1c2UKKyAgICAgICAg
dGhlIG5ldyBwdXJlIHZpcnR1YWwgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWVudUxpc3Q6OmFkanVzdElubmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTWVudUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6On5SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoaWRlUG9wdXApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgorCisg
ICAgICAgIENocm9tZSBhbmQgQ2hyb21lQ2xpZW50IHdlcmUgbWFkZSByZXNwb25zaWJsZSBmb3Ig
cHJvdmlkaW5nIGluc3RhbmNlcyBvZiBjbGFzc2VzCisgICAgICAgIFBvcHVwTWVudSBhbmQgU2Vh
cmNoUG9wdXBNZW51IHRvIGl0cyB1c2Vycy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpzaG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5UG9wdXBNZW51OjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
UG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVBv
cHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNlYXJj
aFBvcHVwTWVudTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5U2VhcmNoUG9w
dXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlTZWFy
Y2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0
eVNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9t
ZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAo
V2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6
Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hy
b21lQ2xpZW50Lmg6CisKKyAgICAgICAgT3JpZ2luYWwgY29udGVudHMgb2YgZmlsZXMgUG9wdXBN
ZW51LmggYW5kIFNlYXJjaFBvcHVwTWVudS5oIGhhdmUgYmVlbiBzcGxpdGVkCisgICAgICAgIGlu
IHNldmVyYWwgZmlsZXMsIHR3byBmb3IgZWFjaCBwbGF0Zm9ybSAoUG9wdXBNZW51WFhYLmggYW5k
IFNlYXJjaFBvcHVwTWVudVhYWC5oKS4KKyAgICAgICAgRWFjaCBvZiBuZXcgdGhlIGZpbGVzIGNv
bnRhaW4gdGhlIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZvcm0gUG9wdXBNZW51IG9y
CisgICAgICAgIFNlYXJjaFBvcHVwTWVudSBhbmQgYXJlIHNwZWNpZmljIGZvciB0aGUgY29ycmVz
cG9uZGluZyBwbGF0Zm9ybS4KKworICAgICAgICBicmV3OgorCisgICAgICAgICogcGxhdGZvcm0v
YnJldy9Qb3B1cE1lbnVCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6
OlBvcHVwTWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6flBvcHVw
TWVudUJyZXcpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51QnJldzo6ZGlzY29ubmVjdENs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVCcmV3OjpzaG93KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51QnJldzo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2JyZXcvUG9w
dXBNZW51QnJldy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUJyZXc6OmNs
aWVudCk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnNhdmVSZWNlbnRTZWFyY2hl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3Ojpsb2FkUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51QnJldzo6U2VhcmNoUG9w
dXBNZW51QnJldyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVCcmV3OjplbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUJyZXc6OnBvcHVwTWVudSk6
CisgICAgICAgICogcGxhdGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3Lmg6IEFkZGVkLgor
CisgICAgICAgIGNocm9taXVtOgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudUNocm9taXVtOjpQb3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVDaHJvbWl1bTo6flBvcHVwTWVudUNocm9taXVtKToKKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudUNocm9taXVtOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVt
Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVDaHJvbWl1
bTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUNocm9taXVtOjpjbGll
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1NlYXJjaFBvcHVwTWVudUNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpTZWFyY2hQ
b3B1cE1lbnVDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bTo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNocm9t
aXVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUNocm9taXVt
OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
Q2hyb21pdW06OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaDogQWRkZWQuCisKKyAgICAgICAgZWZsOgorCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1l
bnVFZmw6On5Qb3B1cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpz
aG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6aGlkZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1BvcHVwTWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVm
bDo6Y2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9wdXBNZW51
RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2VudFNlYXJjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6bG9hZFJlY2VudFNlYXJj
aGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oOiBBZGRlZC4KKworICAg
ICAgICBndGs6CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvUG9wdXBNZW51R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6
UG9wdXBNZW51R3RrKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6flBvcHVwTWVu
dUd0ayk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6OnNob3cpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51R3RrOjpoaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dUd0azo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3Rr
OjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUd0azo6bWVu
dUl0ZW1BY3RpdmF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51VW5t
YXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51R3RrOjptZW51UG9zaXRpb25GdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVHdGs6Om1lbnVSZW1vdmVJdGVtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51R3RrOjpjbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
ZWFyY2hQb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
R3RrOjpTZWFyY2hQb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51R3Rr
OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51R3RrOjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmg6IEFkZGVkLgorCisgICAgICAgIGhhaWt1OgorCisgICAgICAgICogcGxhdGZvcm0vaGFp
a3UvUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGFpa3VQb3B1cDo6SGFp
a3VQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpIYWlrdVBvcHVwOjp+SGFpa3VQb3B1cCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6On5Qb3B1cE1lbnVIYWlrdSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVIYWlrdTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVI
YWlrdTo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVIYWlrdTo6dXBkYXRlRnJv
bUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5lY3RDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51SGFpa3U6OmNsaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OlNlYXJjaFBvcHVwTWVudUhhaWt1KToKKyAgICAgICAg
KFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudUhhaWt1OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51SGFpa3U6OmxvYWRSZWNlbnRTZWFyY2hlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6ZW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVIYWlrdTo6cG9wdXBNZW51KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oOiBBZGRlZC4KKworICAgICAg
ICBtYWM6CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVu
dU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6ZGlzY29ubmVj
dENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OmNsaWVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTWVudU1hYzo6UG9wdXBNZW51TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1h
Yzo6flBvcHVwTWVudU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UG9wdXBNZW51TWFjOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dU1hYzo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVNYWM6OnVwZGF0ZUZyb21F
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudU1hYzo6aXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVN
YWMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6U2VhcmNoUG9wdXBNZW51
TWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6cG9wdXBNZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudU1hYzo6ZW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVNYWM6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisK
KyAgICAgICAgcXQ6CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9Qb3B1cE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6UG9w
dXBNZW51UXQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6On5Qb3B1cE1lbnVRdCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVRdDo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVRdDo6dXBkYXRlRnJv
bUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0Lmg6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudVF0OjpTZWFyY2hQb3B1cE1lbnVRdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnVRdDo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudVF0OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51UXQ6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnVRdDo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBN
ZW51UXQuaDogQWRkZWQuCisKKyAgICAgICAgd2luOgorCisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OlBvcHVwTWVudVdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVXaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjpkaXNjb25uZWN0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6cG9wdXBDbGFzc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aGlkZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldEZvY3VzZWRJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnZpc2libGVJdGVtcyk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVXaW46Omxpc3RJbmRleEF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51V2luOjpmb2N1c2VkSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpmb2N1c0ZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Zm9jdXNM
YXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6ZG93bik6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdp
bjo6aW52YWxpZGF0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpjbGll
bnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6aW5jcmVtZW50V2hlZWxE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVsRGVsdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxUb1JldmVhbFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnVwZGF0ZUZyb21FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51V2luOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVXaW46OnJlZ2lzdGVyQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2lu
OjpQb3B1cE1lbnVXbmRQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d25k
UHJvYyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTWVudVdpbjo6c2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdp
bjo6aXRlbUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OndpbmRvd1Jl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpwb3B1cEhhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNldFdhc0NsaWNrZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBNZW51V2luOjp3YXNDbGlja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudVdpbjo6c2V0U2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdp
bjo6c2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6d2hlZWxE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbGJhckNhcHR1cmlu
Z01vdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2V0U2Nyb2xsYmFyQ2Fw
dHVyaW5nTW91c2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpTZWFyY2hQb3B1cE1l
bnVXaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjpwb3B1cE1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V2luOjplbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVdpbjo6bG9hZFJlY2VudFNlYXJjaGVzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmg6IEFkZGVkLgorCisg
ICAgICAgIHdrOgorCisgICAgICAgICogcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KToKKyAgICAgICAgKFdlYkNv
cmU6OlBvcHVwTWVudVd4Ojp+UG9wdXBNZW51V3gpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V3g6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6
OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1TZWxlY3Rl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXeDo6aGlkZSk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cE1lbnVXeDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L3d4L1BvcHVwTWVudVd4Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V3g6
OmNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OlNlYXJjaFBvcHVwTWVudVd4KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudVd4OjpzYXZlUmVjZW50U2VhcmNoZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51V3g6OmxvYWRSZWNlbnRTZWFyY2hl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6ZW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVXeDo6cG9wdXBNZW51KToKKyAgICAgICAgKiBw
bGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oOiBBZGRlZC4KKworCisKIDIwMTAtMDctMjkg
IEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU3RldmUgQmxvY2suCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBkMzViNzRhLi5jNTU3YWIxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI0
NjUsNiArMjQ2NSw3IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bVNjcmVlbkd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAg
XAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAgXApA
QCAtMjQ3Myw2ICsyNDc0LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9T
Y3JvbGxWaWV3R3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmggXAog
CVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAgXAogCVdlYkNvcmUvcGxh
dGZvcm0vZ3RrL1NoYXJlZFRpbWVyR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU291
bmRHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDQyNjJkODEuLjUxZDk5MzkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjUwLDYg
KzI1MCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlMjdjaGVja0ludGVncml0eUJlZm9y
ZU9wZW5pbmdFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U0b3BlbkVSS05TXzZTdHJpbmdF
CiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTVjbG9zZUV2CiBfX1pON1dlYkNvcmUxMkljb25E
YXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4SWNvbkRhdGFiYXNlQ2xpZW50RQorX19aTjdXZWJDb3Jl
MTJQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxMlBy
aW50Q29udGV4dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19aTjdXZWJDb3JlMTJQ
cmludENvbnRleHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlGbG9hdFNpemVFCiBf
X1pON1dlYkNvcmUxMlByaW50Q29udGV4dDE2aXNQYWdlQm94VmlzaWJsZUVQTlNfNUZyYW1lRWkK
QEAgLTQxMSw2ICs0MTIsNyBAQCBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVBLY1Jp
CiBfX1pON1dlYkNvcmUxOGRlcHJlY2F0ZWRQYXJzZVVSTEVSS05TXzZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRQogX19aTjdX
ZWJDb3JlMThwbHVnaW5TY3JpcHRPYmplY3RFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTNKU0hUTUxF
bGVtZW50RQorX19aTjdXZWJDb3JlMThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1l
bnVDbGllbnRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxNnJlc3VtZUFuaW1h
dGlvbnNFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE3
c3VzcGVuZEFuaW1hdGlvbnNFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9u
Q29udHJvbGxlcjIwcGF1c2VBbmltYXRpb25BdFRpbWVFUE5TXzEyUmVuZGVyT2JqZWN0RVJLTlNf
NlN0cmluZ0VkCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDY5ODNiYzguLmU3OTc0NzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMTIyLDYgKzIxMjIsNyBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1N
YWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hy
b21pdW1XaW4uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1
cE1lbnVDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NlYXJj
aFBvcHVwTWVudUNocm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1No
YXJlZFRpbWVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9T
b3VuZENocm9taXVtUG9zaXguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9T
b3VuZENocm9taXVtV2luLmNwcCcsCkBAIC0yNjE0LDYgKzI2MTUsNyBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvUGxhdGZvcm1Nb3VzZUV2ZW50TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
UGxhdGZvcm1TY3JlZW5NYWMubW0nLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Qb3B1cE1l
bnVNYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1BvcHVwTWVudU1hYy5tbScsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0nLApAQCAtMjYyMSw2ICsy
NjIzLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbScsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbScsCisgICAgICAgICAgICAncGxh
dGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2hh
cmVkQnVmZmVyTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvU2hhcmVkVGltZXJN
YWMubW0nLApAQCAtMjc3MSw2ICsyNzc0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9Q
bGF0Zm9ybU1vdXNlRXZlbnRRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BsYXRm
b3JtU2NyZWVuUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL3F0L1FXZWJQb3B1cC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0
L1FXZWJQb3B1cC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNw
cCcsCkBAIC0yNzgxLDYgKzI3ODUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1Njcm9s
bGJhclRoZW1lUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9TY3JvbGxiYXJUaGVt
ZVF0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vcXQvU2hhcmVkQnVmZmVyUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9xdC9TaGFyZWRUaW1lclF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvU291
bmRRdC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggMTI4YWM0ZS4uZmUyNjFhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xNzA5LDYgKzE3MDksNyBAQCBI
RUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgg
XAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0
Zm9ybVRvdWNoUG9pbnQuaCBcCisgICAgcGxhdGZvcm0vUG9wdXBNZW51LmggXAogICAgIHBsYXRm
b3JtL3F0L0NsaXBib2FyZFF0LmggXAogICAgIHBsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50Lmgg
XAogICAgIHBsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIFwKQEAgLTE3MTgsNiArMTcx
OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1Njcm9sbGJhci5oIFwKICAgICBwbGF0
Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmggXAorICAgIHBsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oIFwKICAgICBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggXAogICAgIHBs
YXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmggXApAQCAtMzI5Nyw2ICszMjk5LDggQEAgSEVB
REVSUyArPSBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVy
cm9ycy5oIFwKICAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmggXAogICAgIC4uL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggXAogICAgIC4uL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggXApAQCAtMzM2OSw2ICszMzczLDggQEAgU09VUkNF
UyArPSBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBcCiAgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCYWNrRm9yd2FyZENvbnRyb2xsZXJDbGllbnQuY3BwIFwKKyAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJF
cnJvcnNRdC5jcHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRV
cGRhdGVEcmF3aW5nQXJlYS5jcHAgXAogICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBjN2U0YzgwLi4wMDZhNzBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTIzNzIwLDYgKzIzNzIwLDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cUG9wdXBNZW51V2luLmgiDQor
CQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cd2luXFNjcm9sbGJhclRoZW1lU2FmYXJpLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9G
aWxlPg0KQEAgLTIzNzQwLDYgKzIzNzQ0LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJ
CQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2VhcmNoUG9wdXBN
ZW51V2luLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNoYXJlZEJ1ZmZlcldpbi5jcHAiDQogCQkJCQk+DQog
CQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGUwNTIyM2UuLmFjMmQ4Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC00Miw3ICs0Miw3IEBACiAJCTA2NUFENEY1MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDY1QUQ0RjIwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDY1
QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjVBRDRGMzBCMEMyRURB
MDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMDY1QUQ0Rjcw
QjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY1QUQ0RjQwQjBDMkVEQTAwNUEyQjFE
IC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTA2NjhFMThCMEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1l
bnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhF
MTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsKKwkJMDY2OEUxOEIwQURE
OTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NjhF
MTkwMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4RTBBREQ5NjQwMDA0MTI4RTAgLyog
UG9wdXBNZW51TWFjLm1tICovOyB9OwogCQkwNjZDNzcyQjBBQjYwM0I3MDAyMzhDQzQgLyogRmls
ZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2NkM3NzJEMEFCNjAzRDIwMDIz
OENDNCAvKiBGaWxlQ2hvb3Nlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJDMEFCNjAzRDIwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlck1h
Yy5tbSAqLzsgfTsKQEAgLTM1OTMsMTIgKzM1OTMsMTIgQEAKIAkJQUI0Q0I0RUIwQjhCREEzRDAw
OUY0MEIwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNENCNEVBMEI4QkRBM0QwMDlGNDBCMCAvKiBK
U0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmggKi87IH07CiAJCUFCNjdEMUE4MDk3RjNBRTMwMEY5
MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBQjY3RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4
dENvbnRyb2wuY3BwICovOyB9OwogCQlBQjY3RDFBOTA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVy
VGV4dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFCNjdEMUE3MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5oICovOyB9
OwotCQlBQjcxNzA4OTBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA4ODBCMzExODA4
MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggKi87IH07CisJCUFCNzE3MDg5MEIzMTE4MDgw
MDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFCNzE3MDg4MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1
cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBQjcxNzBBMDBCMzExOTNCMDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI3MTcwOUYwQjMxMTkz
QjAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSAqLzsgfTsKIAkJQUJBRjIyMDgwQzAz
QjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFCQUYyMjA3MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMu
bW0gKi87IH07CiAJCUFCQjU0MTlFMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0MTlD
MEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmNwcCAqLzsgfTsKIAkJQUJCNTQxOUYw
QUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0MTlEMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5k
ZXJMaXN0Qm94LmggKi87IH07Ci0JCUFCQzEyODc3MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1l
bnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLzsgfTsKKwkJ
QUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJDMTI4NzYwQjMzQUE2RDAwQzY5
M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUFCRERGRTc5MEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
QkRERkU3MzBBNUM2RTZGMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuY3BwICovOyB9OwogCQlB
QkRERkU3QTBBNUM2RTcwMDBBM0UxMUQgLyogUmVuZGVyTWVudUxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCRERGRTc0MEE1QzZFNzAwMEEzRTEx
RCAvKiBSZW5kZXJNZW51TGlzdC5oICovOyB9OwogCQlBQkZFN0UxMjBEMzJGQUY2MDA2NkY0RDIg
LyogTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUJGRTdFMTAwRDMyRkFGNTAwNjZGNEQyIC8qIE1lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcCAqLzsgfTsKQEAgLTUwMTksNiArNTAxOSw4IEBACiAJCUQyM0NBNTVEMEFC
MEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyogSlNS
YW5nZUV4Y2VwdGlvbi5oICovOyB9OwogCQlEMjNDQTU1RjBBQjBFQUI2MDA1MTA4QTUgLyogSlNS
YW5nZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEMjNDQTU1RTBBQjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAg
Ki87IH07CiAJCUQyM0NBNTZDMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIzQ0E1NkIwQUIw
RUI4RDAwNTEwOEE1IC8qIFJhbmdlRXhjZXB0aW9uLmggKi87IH07CisJCUQzOUQwMDZEMTFGOEUz
MDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVN
YWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlE
MzlEMDA5RDExRjkwN0U2MDA2MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzlEMDA5QzExRjkwN0U2MDA2
MDQxRjIgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tp
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1
MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRl
bnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwICovOyB9OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9
OwpAQCAtMTA2OTgsNiArMTA3MDAsOCBAQAogCQlEMjNDQTU1QzBBQjBFQUFFMDA1MTA4QTUgLyog
SlNSYW5nZUV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNS
YW5nZUV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMjNDQTU1RTBB
QjBFQUI2MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNSYW5nZUV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQyM0NBNTZCMEFCMEVCOEQwMDUxMDhBNSAvKiBSYW5nZUV4Y2VwdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2VFeGNlcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8q
IFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1l
bnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDM5RDAwOUMxMUY5MDdFNjAw
NjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZWFyY2hQb3B1cE1lbnVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlF
QiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyMjQ4LDEwICsxMjI1MiwxMiBAQAogCQkJCTRCMjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAv
KiBQYXN0ZWJvYXJkTWFjLm1tICovLAogCQkJCTkzNUM0NzZGMDlBQzRENzMwMEE2QUFCNCAvKiBQ
bGF0Zm9ybU1vdXNlRXZlbnRNYWMubW0gKi8sCiAJCQkJQkM5NEQxMDcwQzI3NEY4ODAwNkJDNjE3
IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovLAorCQkJCUQzOUQwMDZDMTFGOEUzMDgwMDYwNDFG
MiAvKiBQb3B1cE1lbnVNYWMuaCAqLywKIAkJCQkwNjY4RTE4RTBBREQ5NjQwMDA0MTI4RTAgLyog
UG9wdXBNZW51TWFjLm1tICovLAogCQkJCUU0RDY4Nzc2MEVEN0FFM0QwMDZFQTk3OCAvKiBQdXJn
ZWFibGVCdWZmZXJNYWMuY3BwICovLAogCQkJCTQ0N0Q2OTAxMEZBNjI2ODEwMDE1Q0NCMSAvKiBS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLywKIAkJCQk0NDdENjkwMjBGQTYyNjgxMDAxNUND
QjEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tICovLAorCQkJCUQzOUQwMDlDMTFGOTA3
RTYwMDYwNDFGMiAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLywKIAkJCQkxQ0UyNEY5NjBEN0NB
RjBFMDA3RTA0QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1tICovLAogCQkJCUJDQUE5MEMyMEE3RUJB
NjAwMDhCMTIyOSAvKiBTY3JvbGxiYXIuY3BwICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFC
Njk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMTk4ODUsNiArMTk4OTEsOCBAQAog
CQkJCUM1NzJFRTBFMTIwMUM3MzYwMDdEOEY4MiAvKiBJREJJbmRleEJhY2tlbmRJbXBsLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNTcyRUUwRjEyMDFDNzM2MDA3RDhGODIgLyogSURCSW5kZXhCYWNr
ZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTcyRUUxRjEyMDFDOUJDMDA3RDhG
ODIgLyogSlNJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDM5RDAwNkQxMUY4RTMwODAw
NjA0MUYyIC8qIFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDM5RDAwOUQxMUY5
MDdFNjAwNjA0MUYyIC8qIFNlYXJjaFBvcHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDk5MzhiYmMuLmNjNjI3MTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBFcmljIFNlaWRlbCAo
ZXJpY0B3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzQwLDkgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkhh
bHRlckNsaWVudC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlJlc291cmNl
RXJyb3IuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogLyoKICBUaGlzIGZpbGUg
aG9sZHMgZW1wdHkgQ2xpZW50IHN0dWJzIGZvciB1c2UgYnkgV2ViQ29yZS4KQEAgLTU2LDYgKzU5
LDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRW1wdHlQb3B1cE1lbnUgOiBw
dWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJ
bnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KSB7fQorICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkge30K
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSB7fQorICAgIHZpcnR1YWwgdm9p
ZCBkaXNjb25uZWN0Q2xpZW50KCkge30KK307CisKK2NsYXNzIEVtcHR5U2VhcmNoUG9wdXBNZW51
IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBQb3B1cE1l
bnUqIHBvcHVwTWVudSgpIHsgcmV0dXJuICZtX3BvcHVwOyB9CisgICAgdmlydHVhbCB2b2lkIHNh
dmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYpIHt9CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHt9CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSB7
IHJldHVybiBmYWxzZTsgfQorCitwcml2YXRlOgorICAgIEVtcHR5UG9wdXBNZW51IG1fcG9wdXA7
Cit9OworCiBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgfkVtcHR5Q2hyb21lQ2xpZW50KCkgeyB9CkBAIC0xMDgsNiAr
MTMwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChG
cmFtZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEVtcHR5UG9wdXBNZW51KCkpOyB9CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVNlYXJjaFBvcHVwTWVudSgpKTsg
fQorCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgeyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcAppbmRleCAwYzY2OTI1Li5iZmYwMTAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC00ODIsNSArNDgyLDE5IEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpwYWludEN1c3Rv
bVNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQtPmNyZWF0ZVBvcHVwTWVudShjbGllbnQpOworfQorCitQYXNzUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoY2xpZW50KTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDUz
NzQ2OGEuLjMwZWRmMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0LDYgKzI1LDggQEAKICNpbmNs
dWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNlYXJj
aFBvcHVwTWVudS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCkBAIC00NCw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBJbnRSZWN0OwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBQ
b3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgU3RyaW5nOwogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQogICAgIGNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsKQEAgLTE0NCw2ICsxNDgsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5v
dGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OyAKICNlbmRpZgogCisgICAgICAgIGJvb2wgc2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICAgICAgUGFzc1JlZlB0cjxQ
b3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICAg
ICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBhZ2UqIG1fcGFn
ZTsKICAgICAgICAgQ2hyb21lQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3
OTViMjVjLi4wNGFmNzdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSwgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsNyAr
MjcsMTAgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VyUXVpcmtzLmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIlBvcHVwTWVu
dS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
QEAgLTUzLDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFJlY3Q7
CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOworICAgIGNsYXNzIFBvcHVwTWVudUNs
aWVudDsKICAgICBjbGFzcyBTdHJpbmc7CiAgICAgY2xhc3MgV2lkZ2V0OwogCkBAIC0yNTIsNiAr
MjU3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzTWlu
aW1pemVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpID0gMDsKKyAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKKwog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiAgICAg
fTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmggYi9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudS5oCmluZGV4IGQ5ZDI3NDAuLjhlYmJhMDMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1l
bnUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMjEsMTgwICsyMSwyMiBAQAogI2lmbmRlZiBQb3B1cE1lbnVfaAogI2RlZmluZSBQ
b3B1cE1lbnVfaAogCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIlBvcHVwTWVudUNs
aWVudC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
Ci0jaWZkZWYgX19PQkpDX18KLUBjbGFzcyBOU1BvcFVwQnV0dG9uQ2VsbDsKLSNlbHNlCi1jbGFz
cyBOU1BvcFVwQnV0dG9uQ2VsbDsKLSNlbmRpZgotI2VsaWYgUExBVEZPUk0oV0lOKQotI2luY2x1
ZGUgIlNjcm9sbGJhci5oIgotI2luY2x1ZGUgIlNjcm9sbGJhckNsaWVudC5oIgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLXR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKLXR5cGVkZWYgc3Ry
dWN0IEhEQ19fKiBIREM7Ci10eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxp
ZiBQTEFURk9STShRVCkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFF0QWJzdHJhY3RXZWJQ
b3B1cDsKLX0KLSNlbGlmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0
a01lbnU7Ci10eXBlZGVmIHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07Ci10eXBlZGVm
IHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKLSNpbmNsdWRlICJHUmVmUHRyR3RrLmgiCi0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDxnbGliLmg+Ci0jZWxpZiBQTEFURk9S
TShXWCkKLSNpZmRlZiBfX1dYTVNXX18KLSNpbmNsdWRlIDx3eC9tc3cvd2ludW5kZWYuaD4KLSNl
bmRpZgotY2xhc3Mgd3hNZW51OwotI2luY2x1ZGUgPHd4L2RlZnMuaD4KLSNpbmNsdWRlIDx3eC9l
dmVudC5oPgotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiUG9wdXBNZW51UHJp
dmF0ZS5oIgotI2VsaWYgUExBVEZPUk0oSEFJS1UpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBQb3B1cE1lbnVIYWlrdTsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZyYW1lVmlldzsKLWNsYXNzIFNjcm9sbGJhcjsKK2NsYXNzIEludFJlY3Q7CiAKLWNsYXNz
IFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVudT4KLSNpZiBQTEFURk9STShX
SU4pCi0gICAgICAgICAgICAgICAgLCBwcml2YXRlIFNjcm9sbGJhckNsaWVudAotI2VuZGlmCi0j
aWYgUExBVEZPUk0oV1gpCi0gICAgICAgICAgICAgICAgLCBwdWJsaWMgd3hFdnRIYW5kbGVyCi0j
ZW5kaWYKLXsKK2NsYXNzIFBvcHVwTWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFBvcHVwTWVudT4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlKFBvcHVw
TWVudUNsaWVudCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51KGNsaWVu
dCkpOyB9Ci0gICAgflBvcHVwTWVudSgpOwotICAgIAotICAgIHZvaWQgZGlzY29ubmVjdENsaWVu
dCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KLQotICAgIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0
JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKLSAgICB2b2lkIGhpZGUoKTsKLQotICAgIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICAKLSAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KLQotICAgIHN0YXRpYyBib29sIGl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgU2Ny
b2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhci5nZXQoKTsgfQot
Ci0gICAgc3RhdGljIExQQ1RTVFIgcG9wdXBDbGFzc05hbWUoKTsKLQotICAgIGJvb2wgdXAodW5z
aWduZWQgbGluZXMgPSAxKTsKLSAgICBib29sIGRvd24odW5zaWduZWQgbGluZXMgPSAxKTsKLQot
ICAgIGludCBpdGVtSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtSGVpZ2h0OyB9Ci0gICAg
Y29uc3QgSW50UmVjdCYgd2luZG93UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93UmVjdDsg
fQotICAgIEludFJlY3QgY2xpZW50UmVjdCgpIGNvbnN0OwotCi0gICAgaW50IHZpc2libGVJdGVt
cygpIGNvbnN0OwotCi0gICAgaW50IGxpc3RJbmRleEF0UG9pbnQoY29uc3QgSW50UG9pbnQmKSBj
b25zdDsKLQotICAgIGJvb2wgc2V0Rm9jdXNlZEluZGV4KGludCBpbmRleCwgYm9vbCBob3RUcmFj
a2luZyA9IGZhbHNlKTsKLSAgICBpbnQgZm9jdXNlZEluZGV4KCkgY29uc3Q7Ci0gICAgdm9pZCBm
b2N1c0ZpcnN0KCk7Ci0gICAgdm9pZCBmb2N1c0xhc3QoKTsKLQotICAgIHZvaWQgcGFpbnQoY29u
c3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDID0gMCk7Ci0KLSAgICBIV05EIHBvcHVwSGFuZGxl
KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cDsgfQotCi0gICAgdm9pZCBzZXRXYXNDbGlja2VkKGJv
b2wgYiA9IHRydWUpIHsgbV93YXNDbGlja2VkID0gYjsgfQotICAgIGJvb2wgd2FzQ2xpY2tlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2xpY2tlZDsgfQotCi0gICAgdm9pZCBzZXRTY3JvbGxPZmZz
ZXQoaW50IG9mZnNldCkgeyBtX3Njcm9sbE9mZnNldCA9IG9mZnNldDsgfQotICAgIGludCBzY3Jv
bGxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9mZnNldDsgfQotCi0gICAgYm9vbCBz
Y3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOwotCi0gICAgdm9pZCBpbmNyZW1lbnRXaGVlbERlbHRh
KGludCBkZWx0YSk7Ci0gICAgdm9pZCByZWR1Y2VXaGVlbERlbHRhKGludCBkZWx0YSk7Ci0gICAg
aW50IHdoZWVsRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX3doZWVsRGVsdGE7IH0KLQotICAgIGJv
b2wgc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNh
cHR1cmluZ01vdXNlOyB9Ci0gICAgdm9pZCBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29s
IGIpIHsgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3VzZSA9IGI7IH0KLSNlbmRpZgotCi1wcm90ZWN0
ZWQ6Ci0gICAgUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOwotICAgIAotcHJpdmF0ZToKLSAg
ICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7Ci0gICAgCi0jaWYgUExBVEZPUk0oTUFD
KQotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIHBvcHVsYXRlKCk7Ci0KLSAgICBSZXRhaW5Q
dHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7Ci0jZWxpZiBQTEFURk9STShRVCkKLSAgICBR
dEFic3RyYWN0V2ViUG9wdXAqIG1fcG9wdXA7Ci0jZWxpZiBQTEFURk9STShXSU4pCi0gICAgLy8g
U2Nyb2xsQmFyQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZChTY3JvbGxiYXIq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwg
Y29uc3QgSW50UmVjdCYpOwotICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyQ29ybmVyUHJlc2VudCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICB2b2lkIGNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6
ZShjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3Kik7Ci0gICAgdm9pZCBpbnZhbGlkYXRlSXRlbShp
bnQgaW5kZXgpOwotCi0gICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51V25kUHJv
YyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBz
dGF0aWMgdm9pZCByZWdpc3RlckNsYXNzKCk7Ci0KLSAgICBSZWZQdHI8U2Nyb2xsYmFyPiBtX3Nj
cm9sbGJhcjsKLSAgICBIV05EIG1fcG9wdXA7Ci0gICAgSERDIG1fREM7Ci0gICAgSEJJVE1BUCBt
X2JtcDsKLSAgICBib29sIG1fd2FzQ2xpY2tlZDsKLSAgICBJbnRSZWN0IG1fd2luZG93UmVjdDsK
LSAgICBpbnQgbV9pdGVtSGVpZ2h0OwotICAgIGludCBtX3Njcm9sbE9mZnNldDsKLSAgICBpbnQg
bV93aGVlbERlbHRhOwotICAgIGludCBtX2ZvY3VzZWRJbmRleDsKLSAgICBib29sIG1fc2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2U7Ci0gICAgYm9vbCBtX3Nob3dQb3B1cDsKLSNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICBJbnRQb2ludCBtX21lbnVQb3NpdGlvbjsKLSAgICBHUmVmUHRyPEd0a01lbnU+
IG1fcG9wdXA7Ci0gICAgSGFzaE1hcDxHdGtXaWRnZXQqLCBpbnQ+IG1faW5kZXhNYXA7Ci0gICAg
c3RhdGljIHZvaWQgbWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVu
dSopOwotICAgIHN0YXRpYyB2b2lkIG1lbnVVbm1hcHBlZChHdGtXaWRnZXQqLCBQb3B1cE1lbnUq
KTsKLSAgICBzdGF0aWMgdm9pZCBtZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCos
IGdpbnQqLCBnYm9vbGVhbiosIFBvcHVwTWVudSopOwotICAgIHN0YXRpYyB2b2lkIG1lbnVSZW1v
dmVJdGVtKEd0a1dpZGdldCosIFBvcHVwTWVudSopOwotI2VsaWYgUExBVEZPUk0oRUZMKSB8fCBQ
TEFURk9STShCUkVXTVApCi0gICAgRnJhbWVWaWV3KiBtX3ZpZXc7Ci0jZWxpZiBQTEFURk9STShX
WCkKLSAgICB3eE1lbnUqIG1fbWVudTsKLSAgICB2b2lkIE9uTWVudUl0ZW1TZWxlY3RlZCh3eENv
bW1hbmRFdmVudCYpOwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgUG9wdXBNZW51UHJp
dmF0ZSBwOwotI2VsaWYgUExBVEZPUk0oSEFJS1UpCi0gICAgUG9wdXBNZW51SGFpa3UqIG1fbWVu
dTsKLSNlbmRpZgotCisgICAgdmlydHVhbCB+UG9wdXBNZW51KCkge30KKyAgICB2aXJ0dWFsIHZv
aWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVt
ZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgPSAwOwogfTsK
IAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBQb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9w
dXBNZW51LmgKaW5kZXggNDI4NWNkZi4uZDFlY2QwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1NlYXJjaFBvcHVw
TWVudS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMywyNCArMjMsMjEgQEAKIAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdG9taWNTdHJpbmc7CiAKLWNsYXNzIFNlYXJj
aFBvcHVwTWVudSA6IHB1YmxpYyBQb3B1cE1lbnUgeworY2xhc3MgU2VhcmNoUG9wdXBNZW51IDog
cHVibGljIFJlZkNvdW50ZWQ8U2VhcmNoUG9wdXBNZW51PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7IH0KLQot
ICAgIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2b2lkIGxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7Ci0KLSAgICBib29sIGVuYWJsZWQoKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopOworICAgIHZpcnR1YWwgflNlYXJjaFBvcHVwTWVudSgp
IHt9CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxvYWRS
ZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBz
ZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgPSAwOwogfTsKIAog
fQogCi0jZW5kaWYKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L1BvcHVwTWVudUJyZXcuY3BwCmluZGV4IGViMDNjNjYuLjE4YjJiNDUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Qb3B1cE1lbnVCcmV3LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5jcHAKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwogICogQ29weXJpZ2h0IChDKSAyMDEw
IENvbXBhbnkgMTAwLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
Myw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUJyZXcuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5o
IgogI2luY2x1ZGUgIkNocm9tZUNsaWVudEJyZXcuaCIKQEAgLTMyLDIwICszMywyNSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogbWVudUxpc3QpCitQb3B1cE1lbnVCcmV3OjpQb3B1cE1lbnVCcmV3KFBvcHVwTWVudUNsaWVu
dCogbWVudUxpc3QpCiAgICAgOiBtX3BvcHVwQ2xpZW50KG1lbnVMaXN0KQogICAgICwgbV92aWV3
KDApCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVCcmV3Ojp+UG9w
dXBNZW51QnJldygpCiB7CiAgICAgLy8gVGVsbCBjbGllbnQgdG8gZGVzdHJveSBkYXRhIHJlbGF0
ZWQgdG8gdGhpcyBwb3B1cCBzaW5jZSB0aGlzIG9iamVjdCBpcwogICAgIC8vIGdvaW5nIGF3YXku
CiAgICAgaGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiBy
ZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51QnJldzo6ZGlz
Y29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgUG9w
dXBNZW51QnJldzo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGlu
dCBpbmRleCkKIHsKICAgICBBU1NFUlQobV9wb3B1cENsaWVudCk7CiAgICAgQ2hyb21lQ2xpZW50
QnJldyogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50QnJldyo+KHZpZXct
PmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKQEAgLTU1LDcgKzYxLDcgQEAg
dm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3
LCBpbnQgaW5kZXgpCiAgICAgY2hyb21lQ2xpZW50LT5jcmVhdGVTZWxlY3RQb3B1cChtX3BvcHVw
Q2xpZW50LCBpbmRleCwgcmVjdCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQg
UG9wdXBNZW51QnJldzo6aGlkZSgpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQ2hyb21l
Q2xpZW50QnJldyogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50QnJldyo+
KG1fdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAtNjQsMTQg
KzcwLDE4IEBAIHZvaWQgUG9wdXBNZW51OjpoaWRlKCkKICAgICBjaHJvbWVDbGllbnQtPmRlc3Ry
b3lTZWxlY3RQb3B1cCgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQo
KQordm9pZCBQb3B1cE1lbnVCcmV3Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiAgICAgY2xpZW50
KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotYm9v
bCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKLXsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KKy8vIFRoaXMgY29kZSBtdXN0IGJlIG1vdmVkIHRvIHRoZSBjb25jcmV0ZSBi
cmV3IENocm9tZUNsaWVudCB0aGF0IGlzIG5vdCBpbiByZXBvc2l0b3J5LgorLy8gSSBrZXB0IHRo
aXMgY29kZSBjb21tZW50ZWQgb3V0IGhlcmUgdG8gcHJldmVudCBsb29zaW5nIHRoZSBpbmZvcm1h
dGlvbiBvZiB3aGF0CisvLyBtdXN0IGJlIHRoZSByZXR1cm4gdmFsdWUgZm9yIGJyZXcuCisKKy8v
IGJvb2wgUG9wdXBNZW51QnJldzo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQorLy8g
eworLy8gICAgIHJldHVybiB0cnVlOworLy8gfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvUG9wdXBNZW51QnJldy5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L1BvcHVwTWVudUJyZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wYzE3MWRmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L1BvcHVwTWVudUJyZXcuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBQb3B1cE1lbnVCcmV3X2gKKyNkZWZpbmUgUG9wdXBNZW51QnJld19oCisKKyNpbmNsdWRl
ICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51
Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2Ns
YXNzIFNjcm9sbGJhcjsKKworY2xhc3MgUG9wdXBNZW51QnJldyA6IHB1YmxpYyBQb3B1cE1lbnUg
eworcHVibGljOgorICAgIFBvcHVwTWVudUJyZXcoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBv
cHVwTWVudUJyZXcoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBG
cmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5l
Y3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAgIFBvcHVwTWVudUNsaWVudCogbV9w
b3B1cENsaWVudDsKKyAgICBGcmFtZVZpZXcqIG1fdmlldzsKK307CisKK30KKworI2VuZGlmIC8v
IFBvcHVwTWVudUJyZXdfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJj
aFBvcHVwTWVudUJyZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVu
dUJyZXcuY3BwCmluZGV4IDc4MGM3ZTUuLmMyMmNiNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vYnJldy9TZWFyY2hQb3B1cE1lbnVCcmV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2JyZXcvU2VhcmNoUG9wdXBNZW51QnJldy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwyOSArMjUs
MzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBN
ZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51QnJldy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIFNhdmUgdGhlIHBhc3Qgc2VhcmNoZXMgc3RvcmVkIGluICdzZWFyY2hJdGVt
cycgdG8gYSBkYXRhYmFzZSBhc3NvY2lhdGVkIHdpdGggJ25hbWUnCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVCcmV3Ojpz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiB9CiAKIC8vIExvYWQgcGFzdCBzZWFyY2hlcyBhc3Nv
Y2lhdGVkIHdpdGggJ25hbWUnIGZyb20gdGhlIGRhdGFiYXNlIHRvICdzZWFyY2hJdGVtcycKLXZv
aWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVu
dUJyZXc6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKIH0KIAogLy8gQ3JlYXRlIGEgc2VhcmNoIHBvcHVw
IG1lbnUgLSBub3Qgc3VyZSB3aGF0IGVsc2Ugd2UgaGF2ZSB0byBkbyBoZXJlCi1TZWFyY2hQb3B1
cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBv
cHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVCcmV3OjpTZWFyY2hQb3B1cE1lbnVCcmV3
KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiB9CiAK
LWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51QnJl
dzo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitQb3B1cE1lbnUqIFNlYXJj
aFBvcHVwTWVudUJyZXc6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJuICZtX3BvcHVwOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Jy
ZXcvU2VhcmNoUG9wdXBNZW51QnJldy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBv
cHVwTWVudUJyZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGVhMTAy
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L1NlYXJjaFBvcHVwTWVu
dUJyZXcuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2Vh
cmNoUG9wdXBNZW51QnJld19oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUJyZXdfaAorCisjaW5j
bHVkZSAiUG9wdXBNZW51QnJldy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUJyZXcgOiBwdWJsaWMg
U2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVCcmV3KFBvcHVw
TWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAg
IHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6
CisgICAgUG9wdXBNZW51QnJldyBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNo
UG9wdXBNZW51QnJld19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51
Q2hyb21pdW0uY3BwCmluZGV4IGQwN2JhMmUuLjljNzNhOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNDgsNyArNDksNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCi0j
aW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5oIgpAQCAtMTM0
MCwyMCArMTM0MCwyMCBAQCBib29sIFBvcHVwTGlzdEJveDo6aXNQb2ludEluQm91bmRzKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIH0KIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gUG9wdXBN
ZW51IGltcGxlbWVudGF0aW9uCisvLyBQb3B1cE1lbnVDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbgog
Ly8gCiAvLyBOb3RlOiB5b3UgY2Fubm90IGFkZCBtZXRob2RzIHRvIHRoaXMgY2xhc3MsIHNpbmNl
IGl0IGlzIGRlZmluZWQgYWJvdmUgdGhlIAogLy8gICAgICAgcG9ydGFiaWxpdHkgbGF5ZXIuIFRv
IGFjY2VzcyBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIG9uIHRoZQogLy8gICAgICAgcG9wdXAgd2lk
Z2V0cywgdXNlIHxwb3B1cFdpbmRvd3wgYWJvdmUuIAogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgCitQb3B1cE1lbnVDaHJvbWl1bTo6UG9wdXBNZW51Q2hy
b21pdW0oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVu
dCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUNocm9taXVtOjp+
UG9wdXBNZW51Q2hyb21pdW0oKQogewotICAgIC8vIFdoZW4gdGhlIFBvcHVwTWVudSBpcyBkZXN0
cm95ZWQsIHRoZSBjbGllbnQgY291bGQgYWxyZWFkeSBoYXZlIGJlZW4KKyAgICAvLyBXaGVuIHRo
ZSBQb3B1cE1lbnVDaHJvbWl1bSBpcyBkZXN0cm95ZWQsIHRoZSBjbGllbnQgY291bGQgYWxyZWFk
eSBoYXZlIGJlZW4KICAgICAvLyBkZWxldGVkLgogICAgIGlmIChwLnBvcHVwKQogICAgICAgICBw
LnBvcHVwLT5saXN0Qm94KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKQEAgLTEzNjQsNyArMTM2NCw3
IEBAIFBvcHVwTWVudTo6flBvcHVwTWVudSgpCiAvLyB0byBkaXNwbGF5LCBoYW5kbGUgdGhlIGlu
cHV0IHRyYWNraW5nIGFuZCBtZW51IGl0ZW0gc2VsZWN0aW9uIGZvciB0aGUgcG9wdXAuCiAvLyBX
aW5kb3dzIGFuZCBMaW51eCBDaHJvbWl1bSBsZXQgb3VyIFdlYktpdCBwb3J0IGhhbmRsZSB0aGUg
ZGlzcGxheSwgd2hpbGUKIC8vIGFub3RoZXIgcHJvY2VzcyBtYW5hZ2VzIHRoZSBwb3B1cCB3aW5k
b3cgYW5kIGlucHV0IGhhbmRsaW5nLgotdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVj
dCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCit2b2lkIFBvcHVwTWVudUNocm9taXVtOjpz
aG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogewogICAgIGlm
ICghcC5wb3B1cCkKICAgICAgICAgcC5wb3B1cCA9IFBvcHVwQ29udGFpbmVyOjpjcmVhdGUoY2xp
ZW50KCksIFBvcHVwQ29udGFpbmVyOjpTZWxlY3QsIGRyb3BEb3duU2V0dGluZ3MpOwpAQCAtMTM3
NSwyMCArMTM3NSwyMSBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBG
cmFtZVZpZXcqIHYsIGludCBpbmRleCkKICNlbmRpZgogfQogCi12b2lkIFBvcHVwTWVudTo6aGlk
ZSgpCit2b2lkIFBvcHVwTWVudUNocm9taXVtOjpoaWRlKCkKIHsKICAgICBpZiAocC5wb3B1cCkK
ICAgICAgICAgcC5wb3B1cC0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJv
bUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVDaHJvbWl1bTo6dXBkYXRlRnJvbUVsZW1lbnQoKQog
ewogICAgIHAucG9wdXAtPmxpc3RCb3goKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotYm9v
bCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgCi17IAotICAgIHJl
dHVybiBmYWxzZTsgCisKK3ZvaWQgUG9wdXBNZW51Q2hyb21pdW06OmRpc2Nvbm5lY3RDbGllbnQo
KQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVt
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmgKaW5kZXgg
YTg1Y2Y0OS4uMGQwZTIzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Q
b3B1cE1lbnVDaHJvbWl1bS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uaApAQCAtMzYsNiArMzYsOCBAQAogCiAjaW5jbHVkZSAiRnJhbWVsZXNzU2Ny
b2xsVmlldy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIK
KyNpbmNsdWRlICJQb3B1cE1lbnVQcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMjAxLDYgKzIwMywyMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb3B1cE9wZW47CiB9Owog
CitjbGFzcyBQb3B1cE1lbnVDaHJvbWl1bSA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgor
ICAgIFBvcHVwTWVudUNocm9taXVtKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVD
aHJvbWl1bSgpOworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1l
VmlldyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENs
aWVudCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQorCisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVw
Q2xpZW50OworICAgIFBvcHVwTWVudVByaXZhdGUgcDsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Nl
YXJjaFBvcHVwTWVudUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Vh
cmNoUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDg5YmZkZGQuLjE4ZTg2YzYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0u
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiAKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksMjkgKzMwLDM0IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudUNocm9taXVtLmgiCiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJj
aFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAg
IDogUG9wdXBNZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudUNocm9taXVtOjpTZWFyY2hQb3B1
cE1lbnVDaHJvbWl1bShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xp
ZW50KQogewogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitQb3B1cE1lbnUq
IFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9w
b3B1cDsKK30KKworYm9vbCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6ZW5hYmxlZCgpCiB7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bTo6c2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJj
aEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBN
ZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudUNocm9taXVtOjpsb2Fk
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaCBiL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTJiOThjCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TZWFyY2hQb3B1cE1lbnVDaHJvbWl1bS5oCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVDaHJv
bWl1bV9oCisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudUNocm9taXVtX2gKKworI2luY2x1ZGUgIlBv
cHVwTWVudUNocm9taXVtLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51Q2hyb21pdW0gOiBwdWJsaWMg
U2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bShQ
b3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0
cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2
YXRlOgorICAgIFBvcHVwTWVudUNocm9taXVtIG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAv
LyBTZWFyY2hQb3B1cE1lbnVDaHJvbWl1bV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9Qb3B1cE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZs
LmNwcAppbmRleCA5ZGM2OTg2Li40MDFmMjRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9Qb3B1cE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVu
dUVmbC5jcHAKQEAgLTMsNiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIElu
c3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQ
cm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ft
c3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIs
MjkgKzIzLDMwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Qb3B1cE1lbnU6OlBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkKK1BvcHVwTWVudUVmbDo6UG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3ZpZXcoMCkK
IHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudUVmbDo6flBvcHVwTWVu
dUVmbCgpCiB7CiAgICAgLy8gVGVsbCBjbGllbnQgdG8gZGVzdHJveSBkYXRhIHJlbGF0ZWQgdG8g
dGhpcyBwb3B1cCBzaW5jZSB0aGlzIG9iamVjdCBpcwogICAgIC8vIGdvaW5nIGF3YXkuCiAgICAg
aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpzaG93KGNvbnN0
IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIEFTU0VS
VChtX3BvcHVwQ2xpZW50KTsKICAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCA9IHN0
YXRpY19jYXN0PENocm9tZUNsaWVudEVmbCo+KHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21l
KCktPmNsaWVudCgpKTsKQEAgLTU0LDcgKzU2LDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29u
c3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCiAgICAgY2hyb21l
Q2xpZW50LT5jcmVhdGVTZWxlY3RQb3B1cChtX3BvcHVwQ2xpZW50LCBpbmRleCwgcmVjdCk7CiB9
CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQgUG9wdXBNZW51RWZsOjpoaWRlKCkKIHsK
ICAgICBBU1NFUlQobV92aWV3KTsKICAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCA9
IHN0YXRpY19jYXN0PENocm9tZUNsaWVudEVmbCo+KG1fdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5j
aHJvbWUoKS0+Y2xpZW50KCkpOwpAQCAtNjMsMTQgKzY1LDE0IEBAIHZvaWQgUG9wdXBNZW51Ojpo
aWRlKCkKICAgICBjaHJvbWVDbGllbnQtPmRlc3Ryb3lTZWxlY3RQb3B1cCgpOwogfQogCi12b2lk
IFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVFZmw6OnVwZGF0
ZUZyb21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgp
LT5zZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQordm9pZCBQb3B1cE1lbnVFZmw6OmRpc2Nvbm5lY3RDbGllbnQoKQog
ewotICAgIHJldHVybiB0cnVlOworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjRhMmRiZmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1
cE1lbnVFZmwuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1
cE1lbnVFZmxfaAorI2RlZmluZSBQb3B1cE1lbnVFZmxfaAorCisjaW5jbHVkZSAiSW50UmVjdC5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CisK
K2NsYXNzIFBvcHVwTWVudUVmbCA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBv
cHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqKTsKKyAgICB+UG9wdXBNZW51RWZsKCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZh
dGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVw
Q2xpZW50OyB9CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgRnJh
bWVWaWV3KiBtX3ZpZXc7Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVFZmxfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKaW5kZXggZDE4MTc0Zi4u
Y2FmZmU1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3Bw
CkBAIC0yLDYgKzIsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKICAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcwogICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xOSwyOSAr
MjAsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCiAKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlYXJjaFBvcHVwTWVu
dTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDogUG9wdXBN
ZW51KGNsaWVudCkKK1NlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9wdXBNZW51RWZsKFBvcHVw
TWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCitQb3B1cE1lbnUq
IFNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7
Cit9CisKK3ZvaWQgU2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBTZWFyY2hQb3B1cE1lbnVF
Zmw6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6
OmVuYWJsZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVFZmw6OmVuYWJsZWQoKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Nl
YXJjaFBvcHVwTWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0
Y2IyZTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1
cE1lbnVFZmwuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYg
U2VhcmNoUG9wdXBNZW51RWZsX2gKKyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51RWZsX2gKKworI2lu
Y2x1ZGUgIlBvcHVwTWVudUVmbC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBvcHVwTWVudUVmbCA6IHB1YmxpYyBT
ZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAgIFNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1l
bnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9h
ZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4m
IHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgor
ICAgIFBvcHVwTWVudUVmbCBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9w
dXBNZW51RWZsX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0
ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwCmluZGV4IGJmOGNm
YjQuLmNhMDY3ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0
ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcApAQCAtNCw2
ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBt
aWtlLmVtbWVsQGdtYWlsLmNvbQogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw3ICsyNCw3IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgorI2luY2x1ZGUg
IlBvcHVwTWVudUd0ay5oIgogCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3Rr
VmVyc2lvbmluZy5oIgpAQCAtMzQsMTIgKzM1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitQb3B1cE1l
bnVHdGs6OlBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICA6IG1fcG9w
dXBDbGllbnQoY2xpZW50KQogewogfQogCi1Qb3B1cE1lbnU6On5Qb3B1cE1lbnUoKQorUG9wdXBN
ZW51R3RrOjp+UG9wdXBNZW51R3RrKCkKIHsKICAgICBpZiAobV9wb3B1cCkgewogICAgICAgICBn
X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV9wb3B1cC5nZXQoKSwgR19TSUdO
QUxfTUFUQ0hfREFUQSwgMCwgMCwgMCwgMCwgdGhpcyk7CkBAIC00Nyw3ICs0OCw3IEBAIFBvcHVw
TWVudTo6flBvcHVwTWVudSgpCiAgICAgfQogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25z
dCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBN
ZW51R3RrOjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGlu
ZGV4KQogewogICAgIEFTU0VSVChjbGllbnQoKSk7CiAKQEAgLTExMCw0MyArMTExLDQzIEBAIHZv
aWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywg
aW50IGluZGV4KQogICAgIGd0a19tZW51X3BvcHVwKG1fcG9wdXAuZ2V0KCksIDAsIDAsIHJlaW50
ZXJwcmV0X2Nhc3Q8R3RrTWVudVBvc2l0aW9uRnVuYz4obWVudVBvc2l0aW9uRnVuY3Rpb24pLCB0
aGlzLCAwLCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKIH0KIAotdm9pZCBQb3B1cE1l
bnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVHdGs6OmhpZGUoKQogewogICAgIEFTU0VSVChtX3Bv
cHVwKTsKICAgICBndGtfbWVudV9wb3Bkb3duKG1fcG9wdXAuZ2V0KCkpOwogfQogCi12b2lkIFBv
cHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQordm9pZCBQb3B1cE1lbnVHdGs6OnVwZGF0ZUZy
b21FbGVtZW50KCkKIHsKICAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5z
ZWxlY3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKQordm9pZCBQb3B1cE1lbnVHdGs6OmRpc2Nvbm5lY3RDbGllbnQoKQogewot
ICAgIHJldHVybiB0cnVlOworICAgIG1fcG9wdXBDbGllbnQgPSAwOwogfQogCi12b2lkIFBvcHVw
TWVudTo6bWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0ZW0qIGl0ZW0sIFBvcHVwTWVudSogdGhh
dCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51SXRlbUFjdGl2YXRlZChHdGtNZW51SXRlbSogaXRl
bSwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5jbGllbnQoKSk7CiAg
ICAgQVNTRVJUKHRoYXQtPm1faW5kZXhNYXAuY29udGFpbnMoR1RLX1dJREdFVChpdGVtKSkpOwog
ICAgIHRoYXQtPmNsaWVudCgpLT52YWx1ZUNoYW5nZWQodGhhdC0+bV9pbmRleE1hcC5nZXQoR1RL
X1dJREdFVChpdGVtKSkpOwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVudVVubWFwcGVkKEd0a1dp
ZGdldCosIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51VW5tYXBwZWQo
R3RrV2lkZ2V0KiwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VSVCh0aGF0LT5jbGll
bnQoKSk7CiAgICAgdGhhdC0+Y2xpZW50KCktPnBvcHVwRGlkSGlkZSgpOwogfQogCi12b2lkIFBv
cHVwTWVudTo6bWVudVBvc2l0aW9uRnVuY3Rpb24oR3RrTWVudSosIGdpbnQqIHgsIGdpbnQqIHks
IGdib29sZWFuKiBwdXNoSW4sIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjpt
ZW51UG9zaXRpb25GdW5jdGlvbihHdGtNZW51KiwgZ2ludCogeCwgZ2ludCogeSwgZ2Jvb2xlYW4q
IHB1c2hJbiwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgICp4ID0gdGhhdC0+bV9tZW51UG9z
aXRpb24ueCgpOwogICAgICp5ID0gdGhhdC0+bV9tZW51UG9zaXRpb24ueSgpOwogICAgICpwdXNo
SW4gPSB0cnVlOwogfQogCi12b2lkIFBvcHVwTWVudTo6bWVudVJlbW92ZUl0ZW0oR3RrV2lkZ2V0
KiB3aWRnZXQsIFBvcHVwTWVudSogdGhhdCkKK3ZvaWQgUG9wdXBNZW51R3RrOjptZW51UmVtb3Zl
SXRlbShHdGtXaWRnZXQqIHdpZGdldCwgUG9wdXBNZW51R3RrKiB0aGF0KQogewogICAgIEFTU0VS
VCh0aGF0LT5tX3BvcHVwKTsKICAgICBndGtfY29udGFpbmVyX3JlbW92ZShHVEtfQ09OVEFJTkVS
KHRoYXQtPm1fcG9wdXAuZ2V0KCkpLCB3aWRnZXQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Qb3B1cE1lbnVH
dGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjRlN2RkCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmgKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51R3RrX2gKKyNkZWZpbmUg
UG9wdXBNZW51R3RrX2gKKworI2luY2x1ZGUgIkdSZWZQdHJHdGsuaCIKKyNpbmNsdWRlICJJbnRS
ZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50
LmgiCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCit0eXBl
ZGVmIHN0cnVjdCBfR3RrTWVudSBHdGtNZW51OwordHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnVJdGVt
IEd0a01lbnVJdGVtOwordHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgU2Nyb2xsYmFyOwor
CitjbGFzcyBQb3B1cE1lbnVHdGsgOiBwdWJsaWMgUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBQ
b3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUd0aygpOworCisg
ICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRl
eCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2
YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1
cENsaWVudDsgfQorCisgICAgc3RhdGljIHZvaWQgbWVudUl0ZW1BY3RpdmF0ZWQoR3RrTWVudUl0
ZW0qIGl0ZW0sIFBvcHVwTWVudUd0ayopOworICAgIHN0YXRpYyB2b2lkIG1lbnVVbm1hcHBlZChH
dGtXaWRnZXQqLCBQb3B1cE1lbnVHdGsqKTsKKyAgICBzdGF0aWMgdm9pZCBtZW51UG9zaXRpb25G
dW5jdGlvbihHdGtNZW51KiwgZ2ludCosIGdpbnQqLCBnYm9vbGVhbiosIFBvcHVwTWVudUd0ayop
OworICAgIHN0YXRpYyB2b2lkIG1lbnVSZW1vdmVJdGVtKEd0a1dpZGdldCosIFBvcHVwTWVudUd0
ayopOworCisgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OworICAgIEludFBvaW50
IG1fbWVudVBvc2l0aW9uOworICAgIEdSZWZQdHI8R3RrTWVudT4gbV9wb3B1cDsKKyAgICBIYXNo
TWFwPEd0a1dpZGdldCosIGludD4gbV9pbmRleE1hcDsKK307CisKK30KKworI2VuZGlmIC8vIFBv
cHVwTWVudUd0a19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1
cE1lbnVHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51R3RrLmNw
cAppbmRleCBmYmFhNTI3Li5kZmI4NGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJj
aFBvcHVwTWVudUd0ay5jcHAKQEAgLTEsNCArMSw2IEBACiAvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCiAg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKICAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTE1LDI5ICsxNywzNCBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnVHdGsuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9w
dXBNZW51R3RrOjpTZWFyY2hQb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisg
ICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51R3RrOjpw
b3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwordm9pZCBTZWFyY2hQb3B1
cE1lbnVHdGs6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTZWFy
Y2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYpCit2b2lkIFNlYXJjaFBvcHVwTWVudUd0azo6bG9hZFJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi1ib29sIFNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCitib29sIFNlYXJj
aFBvcHVwTWVudUd0azo6ZW5hYmxlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1
cE1lbnVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVwTWVudUd0ay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0YzE3YjQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51R3RrX2gK
KyNkZWZpbmUgU2VhcmNoUG9wdXBNZW51R3RrX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5o
IgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNlYXJjaFBvcHVwTWVudUd0ayA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVi
bGljOgorICAgIFNlYXJjaFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZp
cnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2
aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUd0ayBtX3Bv
cHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51R3RrX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAKaW5kZXggNWFkYmM2Ni4uZTNlZGI4MyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Qb3B1cE1lbnVIYWlrdS5jcHAKQEAgLTIsNiArMiw3
IEBACiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgcG9wdXAgbWVudSBpbXBsZW1lbnRhdGlv
biBmb3IgPHNlbGVjdD4gZWxlbWVudHMgaW4gV2ViQ29yZS4KICAqCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgU3RlcGhhbiBBw59tdXMgPHN1cGVyc3RpcHBpQGdteC5kZT4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDcgKzIyLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51SGFpa3Uu
aCIKIAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogCkBAIC03Miw5ICs3Myw5IEBAIHByaXZhdGU6
CiAgICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwogfTsKIAotY2xhc3MgUG9wdXBN
ZW51SGFpa3UgOiBwdWJsaWMgQlBvcFVwTWVudSB7CitjbGFzcyBIYWlrdVBvcHVwIDogcHVibGlj
IEJQb3BVcE1lbnUgewogcHVibGljOgotICAgIFBvcHVwTWVudUhhaWt1KFBvcHVwTWVudUNsaWVu
dCogcG9wdXBDbGllbnQpCisgICAgSGFpa3VQb3B1cChQb3B1cE1lbnVDbGllbnQqIHBvcHVwQ2xp
ZW50KQogICAgICAgICA6IEJQb3BVcE1lbnUoIldlYkNvcmUgUG9wdXAiLCB0cnVlLCBmYWxzZSkK
ICAgICAgICAgLCBtX3BvcHVwQ2xpZW50KHBvcHVwQ2xpZW50KQogICAgICAgICAsIG1fSGFuZGxl
cihwb3B1cENsaWVudCkKQEAgLTg2LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICBTZXRBc3lu
Y0F1dG9EZXN0cnVjdChmYWxzZSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+UG9wdXBNZW51SGFp
a3UoKQorICAgIHZpcnR1YWwgfkhhaWt1UG9wdXAoKQogICAgIHsKICAgICAgICAgaWYgKGJlX2Fw
cC0+TG9jaygpKSB7CiAgICAgICAgICAgICBiZV9hcHAtPlJlbW92ZUhhbmRsZXIoJm1fSGFuZGxl
cik7CkBAIC0xNTMsMzkgKzE1NCwzOSBAQCBwcml2YXRlOgogICAgIFBvcHVwTWVudUhhbmRsZXIg
bV9IYW5kbGVyOwogfTsKIAotUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpCitQb3B1cE1lbnVIYWlrdTo6UG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKLSAgICAsIG1fbWVudShuZXcgUG9w
dXBNZW51SGFpa3UoY2xpZW50KSkKKyAgICAsIG1fbWVudShuZXcgSGFpa3VQb3B1cChjbGllbnQp
KQogewogICAgIC8vIFdlIGRvbid0IG5lZWQgYWRkaXRpb25hbCByZWZlcmVuY2VzIHRvIHRoZSBj
bGllbnQsIHNpbmNlIHdlIGNvbXBsZXRlbHkKICAgICAvLyBjb250cm9sIGFueSBzdWItb2JqZWN0
cyB3ZSBjcmVhdGUgdGhhdCBuZWVkIGl0IGFzIHdlbGwuCiB9CiAKLVBvcHVwTWVudTo6flBvcHVw
TWVudSgpCitQb3B1cE1lbnVIYWlrdTo6flBvcHVwTWVudUhhaWt1KCkKIHsKICAgICBkZWxldGUg
bV9tZW51OwogfQogCi12b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBG
cmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3ZvaWQgUG9wdXBNZW51SGFpa3U6OmRpc2Nvbm5l
Y3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCit2b2lkIFBvcHVwTWVu
dUhhaWt1OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGlu
ZGV4KQogewogICAgIC8vIFRoZSBtZW51IHdpbGwgdXBkYXRlIGl0c2VsZiBmcm9tIHRoZSBQb3B1
cE1lbnVDbGllbnQgYmVmb3JlIHNob3dpbmcuCiAgICAgbV9tZW51LT5zaG93KHJlY3QsIHZpZXcs
IGluZGV4KTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVIYWlr
dTo6aGlkZSgpCiB7CiAgICAgbV9tZW51LT5oaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1
cGRhdGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudUhhaWt1Ojp1cGRhdGVGcm9tRWxlbWVu
dCgpCiB7CiAgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShtX3BvcHVwQ2xpZW50LT5zZWxl
Y3RlZEluZGV4KCkpOwogfQogCi1ib29sIFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1BvcHVwTWVudUhhaWt1LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIwNzkyMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vaGFpa3UvUG9wdXBNZW51SGFpa3UuaApAQCAtMCwwICsxLDU1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51SGFpa3VfaAorI2RlZmluZSBQb3B1cE1l
bnVIYWlrdV9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Lmgi
CisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIEhhaWt1UG9wdXA7CitjbGFzcyBTY3JvbGxiYXI7CisK
K2NsYXNzIFBvcHVwTWVudUhhaWt1IDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAg
UG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudUhhaWt1KCk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50
IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisK
K3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBt
X3BvcHVwQ2xpZW50OyB9CisKKyAgICBQb3B1cE1lbnVDbGllbnQqIG1fcG9wdXBDbGllbnQ7Cisg
ICAgSGFpa3VQb3B1cCogbV9tZW51OworfTsKKworfQorCisjZW5kaWYgLy8gUG9wdXBNZW51SGFp
a3VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9TZWFyY2hQb3B1cE1lbnVI
YWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNw
cAppbmRleCBmZDVkOTZjLi40NDMzOGU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hh
aWt1L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1
L1NlYXJjaFBvcHVwTWVudUhhaWt1LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2ZW5nb29kQGdtYWlsLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDcgKzE5LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAi
U2VhcmNoUG9wdXBNZW51SGFpa3UuaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCkBAIC0yNiwyNiArMjcsMzEgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGllbnQpCitTZWFyY2hQb3B1cE1lbnVI
YWlrdTo6U2VhcmNoUG9wdXBNZW51SGFpa3UoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAg
OiBtX3BvcHVwKGNsaWVudCkKIHsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51SGFpa3U6OnNhdmVSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVw
TWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9y
PFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQb3B1cE1lbnVIYWlrdTo6bG9hZFJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wgU2VhcmNoUG9w
dXBNZW51OjplbmFibGVkKCkKK2Jvb2wgU2VhcmNoUG9wdXBNZW51SGFpa3U6OmVuYWJsZWQoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitQb3B1cE1l
bnUqIFNlYXJjaFBvcHVwTWVudUhhaWt1Ojpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiBtX3Bv
cHVwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvU2VhcmNoUG9wdXBNZW51SGFpa3UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yNTMyZDNjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlr
dS9TZWFyY2hQb3B1cE1lbnVIYWlrdS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVIYWlrdV9oCisjZGVmaW5lIFNlYXJjaFBvcHVw
TWVudUhhaWt1X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCisjaW5jbHVkZSAiU2Vh
cmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VhcmNoUG9w
dXBNZW51SGFpa3UgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTZWFy
Y2hQb3B1cE1lbnVIYWlrdShQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBN
ZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1z
KTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wg
ZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudUhhaWt1IG1fcG9wdXA7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVIYWlrdV9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bv
cHVwTWVudU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYmMzN2QK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVNYWNfaAor
I2RlZmluZSBQb3B1cE1lbnVNYWNfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUg
IlBvcHVwTWVudS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK2NsYXNzIE5TUG9w
VXBCdXR0b25DZWxsOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBvcHVwTWVudUNs
aWVudDsKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJhcjsKKworY2xhc3MgUG9wdXBN
ZW51TWFjIDogcHVibGljIFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgUG9wdXBNZW51TWFjKFBv
cHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVNYWMoKTsKKworICAgIHZvaWQgZGlzY29u
bmVjdENsaWVudCgpIHsgbV9wb3B1cENsaWVudCA9IDA7IH0KKworICAgIHZvaWQgc2hvdyhjb25z
dCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2b2lkIGhpZGUoKTsKKwor
ICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKKworICAgIHN0YXRpYyBib29sIGl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBjbGVhcigpOwor
ICAgIHZvaWQgcG9wdWxhdGUoKTsKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1
cENsaWVudDsKKyAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVNYWNfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUG9wdXBNZW51TWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51
TWFjLm1tCmluZGV4IDZjMDY3YjkuLjBmNTA1OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BvcHVwTWVudU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1l
bnVNYWMubW0KQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTE4LDcgKzE5LDcgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNp
bXBvcnQgIlBvcHVwTWVudS5oIgorI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCiAKICNpbXBvcnQg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbXBvcnQgIkNocm9tZS5oIgpAQCAtMzEsNiArMzIsNyBAQAog
I2ltcG9ydCAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxTZWxlY3RFbGVtZW50
LmgiCiAjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbXBv
cnQgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgi
CiAKQEAgLTM4LDI0ICs0MCwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KQorUG9wdXBNZW51TWFjOjpQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKIHsKIH0KIAotUG9wdXBNZW51Ojp+UG9w
dXBNZW51KCkKK1BvcHVwTWVudU1hYzo6flBvcHVwTWVudU1hYygpCiB7CiAgICAgaWYgKG1fcG9w
dXApCiAgICAgICAgIFttX3BvcHVwLmdldCgpIHNldENvbnRyb2xWaWV3Om5pbF07CiB9CiAKLXZv
aWQgUG9wdXBNZW51OjpjbGVhcigpCit2b2lkIFBvcHVwTWVudU1hYzo6Y2xlYXIoKQogewogICAg
IGlmIChtX3BvcHVwKQogICAgICAgICBbbV9wb3B1cC5nZXQoKSByZW1vdmVBbGxJdGVtc107CiB9
CiAKLXZvaWQgUG9wdXBNZW51Ojpwb3B1bGF0ZSgpCit2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxh
dGUoKQogewogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBjbGVhcigpOwpAQCAtMTE0LDcgKzEx
Niw3IEBAIHZvaWQgUG9wdXBNZW51Ojpwb3B1bGF0ZSgpCiAgICAgW1ttX3BvcHVwLmdldCgpIG1l
bnVdIHNldE1lbnVDaGFuZ2VkTWVzc2FnZXNFbmFibGVkOm1lc3NhZ2VzRW5hYmxlZF07CiB9CiAK
LXZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50
IGluZGV4KQordm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2LCBpbnQgaW5kZXgpCiB7CiAgICAgcG9wdWxhdGUoKTsKICAgICBpbnQgbnVtSXRlbXMg
PSBbbV9wb3B1cC5nZXQoKSBudW1iZXJPZkl0ZW1zXTsKQEAgLTE2Miw3ICsxNjQsNyBAQCB2b2lk
IFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRl
eCkKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gdi0+ZnJhbWUoKTsKICAgICBOU0V2ZW50KiBl
dmVudCA9IFtmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmN1cnJlbnROU0V2ZW50KCkgcmV0YWluXTsK
ICAgICAKLSAgICBSZWZQdHI8UG9wdXBNZW51PiBwcm90ZWN0b3IodGhpcyk7CisgICAgUmVmUHRy
PFBvcHVwTWVudU1hYz4gcHJvdGVjdG9yKHRoaXMpOwogCiAgICAgUmV0YWluUHRyPE5TVmlldz4g
ZHVtbXlWaWV3KEFkb3B0TlMsIFtbTlNWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJdKTsKICAg
ICBbdmlldyBhZGRTdWJ2aWV3OmR1bW15Vmlldy5nZXQoKV07CkBAIC0xOTQsMTYgKzE5NiwxNiBA
QCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGlu
dCBpbmRleCkKICAgICBbZXZlbnQgcmVsZWFzZV07CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRl
KCkKK3ZvaWQgUG9wdXBNZW51TWFjOjpoaWRlKCkKIHsKICAgICBbbV9wb3B1cC5nZXQoKSBkaXNt
aXNzUG9wVXBdOwogfQogICAgIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkK
K3ZvaWQgUG9wdXBNZW51TWFjOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CiB9CiAKLWJvb2wgUG9w
dXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCitib29sIFBvcHVwTWVudU1h
Yzo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQogewogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGY5MWEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLmgKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudU1hY19oCisjZGVmaW5lIFNl
YXJjaFBvcHVwTWVudU1hY19oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVNYWMuaCIKKyNpbmNsdWRl
ICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWFy
Y2hQb3B1cE1lbnVNYWMgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBT
ZWFyY2hQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVw
TWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29s
IGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVNYWMgbV9wb3B1cDsKK307CisK
K30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudU1hY19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TZWFyY2hQb3B1cE1lbnVNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TZWFyY2hQb3B1cE1lbnVNYWMubW0KaW5kZXggMjYyNzM0ZC4uNzhiMjlhNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2VhcmNoUG9wdXBNZW51TWFjLm1tCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1NlYXJjaFBvcHVwTWVudU1hYy5tbQpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4LDE0ICsxOSwxNCBAQAogICovCiAKICNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiU2VhcmNoUG9wdXBNZW51LmgiCisjaW1wb3J0ICJTZWFyY2hQ
b3B1cE1lbnVNYWMuaCIKIAogI2ltcG9ydCAiQXRvbWljU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotU2VhcmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCi0gICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51TWFj
OjpTZWFyY2hQb3B1cE1lbnVNYWMoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3Bv
cHVwKGNsaWVudCkKIHsKIH0KIApAQCAtMzQsMTIgKzM1LDE3IEBAIHN0YXRpYyBOU1N0cmluZyog
YXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBbQCJjb20uYXBwbGUu
V2ViS2l0LnNlYXJjaEZpZWxkOiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6bmFtZV07CiB9CiAK
LWJvb2wgU2VhcmNoUG9wdXBNZW51OjplbmFibGVkKCkKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBN
ZW51TWFjOjpwb3B1cE1lbnUoKQoreworICAgIHJldHVybiAmbV9wb3B1cDsKK30KKworYm9vbCBT
ZWFyY2hQb3B1cE1lbnVNYWM6OmVuYWJsZWQoKQogewogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQordm9pZCBTZWFyY2hQ
b3B1cE1lbnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKIHsKICAgICBpZiAobmFtZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU2LDcgKzYyLDcgQEAgdm9pZCBTZWFyY2hQb3B1
cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0
IFZlY3RvcjwKICAgICB9CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRl
bXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIGlm
IChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVu
dVF0LmNwcAppbmRleCAzMTViODkxLi41NTkwNTU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1BvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVu
dVF0LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVRdC5oIgogCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50UXQuaCIKQEAgLTM1LDE4ICszNSwy
NCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51UXQ6OlBvcHVwTWVudVF0KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3BvcHVw
KDApCiB7CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVRdDo6flBvcHVw
TWVudVF0KCkKIHsKICAgICBkZWxldGUgbV9wb3B1cDsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnNo
b3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCisKK3Zv
aWQgUG9wdXBNZW51UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQoreworICAgIG1fcG9wdXBDbGllbnQg
PSAwOworfQorCit2b2lkIFBvcHVwTWVudVF0OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZy
YW1lVmlldyogdmlldywgaW50IGluZGV4KQogewogICAgIENocm9tZUNsaWVudFF0KiBjaHJvbWVD
bGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRRdCo+KAogICAgICAgICB2aWV3LT5mcmFt
ZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CkBAIC02NywxOSArNzMsMTQgQEAgdm9p
ZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3KiB2aWV3LCBp
bnQgaW5kZXgpCiAKIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9pZCBQb3B1cE1lbnVR
dDo6aGlkZSgpCiB7CiAgICAgbV9wb3B1cC0+aGlkZSgpOwogfQogCi12b2lkIFBvcHVwTWVudTo6
dXBkYXRlRnJvbUVsZW1lbnQoKQotewotICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0obV9w
b3B1cENsaWVudC0+c2VsZWN0ZWRJbmRleCgpKTsKLX0KLQotYm9vbCBQb3B1cE1lbnU6Oml0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3ZvaWQgUG9wdXBNZW51UXQ6OnVwZGF0ZUZyb21F
bGVtZW50KCkKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9wb3B1cENsaWVudC0+c2V0VGV4
dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vcXQvUG9wdXBNZW51UXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
NWE5Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVR
dC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudVF0
X2gKKyNkZWZpbmUgUG9wdXBNZW51UXRfaAorCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWVWaWV3OworY2xhc3MgUXRBYnN0cmFjdFdl
YlBvcHVwOworY2xhc3MgU2Nyb2xsYmFyOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworCitjbGFz
cyBQb3B1cE1lbnVRdCA6IHB1YmxpYyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVwTWVu
dVF0KFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1cE1lbnVRdCgpOworCisgICAgdmlydHVh
bCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7CisgICAg
dmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOworCitwcml2YXRlOgorICAg
IFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICBRdEFic3RyYWN0V2ViUG9wdXAq
IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBQb3B1cE1lbnVRdF9oCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9RdEFic3RyYWN0V2ViUG9wdXAuaAppbmRleCBkYWQ0OTk3Li41ZjZmNjE5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1F0QWJzdHJhY3RXZWJQb3B1cC5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUXRBYnN0cmFjdFdlYlBvcHVwLmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogICAgIFFGb250IGZvbnQoKSB7IHJldHVybiBtX3BvcHVwQ2xpZW50LT5tZW51U3R5
bGUoKS5mb250KCkuZm9udCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFBvcHVw
TWVudTsKKyAgICBmcmllbmQgY2xhc3MgUG9wdXBNZW51UXQ7CiAgICAgUG9wdXBNZW51Q2xpZW50
KiBtX3BvcHVwQ2xpZW50OwogICAgIFFXZWJQYWdlQ2xpZW50KiBtX3BhZ2VDbGllbnQ7CiAgICAg
aW50IG1fY3VycmVudEluZGV4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9TZWFy
Y2hQb3B1cE1lbnVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0
LmNwcAppbmRleCAxODdhNWRlLi44NjhiOWE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1NlYXJjaFBvcHVwTWVudVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJj
aFBvcHVwTWVudVF0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgQyAyMDA2
IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTE4LDI2ICsxOSwyOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLQotI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2lu
Y2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2Vh
cmNoUG9wdXBNZW51OjpTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCi0g
ICAgOiBQb3B1cE1lbnUoY2xpZW50KQorU2VhcmNoUG9wdXBNZW51UXQ6OlNlYXJjaFBvcHVwTWVu
dVF0KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQpCit7Cit9
CisKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51UXQ6OnBvcHVwTWVudSgpCiB7CisgICAgcmV0
dXJuICZtX3BvcHVwOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgU2Vh
cmNoUG9wdXBNZW51UXQ6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2Fk
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9p
ZCBTZWFyY2hQb3B1cE1lbnVRdDo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIFZlY3RvcjxTdHJpbmc+JikKIHsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJs
ZWQoKQorYm9vbCBTZWFyY2hQb3B1cE1lbnVRdDo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0
LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1NlYXJjaFBvcHVwTWVudVF0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUxYzA5ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vcXQvU2VhcmNoUG9wdXBNZW51UXQuaApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51UXRfaAorI2RlZmluZSBTZWFy
Y2hQb3B1cE1lbnVRdF9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVRdC5oIgorI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlYXJjaFBv
cHVwTWVudVF0IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgU2VhcmNo
UG9wdXBNZW51UXQoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSog
cG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Cisg
ICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29sIGVuYWJs
ZWQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVRdCBtX3BvcHVwOworfTsKKworfQorCisj
ZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51UXRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKaW5kZXggNGJjNmRjNy4uY2JhY2Q0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDctMjAwOSBUb3JjaCBNb2JpbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMjAsNyArMjEsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVXaW4uaCIKIAogI2luY2x1ZGUg
IkJpdG1hcEluZm8uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtODYsNyArODcsNyBAQCBz
dGF0aWMgdm9pZCB0cmFuc2xhdGVQb2ludChMUEFSQU0mIGxQYXJhbSwgSFdORCBmcm9tLCBIV05E
IHRvKQogICAgIGxQYXJhbSA9IE1BS0VMUEFSQU0ocHQueCwgcHQueSk7CiB9CiAKLVBvcHVwTWVu
dTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUG9wdXBNZW51V2luOjpQb3B1
cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3BvcHVwQ2xpZW50KGNs
aWVudCkKICAgICAsIG1fc2Nyb2xsYmFyKDApCiAgICAgLCBtX3BvcHVwKDApCkBAIC0xMDIsNyAr
MTAzLDcgQEAgUG9wdXBNZW51OjpQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiB7
CiB9CiAKLVBvcHVwTWVudTo6flBvcHVwTWVudSgpCitQb3B1cE1lbnVXaW46On5Qb3B1cE1lbnVX
aW4oKQogewogICAgIGlmIChtX2JtcCkKICAgICAgICAgOjpEZWxldGVPYmplY3QobV9ibXApOwpA
QCAtMTE0LDEyICsxMTUsMTcgQEAgUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKICAgICAgICAgbV9z
Y3JvbGxiYXItPnNldFBhcmVudCgwKTsKIH0KIAotTFBDVFNUUiBQb3B1cE1lbnU6OnBvcHVwQ2xh
c3NOYW1lKCkKK3ZvaWQgUG9wdXBNZW51V2luOjpkaXNjb25uZWN0Q2xpZW50KCkKK3sKKyAgICBt
X3BvcHVwQ2xpZW50ID0gMDsKK30KKworTFBDVFNUUiBQb3B1cE1lbnVXaW46OnBvcHVwQ2xhc3NO
YW1lKCkKIHsKICAgICByZXR1cm4ga1BvcHVwV2luZG93Q2xhc3NOYW1lOwogfQogCi12b2lkIFBv
cHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRl
eCkKK3ZvaWQgUG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyog
dmlldywgaW50IGluZGV4KQogewogICAgIGNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShyLCB2aWV3
KTsKICAgICBpZiAoY2xpZW50UmVjdCgpLmlzRW1wdHkoKSkKQEAgLTI2Nyw3ICsyNzMsNyBAQCB2
b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGlu
dCBpbmRleCkKICAgICBoaWRlKCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpoaWRlKCkKK3ZvaWQg
UG9wdXBNZW51V2luOjpoaWRlKCkKIHsKICAgICBpZiAoIW1fc2hvd1BvcHVwKQogICAgICAgICBy
ZXR1cm47CkBAIC0yODMsNyArMjg5LDcgQEAgdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQogICAgIDo6
UG9zdE1lc3NhZ2UobV9wb3B1cCwgV01fTlVMTCwgMCwgMCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51
OjpjYWxjdWxhdGVQb3NpdGlvbkFuZFNpemUoY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2
KQordm9pZCBQb3B1cE1lbnVXaW46OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZShjb25zdCBJbnRS
ZWN0JiByLCBGcmFtZVZpZXcqIHYpCiB7CiAgICAgLy8gciBpcyBpbiBhYnNvbHV0ZSBkb2N1bWVu
dCBjb29yZGluYXRlcywgYnV0IHdlIHdhbnQgdG8gYmUgaW4gc2NyZWVuIGNvb3JkaW5hdGVzCiAK
QEAgLTM3Myw3ICszNzksNyBAQCB2b2lkIFBvcHVwTWVudTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRT
aXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdikKICAgICByZXR1cm47CiB9CiAKLWJv
b2wgUG9wdXBNZW51OjpzZXRGb2N1c2VkSW5kZXgoaW50IGksIGJvb2wgaG90VHJhY2tpbmcpCiti
b29sIFBvcHVwTWVudVdpbjo6c2V0Rm9jdXNlZEluZGV4KGludCBpLCBib29sIGhvdFRyYWNraW5n
KQogewogICAgIGlmIChpIDwgMCB8fCBpID49IGNsaWVudCgpLT5saXN0U2l6ZSgpIHx8IGkgPT0g
Zm9jdXNlZEluZGV4KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5NSwyMiArNDAxLDIy
IEBAIGJvb2wgUG9wdXBNZW51OjpzZXRGb2N1c2VkSW5kZXgoaW50IGksIGJvb2wgaG90VHJhY2tp
bmcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWludCBQb3B1cE1lbnU6OnZpc2libGVJdGVtcygp
IGNvbnN0CitpbnQgUG9wdXBNZW51V2luOjp2aXNpYmxlSXRlbXMoKSBjb25zdAogewogICAgIHJl
dHVybiBjbGllbnRSZWN0KCkuaGVpZ2h0KCkgLyBtX2l0ZW1IZWlnaHQ7CiB9CiAKLWludCBQb3B1
cE1lbnU6Omxpc3RJbmRleEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoraW50
IFBvcHVwTWVudVdpbjo6bGlzdEluZGV4QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0ICsgcG9pbnQueSgpIC8gbV9pdGVtSGVp
Z2h0OwogfQogCi1pbnQgUG9wdXBNZW51Ojpmb2N1c2VkSW5kZXgoKSBjb25zdAoraW50IFBvcHVw
TWVudVdpbjo6Zm9jdXNlZEluZGV4KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mb2N1c2VkSW5k
ZXg7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpmb2N1c0ZpcnN0KCkKK3ZvaWQgUG9wdXBNZW51V2lu
Ojpmb2N1c0ZpcnN0KCkKIHsKICAgICBpZiAoIWNsaWVudCgpKQogICAgICAgICByZXR1cm47CkBA
IC00MjQsNyArNDMwLDcgQEAgdm9pZCBQb3B1cE1lbnU6OmZvY3VzRmlyc3QoKQogICAgICAgICB9
CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojpmb2N1c0xhc3QoKQordm9pZCBQb3B1cE1lbnVXaW46OmZv
Y3VzTGFzdCgpCiB7CiAgICAgaWYgKCFjbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDM4
LDcgKzQ0NCw3IEBAIHZvaWQgUG9wdXBNZW51Ojpmb2N1c0xhc3QoKQogICAgICAgICB9CiB9CiAK
LWJvb2wgUG9wdXBNZW51Ojpkb3duKHVuc2lnbmVkIGxpbmVzKQorYm9vbCBQb3B1cE1lbnVXaW46
OmRvd24odW5zaWduZWQgbGluZXMpCiB7CiAgICAgaWYgKCFjbGllbnQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNDU3LDcgKzQ2Myw3IEBAIGJvb2wgUG9wdXBNZW51Ojpkb3duKHVuc2ln
bmVkIGxpbmVzKQogICAgIHJldHVybiBzZXRGb2N1c2VkSW5kZXgobGFzdFNlbGVjdGFibGVJbmRl
eCk7CiB9CiAKLWJvb2wgUG9wdXBNZW51Ojp1cCh1bnNpZ25lZCBsaW5lcykKK2Jvb2wgUG9wdXBN
ZW51V2luOjp1cCh1bnNpZ25lZCBsaW5lcykKIHsKICAgICBpZiAoIWNsaWVudCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC00NzYsNyArNDgyLDcgQEAgYm9vbCBQb3B1cE1lbnU6OnVwKHVu
c2lnbmVkIGxpbmVzKQogICAgIHJldHVybiBzZXRGb2N1c2VkSW5kZXgobGFzdFNlbGVjdGFibGVJ
bmRleCk7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpCit2
b2lkIFBvcHVwTWVudVdpbjo6aW52YWxpZGF0ZUl0ZW0oaW50IGluZGV4KQogewogICAgIGlmICgh
bV9wb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDkxLDcgKzQ5Nyw3IEBAIHZvaWQgUG9wdXBN
ZW51OjppbnZhbGlkYXRlSXRlbShpbnQgaW5kZXgpCiAgICAgOjpJbnZhbGlkYXRlUmVjdChtX3Bv
cHVwLCAmciwgVFJVRSk7CiB9CiAKLUludFJlY3QgUG9wdXBNZW51OjpjbGllbnRSZWN0KCkgY29u
c3QKK0ludFJlY3QgUG9wdXBNZW51V2luOjpjbGllbnRSZWN0KCkgY29uc3QKIHsKICAgICBJbnRS
ZWN0IGNsaWVudFJlY3QgPSBtX3dpbmRvd1JlY3Q7CiAgICAgY2xpZW50UmVjdC5pbmZsYXRlKC1w
b3B1cFdpbmRvd0JvcmRlcldpZHRoKTsKQEAgLTQ5OSwxMiArNTA1LDEyIEBAIEludFJlY3QgUG9w
dXBNZW51OjpjbGllbnRSZWN0KCkgY29uc3QKICAgICByZXR1cm4gY2xpZW50UmVjdDsKIH0KIAot
dm9pZCBQb3B1cE1lbnU6OmluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKQordm9pZCBQb3B1
cE1lbnVXaW46OmluY3JlbWVudFdoZWVsRGVsdGEoaW50IGRlbHRhKQogewogICAgIG1fd2hlZWxE
ZWx0YSArPSBkZWx0YTsKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnJlZHVjZVdoZWVsRGVsdGEoaW50
IGRlbHRhKQordm9pZCBQb3B1cE1lbnVXaW46OnJlZHVjZVdoZWVsRGVsdGEoaW50IGRlbHRhKQog
ewogICAgIEFTU0VSVChkZWx0YSA+PSAwKTsKICAgICBBU1NFUlQoZGVsdGEgPD0gYWJzKG1fd2hl
ZWxEZWx0YSkpOwpAQCAtNTE3LDcgKzUyMyw3IEBAIHZvaWQgUG9wdXBNZW51OjpyZWR1Y2VXaGVl
bERlbHRhKGludCBkZWx0YSkKICAgICAgICAgcmV0dXJuOwogfQogCi1ib29sIFBvcHVwTWVudTo6
c2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKQorYm9vbCBQb3B1cE1lbnVXaW46OnNjcm9sbFRvUmV2
ZWFsU2VsZWN0aW9uKCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC01MzcsNyArNTQzLDcgQEAgYm9vbCBQb3B1cE1lbnU6OnNjcm9sbFRvUmV2ZWFs
U2VsZWN0aW9uKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUG9wdXBNZW51Ojp1cGRh
dGVGcm9tRWxlbWVudCgpCit2b2lkIFBvcHVwTWVudVdpbjo6dXBkYXRlRnJvbUVsZW1lbnQoKQog
ewogICAgIGlmICghbV9wb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTQ5LDE0ICs1NTUsOSBA
QCB2b2lkIFBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICA6OlVwZGF0ZVdp
bmRvdyhtX3BvcHVwKTsKIH0KIAotYm9vbCBQb3B1cE1lbnU6Oml0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkgCi17IAotICAgIHJldHVybiB0cnVlOyAKLX0KLQogY29uc3QgaW50IHNlcGFy
YXRvclBhZGRpbmcgPSA0OwogY29uc3QgaW50IHNlcGFyYXRvckhlaWdodCA9IDE7Ci12b2lkIFBv
cHVwTWVudTo6cGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDIGhkYykKK3ZvaWQg
UG9wdXBNZW51V2luOjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRjKQog
ewogICAgIGlmICghbV9wb3B1cCkKICAgICAgICAgcmV0dXJuOwpAQCAtNjYzLDcgKzY2NCw3IEBA
IHZvaWQgUG9wdXBNZW51OjpwYWludChjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBIREMgaGRj
KQogICAgICAgICA6OlJlbGVhc2VEQyhtX3BvcHVwLCBsb2NhbERDKTsKIH0KIAotdm9pZCBQb3B1
cE1lbnU6OnZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqIHNjcm9sbEJhcikKK3ZvaWQgUG9wdXBNZW51
V2luOjp2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKiBzY3JvbGxCYXIpCiB7CiAgICAgQVNTRVJUKG1f
c2Nyb2xsYmFyKTsKIApAQCAtNjk5LDcgKzcwMCw3IEBAIHZvaWQgUG9wdXBNZW51Ojp2YWx1ZUNo
YW5nZWQoU2Nyb2xsYmFyKiBzY3JvbGxCYXIpCiAgICAgOjpVcGRhdGVXaW5kb3cobV9wb3B1cCk7
CiB9CiAKLXZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIq
IHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgUG9wdXBNZW51V2luOjppbnZh
bGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwogICAgIHNjcm9sbFJlY3Qu
bW92ZShzY3JvbGxiYXItPngoKSwgc2Nyb2xsYmFyLT55KCkpOwpAQCAtNzA3LDcgKzcwOCw3IEBA
IHZvaWQgUG9wdXBNZW51OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9s
bGJhciwgY29uc3QgSW50UmVjdCYgcmVjCiAgICAgOjpJbnZhbGlkYXRlUmVjdChtX3BvcHVwLCAm
ciwgZmFsc2UpOwogfQogCi12b2lkIFBvcHVwTWVudTo6cmVnaXN0ZXJDbGFzcygpCit2b2lkIFBv
cHVwTWVudVdpbjo6cmVnaXN0ZXJDbGFzcygpCiB7CiAgICAgc3RhdGljIGJvb2wgaGF2ZVJlZ2lz
dGVyZWRXaW5kb3dDbGFzcyA9IGZhbHNlOwogCkBAIC03NDMsNyArNzQ0LDcgQEAgdm9pZCBQb3B1
cE1lbnU6OnJlZ2lzdGVyQ2xhc3MoKQogfQogCiAKLUxSRVNVTFQgQ0FMTEJBQ0sgUG9wdXBNZW51
OjpQb3B1cE1lbnVXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFt
LCBMUEFSQU0gbFBhcmFtKQorTFJFU1VMVCBDQUxMQkFDSyBQb3B1cE1lbnVXaW46OlBvcHVwTWVu
dVduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBs
UGFyYW0pCiB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgTE9ORyBsb25nUHRyID0gR2V0V2luZG93TG9u
ZyhoV25kLCAwKTsKQEAgLTc3MSw3ICs3NzIsNyBAQCBMUkVTVUxUIENBTExCQUNLIFBvcHVwTWVu
dTo6UG9wdXBNZW51V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYQog
CiBjb25zdCBpbnQgc21vb3RoU2Nyb2xsQW5pbWF0aW9uRHVyYXRpb24gPSA1MDAwOwogCi1MUkVT
VUxUIFBvcHVwTWVudTo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKK0xSRVNVTFQgUG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewogICAg
IExSRVNVTFQgbFJlc3VsdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcyYzViMAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCkBAIC0wLDAgKzEsOTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFBvcHVwTWVudVdpbl9oCisjZGVmaW5lIFBvcHVwTWVu
dVdpbl9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5j
bHVkZSAiU2Nyb2xsYmFyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwordHlw
ZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwordHlwZWRlZiBzdHJ1Y3QgSERDX18qIEhEQzsKK3R5
cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudVdp
biA6IHB1YmxpYyBQb3B1cE1lbnUsIHByaXZhdGUgU2Nyb2xsYmFyQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICBQb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVdpbigp
OworCisgICAgdmlydHVhbCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGlu
dCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlRnJvbUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwor
Citwcml2YXRlOgorICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4g
bV9wb3B1cENsaWVudDsgfQorCisgICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJl
dHVybiBtX3Njcm9sbGJhci5nZXQoKTsgfQorCisgICAgc3RhdGljIExQQ1RTVFIgcG9wdXBDbGFz
c05hbWUoKTsKKworICAgIGJvb2wgdXAodW5zaWduZWQgbGluZXMgPSAxKTsKKyAgICBib29sIGRv
d24odW5zaWduZWQgbGluZXMgPSAxKTsKKworICAgIGludCBpdGVtSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtSGVpZ2h0OyB9CisgICAgY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2luZG93UmVjdDsgfQorICAgIEludFJlY3QgY2xpZW50UmVjdCgpIGNv
bnN0OworCisgICAgaW50IHZpc2libGVJdGVtcygpIGNvbnN0OworCisgICAgaW50IGxpc3RJbmRl
eEF0UG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKKworICAgIGJvb2wgc2V0Rm9jdXNlZElu
ZGV4KGludCBpbmRleCwgYm9vbCBob3RUcmFja2luZyA9IGZhbHNlKTsKKyAgICBpbnQgZm9jdXNl
ZEluZGV4KCkgY29uc3Q7CisgICAgdm9pZCBmb2N1c0ZpcnN0KCk7CisgICAgdm9pZCBmb2N1c0xh
c3QoKTsKKworICAgIHZvaWQgcGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDID0g
MCk7CisKKyAgICBIV05EIHBvcHVwSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cDsgfQor
CisgICAgdm9pZCBzZXRXYXNDbGlja2VkKGJvb2wgYiA9IHRydWUpIHsgbV93YXNDbGlja2VkID0g
YjsgfQorICAgIGJvb2wgd2FzQ2xpY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2xpY2tlZDsg
fQorCisgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoaW50IG9mZnNldCkgeyBtX3Njcm9sbE9mZnNl
dCA9IG9mZnNldDsgfQorICAgIGludCBzY3JvbGxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbE9mZnNldDsgfQorCisgICAgYm9vbCBzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOworCisg
ICAgdm9pZCBpbmNyZW1lbnRXaGVlbERlbHRhKGludCBkZWx0YSk7CisgICAgdm9pZCByZWR1Y2VX
aGVlbERlbHRhKGludCBkZWx0YSk7CisgICAgaW50IHdoZWVsRGVsdGEoKSBjb25zdCB7IHJldHVy
biBtX3doZWVsRGVsdGE7IH0KKworICAgIGJvb2wgc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbGJhckNhcHR1cmluZ01vdXNlOyB9CisgICAgdm9pZCBzZXRT
Y3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29sIGIpIHsgbV9zY3JvbGxiYXJDYXB0dXJpbmdNb3Vz
ZSA9IGI7IH0KKworICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKK307CisKK30K
KworI2VuZGlmIC8vIFBvcHVwTWVudVdpbl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNo
UG9wdXBNZW51V2luLmNwcAppbmRleCBmMjcwOWJiLi40YTVjYjIyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTE4LDE5ICsxOSwyNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnVXaW4uaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShjbGll
bnQpCitTZWFyY2hQb3B1cE1lbnVXaW46OlNlYXJjaFBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoY2xpZW50KQogewogfQogCi1ib29sIFNlYXJjaFBv
cHVwTWVudTo6ZW5hYmxlZCgpCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudVdpbjo6cG9wdXBN
ZW51KCkKK3sKKyAgICByZXR1cm4gJm1fcG9wdXA7Cit9CisKK2Jvb2wgU2VhcmNoUG9wdXBNZW51
V2luOjplbmFibGVkKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQxLDcgKzQ3LDcgQEAg
c3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gYXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIGtleS5jcmVh
dGVDRlN0cmluZygpKTsKIH0KIAotdm9pZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51V2luOjpzYXZlUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
CiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC02MSw3ICs2
Nyw3IEBAIHZvaWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8CiAgICAgQ0ZQcmVmZXJlbmNlc0FwcFN5bmNo
cm9uaXplKGtDRlByZWZlcmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKIH0KIAotdm9pZCBTZWFy
Y2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKK3ZvaWQgU2VhcmNoUG9wdXBNZW51V2luOjps
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4u
aCBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlODdkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaApAQCAtMCwwICsxLDQ0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU2VhcmNoUG9wdXBNZW51V2luX2gKKyNkZWZpbmUg
U2VhcmNoUG9wdXBNZW51V2luX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVdpbi5oIgorI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNl
YXJjaFBvcHVwTWVudVdpbiA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgeworcHVibGljOgorICAg
IFNlYXJjaFBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9w
dXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJv
b2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudVdpbiBtX3BvcHVwOworfTsK
KworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51V2luX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1
cE1lbnVXeC5jcHAKaW5kZXggOWIwZGViYS4uZTg4ZDFlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Qb3B1
cE1lbnVXeC5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
cG9wdXAgbWVudSBpbXBsZW1lbnRhdGlvbiBmb3IgPHNlbGVjdD4gZWxlbWVudHMgaW4gV2ViQ29y
ZS4KICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDcgKzIyLDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51V3guaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBA
IC00MSwxOCArNDIsMjMgQEAgc3RhdGljIGludCBzX21lbnVTdGFydElkID0gd3hOZXdJZCgpOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQorUG9wdXBNZW51V3g6OlBvcHVwTWVudVd4KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KQogICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX21lbnUoTlVMTCkK
IHsKIH0KIAotUG9wdXBNZW51Ojp+UG9wdXBNZW51KCkKK1BvcHVwTWVudVd4Ojp+UG9wdXBNZW51
V3goKQogewogICAgIGRlbGV0ZSBtX21lbnU7CiB9CiAKLXZvaWQgUG9wdXBNZW51OjpzaG93KGNv
bnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQordm9pZCBQb3B1cE1lbnVX
eDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9wb3B1cENsaWVudCA9IDA7Cit9CisKK3Zv
aWQgUG9wdXBNZW51V3g6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQg
aW5kZXgpCiB7CiAgICAgLy8ganVzdCBkZWxldGUgYW5kIHJlY3JlYXRlCiAgICAgZGVsZXRlIG1f
bWVudTsKQEAgLTc4LDEzICs4NCwxMyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKICAgICAgICAgICAgICAgICAgICAgbV9t
ZW51LT5BcHBlbmQoc19tZW51U3RhcnRJZCArIGksIGNsaWVudCgpLT5pdGVtVGV4dChpKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgbmF0aXZlV2luLT5Db25uZWN0KHNfbWVu
dVN0YXJ0SWQsIHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NF
TEVDVEVELCB3eENvbW1hbmRFdmVudEhhbmRsZXIoUG9wdXBNZW51OjpPbk1lbnVJdGVtU2VsZWN0
ZWQpLCBOVUxMLCB0aGlzKTsKKyAgICAgICAgbmF0aXZlV2luLT5Db25uZWN0KHNfbWVudVN0YXJ0
SWQsIHNfbWVudVN0YXJ0SWQgKyAoc2l6ZS0xKSwgd3hFVlRfQ09NTUFORF9NRU5VX1NFTEVDVEVE
LCB3eENvbW1hbmRFdmVudEhhbmRsZXIoUG9wdXBNZW51V3g6Ok9uTWVudUl0ZW1TZWxlY3RlZCks
IDAsIHRoaXMpOwogICAgICAgICBuYXRpdmVXaW4tPlBvcHVwTWVudShtX21lbnUsIHIueCgpIC0g
di0+c2Nyb2xsWCgpLCByLnkoKSAtIHYtPnNjcm9sbFkoKSk7Ci0gICAgICAgIG5hdGl2ZVdpbi0+
RGlzY29ubmVjdChzX21lbnVTdGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUtMSksIHd4RVZU
X0NPTU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVudTo6
T25NZW51SXRlbVNlbGVjdGVkKSwgTlVMTCwgdGhpcyk7CisgICAgICAgIG5hdGl2ZVdpbi0+RGlz
Y29ubmVjdChzX21lbnVTdGFydElkLCBzX21lbnVTdGFydElkICsgKHNpemUtMSksIHd4RVZUX0NP
TU1BTkRfTUVOVV9TRUxFQ1RFRCwgd3hDb21tYW5kRXZlbnRIYW5kbGVyKFBvcHVwTWVudVd4OjpP
bk1lbnVJdGVtU2VsZWN0ZWQpLCAwLCB0aGlzKTsKICAgICB9CiB9CiAKLXZvaWQgUG9wdXBNZW51
OjpPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmIGV2ZW50KQordm9pZCBQb3B1cE1l
bnVXeDo6T25NZW51SXRlbVNlbGVjdGVkKHd4Q29tbWFuZEV2ZW50JiBldmVudCkKIHsKICAgICBp
ZiAoY2xpZW50KCkpIHsKICAgICAgICAgY2xpZW50KCktPnZhbHVlQ2hhbmdlZChldmVudC5HZXRJ
ZCgpIC0gc19tZW51U3RhcnRJZCk7CkBAIC05MywyMCArOTksMTUgQEAgdm9pZCBQb3B1cE1lbnU6
Ok9uTWVudUl0ZW1TZWxlY3RlZCh3eENvbW1hbmRFdmVudCYgZXZlbnQpCiAgICAgLy8gVE9ETzog
RG8gd2UgbmVlZCB0byBjYWxsIERpc2Nvbm5lY3QgaGVyZT8gRG8gd2UgaGF2ZSBhIHJlZiB0byB0
aGUgbmF0aXZlIHdpbmRvdyBzdGlsbD8KIH0KIAotdm9pZCBQb3B1cE1lbnU6OmhpZGUoKQordm9p
ZCBQb3B1cE1lbnVXeDo6aGlkZSgpCiB7CiAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0
aGluZyBoZXJlLCB0aGUgbmF0aXZlIGNvbnRyb2wgb25seSBleGlzdHMgZHVyaW5nIHRoZSB0aW1l
CiAgICAgLy8gc2hvdyBpcyBjYWxsZWQKIH0KIAotdm9pZCBQb3B1cE1lbnU6OnVwZGF0ZUZyb21F
bGVtZW50KCkKK3ZvaWQgUG9wdXBNZW51V3g6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKICAgICBj
bGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKG1fcG9wdXBDbGllbnQtPnNlbGVjdGVkSW5kZXgoKSk7
CiB9CiAKLWJvb2wgUG9wdXBNZW51OjppdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCi17
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3d4L1BvcHVwTWVudVd4LmggYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1BvcHVwTWVudVd4LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI1NzNmYwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvUG9wdXBNZW51V3guaApAQCAtMCwwICsxLDYyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUG9wdXBNZW51V3hfaAorI2RlZmluZSBQb3B1cE1l
bnVXeF9oCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCisjaWZkZWYgX19XWE1TV19fCisjaW5jbHVk
ZSA8d3gvbXN3L3dpbnVuZGVmLmg+CisjZW5kaWYKK2NsYXNzIHd4TWVudTsKKyNpbmNsdWRlIDx3
eC9kZWZzLmg+CisjaW5jbHVkZSA8d3gvZXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxiYXI7CisKK2NsYXNzIFBvcHVwTWVudVd4
IDogcHVibGljIFBvcHVwTWVudSwgcHVibGljIHd4RXZ0SGFuZGxlciB7CitwdWJsaWM6CisgICAg
UG9wdXBNZW51V3goUG9wdXBNZW51Q2xpZW50Kik7CisgICAgflBvcHVwTWVudVd4KCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZh
dGU6CisgICAgdm9pZCBPbk1lbnVJdGVtU2VsZWN0ZWQod3hDb21tYW5kRXZlbnQmKTsKKyAgICBQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0K
KworICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKKyAgICB3eE1lbnUqIG1fbWVu
dTsKK307CisKK30KKworI2VuZGlmIC8vIFBvcHVwTWVudVd4X2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93
eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAKaW5kZXggZGJiZTMzOS4uYTVhZWIxYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDMyICsyNSwz
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1l
bnUuaCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVXeC5oIgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZWFyY2hQb3B1cE1lbnU6OlNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IFBvcHVwTWVudShj
bGllbnQpCitTZWFyY2hQb3B1cE1lbnVXeDo6U2VhcmNoUG9wdXBNZW51V3goUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGNsaWVudCkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIFNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQor
dm9pZCBTZWFyY2hQb3B1cE1lbnVXeDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRl
bXMpCit2b2lkIFNlYXJjaFBvcHVwTWVudVd4Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBTZWFyY2hQb3B1cE1lbnU6OmVuYWJsZWQoKQorYm9v
bCBTZWFyY2hQb3B1cE1lbnVXeDo6ZW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51V3g6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJu
ICZtX3BvcHVwOworfQorCiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2Vh
cmNoUG9wdXBNZW51V3guaCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9wdXBNZW51V3gu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGM3N2JhCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9TZWFyY2hQb3B1cE1lbnVXeC5oCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVXeF9o
CisjZGVmaW5lIFNlYXJjaFBvcHVwTWVudVd4X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVd4Lmgi
CisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU2VhcmNoUG9wdXBNZW51V3ggOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1Ymxp
YzoKKyAgICBTZWFyY2hQb3B1cE1lbnVXeChQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1
YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0
dWFsIGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFBvcHVwTWVudVd4IG1fcG9wdXA7
Cit9OworCit9CisKKyNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVXeF9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggZmYxNmU3ZS4uYjZhOTdhOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlck1l
bnVMaXN0LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQ2hyb21l
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC04OCw4ICs4OSw4IEBAIHZvaWQgUmVuZGVyTWVudUxp
c3Q6OmFkanVzdElubmVyU3R5bGUoKQogICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFk
ZGluZ1JpZ2h0KExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KHN0eWxl
KCkpLCBGaXhlZCkpOwogICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ1RvcChM
ZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdUb3Aoc3R5bGUoKSksIEZpeGVkKSk7
CiAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nQm90dG9tKExlbmd0aCh0aGVt
ZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShzdHlsZSgpKSwgRml4ZWQpKTsKLSAgICAg
ICAgCi0gICAgaWYgKFBvcHVwTWVudTo6aXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkg
eworCisgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPnNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKICAgICAgICAgLy8gSXRlbXMgaW4gdGhlIHBvcHVw
IHdpbGwgbm90IHJlc3BlY3QgdGhlIENTUyB0ZXh0LWFsaWduIGFuZCBkaXJlY3Rpb24gcHJvcGVy
dGllcywKICAgICAgICAgLy8gc28gd2UgbXVzdCBhZGp1c3Qgb3VyIG93biBzdHlsZSB0byBtYXRj
aC4KICAgICAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRUZXh0QWxpZ24oTEVGVCk7CkBA
IC0yNzgsNyArMjc5LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICAv
LyBpbnNpZGUgdGhlIHNob3dQb3B1cCBjYWxsIGFuZCBpdCB3b3VsZCBmYWlsLgogICAgIGNyZWF0
ZUlubmVyQmxvY2soKTsKICAgICBpZiAoIW1fcG9wdXApCi0gICAgICAgIG1fcG9wdXAgPSBQb3B1
cE1lbnU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9IGRvY3VtZW50KCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKICAgICBTZWxlY3RFbGVtZW50KiBz
ZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSkpOwog
ICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
aAppbmRleCBhZWY4ZDRmLi41ODM1ZjhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgK
QEAgLTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgUmVuZGVyTWVudUxpc3RfaAogI2RlZmluZSBSZW5k
ZXJNZW51TGlzdF9oCiAKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1l
bnVDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgogCkBAIC0zNSw4ICsz
Niw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9wdXBNZW51OwogY2xhc3Mg
UmVuZGVyVGV4dDsKK2NsYXNzIFNlbGVjdFVJQ2xpZW50OwogCiAjaWYgRU5BQkxFKE5PX0xJU1RC
T1hfUkVOREVSSU5HKQogY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxleGli
bGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBmNDBmYmYwLi5iY2Qz
NzI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA4
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNo
bW9iaWxlLmNvbS8pIAogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsy
NCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNl
bGVjdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBA
IC0zOCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgotI2luY2x1ZGUgIlNlYXJj
aFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCkBAIC02Miw3ICs2Myw3
IEBAIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lKE5vZGUqIG5vZGUsIGJvb2wgcGxhY2VoCiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
On5SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoKQogewogICAgIGlmIChtX3NlYXJjaFBvcHVw
KSB7Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAtPmRpc2Nvbm5lY3RDbGllbnQoKTsKKyAgICAgICAg
bV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAg
bV9zZWFyY2hQb3B1cCA9IDA7CiAgICAgfQogIApAQCAtMTA3LDcgKzEwOCw3IEBAIHZvaWQgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBv
cHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUodGhp
cyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgp
LT5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CiAKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZl
UmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiB9CkBAIC0xMjUsNyArMTI2
LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQ
b3B1cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3NlYXJjaFBv
cHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KHRoaXMpOwogCiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwLT5lbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE0NSwxNCArMTQ2LDE0IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpzaG93UG9wdXAoKQogICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNo
ZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+
c2hvdyhhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0cnVlKSwgZG9jdW1lbnQoKS0+dmlldygpLCAt
MSk7CisgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYWJzb2x1dGVCb3VuZGlu
Z0JveFJlY3QodHJ1ZSksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKCkKIHsKICAgICBBU1NFUlQobm9kZSgp
LT5pc0hUTUxFbGVtZW50KCkpOwogICAgIGlmIChtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3Nl
YXJjaFBvcHVwLT5oaWRlKCk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5o
aWRlKCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFz
Q2hhbmdlZCgpCkBAIC02ODUsNyArNjg2LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICB9CiAKICAgICBpZiAobV9zZWFyY2hQb3B1
cElzVmlzaWJsZSkKLSAgICAgICAgbV9zZWFyY2hQb3B1cC0+dXBkYXRlRnJvbUVsZW1lbnQoKTsK
KyAgICAgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7
CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjYWNoZVNlbGVjdGlvbihp
bnQgc3RhcnQsIGludCBlbmQpCkBAIC04ODMsNyArODg0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmly
ZUV2ZW4KICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFt
ZSgpOwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAg
IGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IFNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgICAgICAgICBtX3Nl
YXJjaFBvcHVwID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KHRoaXMpOwogICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRT
ZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApp
bmRleCA4YzdlODQ0Li40YmM4MGNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yNCw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVu
dS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDcg
KzM0LDYgQEAgY2xhc3MgSW5wdXRFbGVtZW50OwogY2xhc3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OwotY2xhc3MgU2VhcmNoUG9wdXBNZW51Owog
Y2xhc3MgU3BpbkJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudDsK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMDZlNWU4ZS4uMGU5YTdkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5i
b3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAg
ICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9w
dXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBj
bGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdl
ZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogc3JjL0No
cm9tZUNsaWVudEltcGwuaDoKKwogMjAxMC0wNy0yOSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGQ0M2Q4OGEuLmVlNjIzZjIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01
NSw2ICs1Niw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgorI2luY2x1ZGUg
IlNlYXJjaFBvcHVwTWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZS5oIgogI2lmIFVTRShWOCkKQEAgLTc2
NSw0ICs3NjcsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpleGl0RnVsbHNjcmVlbkZvck5v
ZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZXhp
dEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYk5vZGUobm9kZSkpOwogfQogCitib29sIENocm9tZUNsaWVu
dEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRJbXBsOjpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVDaHJvbWl1bShjbGllbnQpKTsKK30KKworUGFzc1Jl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNlYXJjaFBvcHVwTWVudUNocm9taXVtKGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggZTgy
NDM4MS4uNGRmOWFiYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzIsMTIgKzMzLDE1IEBACiAjZGVmaW5lIENocm9tZUNsaWVudEltcGxfaAog
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJQb3B1cE1lbnUu
aCIKKyNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIEZpbGVDaG9vc2VyOwogY2xhc3MgSFRN
TFBhcnNlclF1aXJrczsKIGNsYXNzIFBvcHVwQ29udGFpbmVyOworY2xhc3MgUG9wdXBNZW51Q2xp
ZW50OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiB9CkBA
IC0xNjUsNiArMTY5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJD
dXJzb3JJbmZvJiBjdXJzb3IpOwogICAgIHZvaWQgc2V0Q3Vyc29yRm9yUGx1Z2luKGNvbnN0IFdl
YkN1cnNvckluZm8mIGN1cnNvcik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29u
c3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiBw
cml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5l
ciosIFdlYlBvcHVwTWVudUluZm8qKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBhZDQ0MzkyLi5hODA4NWEwIDEwMDY0NAot
LS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFBvcHVwTWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisg
ICAgICAgIEFzIENocm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5n
IFBvcHVwTWVudSBhbmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3Jl
dGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNo
YW5nZWQgdG8KKyAgICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKwogMjAxMC0wNy0yNiAg
U3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmVyZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwCmluZGV4IGZmYmQ2NDIuLmYzN2RhMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTUsNiArNSw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggRGllZ28gR29uemFsZXoKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgpAQCAtNDcsNiArNDgsOCBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUG9w
dXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCiAjaW5jbHVkZSAi
Vmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1
ZGUgImV3a19wcml2YXRlLmgiCkBAIC01MTMsNCArNTE2LDE5IEBAIHZvaWQgQ2hyb21lQ2xpZW50
RWZsOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3
cG9ydEFyCiAgICAgZXdrX3ZpZXdfdmlld3BvcnRfc2V0KG1fdmlldywgYXJndW1lbnRzLndpZHRo
LCBhcmd1bWVudHMuaGVpZ2h0LCBhcmd1bWVudHMuaW5pdGlhbFNjYWxlLCBhcmd1bWVudHMubWlu
aW11bVNjYWxlLCBhcmd1bWVudHMubWF4aW11bVNjYWxlLCBhcmd1bWVudHMudXNlclNjYWxhYmxl
KTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1l
bnU+IENocm9tZUNsaWVudEVmbDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51RWZsKGNsaWVu
dCkpOworfQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVFZmwoY2xpZW50KSk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4IGNl
OGFiZDEuLmIyMmQ5ODEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuaApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5z
dGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzcs
NiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlVmlld3Bv
cnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1l
bnRzKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CisKICAgICBFdmFzX09iamVjdCogbV92aWV3OwogICAgIEtVUkwgbV9ob3ZlcmVkTGlu
a1VSTDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGJmMTc3N2QuLjY4NTFjM2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51
IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21l
Q2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBT
ZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQg
aW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAg
ICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZWxl
Y3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oOgorCiAyMDEwLTA3LTI2ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggODg0NDBiYS4uOTM5
NDE4YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDkgKzMyLDEyIEBACiAjaW5jbHVkZSAi
R3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudUd0ay5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJY29uLmgi
CiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUd0ay5oIgogI2lu
Y2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKICNpbmNsdWRlICJ3ZWJr
aXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKQEAgLTYxNiw0
ICs2MjAsMTkgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnIKICAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUod2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5jZWxsZWQiLCB3
ZWJGcmFtZSk7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFBvcHVwTWVudUd0ayhjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U2VhcmNoUG9wdXBNZW51R3RrKGNsaWVudCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBjZTVjNWE3Li4zZjc2ZDE5IDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw5ICsyMywxNSBAQAogCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3OwogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBQb3B1cE1lbnVDbGllbnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgY2xhc3Mg
Q2hyb21lQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjIsNiAr
MTI5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R2VvbG9jYXRpb24qKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKik7CiAKKyAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworCiAgICAg
cHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJD
b3JlOjpLVVJMIG1faG92ZXJlZExpbmtVUkw7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hh
bmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA4NDFhOTRjLi5jZmRkZGYzIDEw
MDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlrdS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXou
YWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8g
V2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDI1OTIKKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9y
IHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBpbnN0YW5j
ZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRl
ZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0ZVBv
cHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5oOgorCiAyMDEwLTA3LTE2ICBaaGUgU3UgIDxzdXpoZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBkMThiODRkLi42ZDY0YWM3IDEwMDY0
NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3Bw
CisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAK
QEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0Br
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3IFJ5YW4gTGVhdmVuZ29vZCA8
bGVhdmVuZ29vZEBnbWFpbC5jb20+IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
ICoKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM1LDYgKzM2LDggQEAKICNpbmNsdWRlICJJY29uLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlBvcHVwTWVudUhhaWt1LmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
SGFpa3UuaCIKIAogI2luY2x1ZGUgPEFsZXJ0Lmg+CiAjaW5jbHVkZSA8U3RyaW5nLmg+CkBAIC0z
ODAsNSArMzgzLDIwIEBAIFBhc3NPd25QdHI8SFRNTFBhcnNlclF1aXJrcz4gQ2hyb21lQ2xpZW50
SGFpa3U6OmNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKQogICAgIHJldHVybiAwOwogfQogCitib29s
IENocm9tZUNsaWVudEhhaWt1OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21l
Q2xpZW50SGFpa3U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOwor
fQorCitQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50SGFpa3U6OmNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUhhaWt1KGNsaWVudCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggOTYzZTcyZi4uMzhmZWYyNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tAa2RlLm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwu
Y29tPiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0xMjgsNiArMTI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lKTsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CisKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVl
ZGVkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCAwMTM3ODBkLi4xOTQ4ZjM5IDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVw
TWVudSByZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIEFzIENo
cm9tZUNsaWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBh
bmQgU2VhcmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0
aGF0IGluaGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAg
ICAgICAgaW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1
cE1lbnUpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUp
OgorCiAyMDEwLTA3LTI2ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDdkMDgwLi5mYTI5YjMyIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY3LDYgKzE2NywxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdl
YkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGViNTYyNDAuLmU5M2VhMDkgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisr
KyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYyLDEyICs2MiwxNiBA
QAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2Ny
ZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1BvcHVwTWVudU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2ltcG9ydCA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAorCisKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNlbmRpZgpAQCAtNzI0LDYgKzcyOCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9y
bURpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoY29uc3Rf
Y2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKK30KKwor
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51TWFjKGNsaWVudCkp
OworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggODU4YmYyOS4uZjg2NWViZSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9w
dXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMg
Q2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51
IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAgICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2Vz
IHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bwor
ICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
UXQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0wNy0yOSAgQWxleGlzIE1lbmFyZCAg
PGFsZXhpcy5tZW5hcmRAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8g
R29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRl
eCAyYzY0YTc4Li43OTEwYzFmIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IFph
Y2sgUnVzaW4gPHphY2tAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIgog
I2luY2x1ZGUgIlBhZ2VDbGllbnRRdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCiAjaWYg
ZGVmaW5lZChRX1dTX01BRU1PXzUpCiAjaW5jbHVkZSAiUXRNYWVtb1dlYlBvcHVwLmgiCiAjZWxz
ZQpAQCAtNTIsNiArNTQsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIK
ICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCkBAIC02NDQsNCArNjQ3LDE5IEBA
IHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSog
ZnJhbWUsIGNvbnN0IFZpZXdwb3J0QXJnCiAgICAgZW1pdCBtX3dlYlBhZ2UtPnZpZXdwb3J0Q2hh
bmdlUmVxdWVzdGVkKGhpbnRzKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRRdDo6c2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudFF0OjpjcmVhdGVQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
b3B1cE1lbnVRdChjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENo
cm9tZUNsaWVudFF0OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGll
bnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVRdChj
bGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCA3MGI0YTI1Li4wNmFiNWI4IDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTE3Niw2ICsxNzcsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNaW5pbWl6ZWQoKTsK
ICNlbmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpOworICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVh
dGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKKwogICAgICAgICBRdEFic3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNlbGVj
dFBvcHVwKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFyZ3Vt
ZW50cyhGcmFtZSosIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDZiODFi
Y2MuLmFiYjk2NTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMjcgIEx1aXogQWdvc3Rp
bmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBh
cmF0aW9uIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyNTkyCisKKyAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3Bv
bnNpYmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKKyAgICAg
ICAgaW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNs
aWVudCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bworICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBt
ZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDEwLTA3LTI2ICBTdGV2ZSBC
bG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJl
bXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggNzM1MzJhNi4uMmU5YmE1YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNiArNTYsOCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1BvcHVwTWVudVdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBN
ZW51V2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI3ByYWdtYSB3
YXJuaW5nKHBvcCkKIApAQCAtODY4LDMgKzg3MSwxOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKQogCiAjZW5kaWYKIAorYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZWFyY2hQb3B1cE1lbnVXaW4oY2xpZW50KSk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3ODQ1YTkuLmU3MTdlZjEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTY1LDYgKzE2NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKj4obV9u
b3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gv
Q2hhbmdlTG9nCmluZGV4IGFmN2ZjZDcuLjczZjMyYzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEw
LTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvcHVwTWVudSBy
ZWZhY3RvcmluZyBpbiBwcmVwYXJhdGlvbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU5MgorCisgICAgICAgIEFzIENocm9tZUNs
aWVudCB3YXMgbWFkZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIFBvcHVwTWVudSBhbmQgU2Vh
cmNoUG9wdXBNZW51CisgICAgICAgIGluc3RhbmNlcywgY29uY3JldGUgY2xhc3NlcyB0aGF0IGlu
aGVyaXQgZnJvbSBDaHJvbWVDbGllbnQgbmVlZGVkIHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAg
aW1wbGVtZW50IHRoZSBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpjcmVhdGVQb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50V3g6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oOgorCiAyMDEwLTA3LTI5ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0
aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFt3eF0gQnVpbGQgZml4LCBhZGQgZmlsZSBtaXNz
aW5nIGZyb20gRE9NIGJpbmRpbmdzIGNvbW1pdC4KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcAppbmRleCBkODFhMjBjLi4yNTMxMmI0IDEwMDY0NAotLS0gYS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKKysrIGIvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNyBLZXZpbiBPbGxpdmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMzgsNiAr
MzksOCBAQAogI2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51V3guaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnVXeC5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgi
CiAKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDU4LDQgKzQ2MSwxOSBAQCB2b2lkIENocm9tZUNs
aWVudFd4OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9s
b2NhdGlvbiopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRX
eDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKworUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudFd4OjpjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQb3B1cE1lbnVXeChjbGllbnQpKTsKK30KKworUGFzc1JlZlB0cjxTZWFyY2hQ
b3B1cE1lbnU+IENocm9tZUNsaWVudFd4OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQ
b3B1cE1lbnVXeChjbGllbnQpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmgKaW5kZXggNGIxNTZlZC4uNWYyMmNiZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAorKysgYi9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwNyBLZXZpbiBPbGxpdmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTQxLDYgKzE0MiwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikg
eyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIHd4V2ViVmlldyogbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1dl
YktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjAzMDljYi4uODVkMWM3
NSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NCBAQAorMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3Rp
bmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQb3B1cE1lbnUgcmVmYWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIK
KworICAgICAgICBDbGFzc2VzIFdlYlBvcHVwTWVudSBhbmQgV2ViU2VhcmNoUG9wdXBNZW51IGlu
aGVyaXQgZnJvbSBQb3B1cE1lbnUgYW5kCisgICAgICAgIFNlYXJjaFBvcHVwTWVudSByZXNwZWN0
aXZlbHkuIEF0IHRoaXMgcG9pbnQgdGhleSBhcmUganVzdCBlbXB0eSBpbXBsZW1lbnRhdGlvbnMu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnU6OldlYlBvcHVwTWVudSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6fldlYlBvcHVwTWVudSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6aGlk
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51Lmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6V2ViU2Vh
cmNoUG9wdXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51Ojpwb3B1
cE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRT
ZWFyY2hlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2Vu
dFNlYXJjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjplbmFibGVk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVu
dS5oOiBBZGRlZC4KKworICAgICAgICBBcyBDaHJvbWVDbGllbnQgd2FzIG1hZGUgcmVzcG9uc2li
bGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJjaFBvcHVwTWVudQorICAgICAgICBp
bnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQ2hyb21lQ2xpZW50
IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUgbmV3IG1ldGhv
ZHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRp
bmdEaXJlY3Rpb25Jc05hdHVyYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorCisgICAgICAgIGJ1aWxkIGlzc3VlczoKKworICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0
Mi52Y3Byb2o6CisKIDIwMTAtMDctMzAgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2Vk
Lmh1PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YmE0NTMzLi40MzMwZDA4IDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY0LDYgKzI2NCwxMCBAQAog
CQlCQ0Y2OUZBMzExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTExMTc2RDAx
NDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmNwcCAqLzsgfTsKIAkJQkNGNjlGQTkxMTc2
RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5RkE3MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05h
dmlnYXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQlCQ0Y2OUZBQTExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUZBODEx
NzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAgKi87IH07CisJCUQzQjk0ODQ2
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5jcHAgKi87IH07CisJCUQzQjk0ODQ3MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQ
b3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQjk0ODQzMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCAqLzsgfTsKKwkJRDNC
OTQ4NDgxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0NDExRkY0QjY1MDAw
MzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLzsgfTsKKwkJRDNCOTQ4NDkxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNl
YXJjaFBvcHVwTWVudS5oICovOyB9OwogCQlFMUVFNTNFMzExRjhDRkMwMDBDQ0JFRTQgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi87IH07CiAJCUUxRUU1M0U3MTFGOENGRkIwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi87IH07CiAJCUUxRUU1NUY0MTFG
OEYxODkwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTVGMzExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5k
bGVSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
QEAgLTU2Miw2ICs1NjYsMTAgQEAKIAkJQkNGNjlGQTExMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5h
dmlnYXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5hdmlnYXRpb25EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNjlG
QTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tOYXZpZ2F0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0Y2OUZBODExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS05hdmlnYXRpb25EYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDNCOTQ4NDIxMUZGNEI2NTAwMDMy
QjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEM0I5
NDg0MzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEM0I5NDg0NDExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
RUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRp
dG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENG
RkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTU1RjMxMUY4RjE4OTAw
Q0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tCdW5kbGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODU2LDYg
Kzg2NCwxMCBAQAogCQkJCUJDMDMyRDZEMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJJbnNwZWN0b3JD
bGllbnQuaCAqLywKIAkJCQkxQTNFNzM2MDExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCAqLywKIAkJCQkxQTNFNzM1RjExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmggKi8sCisJCQkJRDNCOTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlBvcHVwTWVudS5jcHAgKi8sCisJCQkJRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBv
cHVwTWVudS5oICovLAorCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwICovLAorCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFy
Y2hQb3B1cE1lbnUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViQ29yZVN1cHBvcnQ7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTMxNyw2ICsxMzI5LDggQEAKIAkJCQkxQUU0OUE0
OTExRkZBOENFMDA0OEI0NjQgLyogSlNOUE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNE
Qjg1ODIxMjAwRUM1NzAwNzI1NEJFIC8qIFdLVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNE
Qjg2QzExMjAwRkI5NzAwNzI1NEJFIC8qIFdlYlVSTC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDNC
OTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0xNTE4LDYgKzE1MzIsOCBAQAogCQkJCTFBRTQ5ODc5MTFGRjdGQUEwMDQ4
QjQ2NCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTQ5QTRBMTFGRkE4
Q0UwMDQ4QjQ2NCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDREI4NTgz
MTIwMEVDNTcwMDcyNTRCRSAvKiBXS1R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDNCOTQ4
NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlEM0I5NDg0ODExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZWNjM2I1Li44MWRiZTE5IDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApA
QCAtMzQsOSArMzQsMTEgQEAKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaCIK
KyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3Jl
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1l
c3NhZ2VLaW5kcy5oIgorI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgpAQCAtNDY5LDYgKzQ3MSwyMSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgTm9kZSopCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxXZWJD
b3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViUG9wdXBNZW51KGNsaWVudCkpOworfQorCitQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJTZWFyY2hQb3B1cE1lbnUoY2xpZW50KSk7Cit9CisKIFBhc3NPd25QdHI8SFRNTFBh
cnNlclF1aXJrcz4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGRkNDg3YjQuLmJkNjcxYjMgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTE2Miw2ICsxNjIsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIFBhc3NP
d25QdHI8V2ViQ29yZTo6SFRNTFBhcnNlclF1aXJrcz4gY3JlYXRlSFRNTFBhcnNlclF1aXJrcygp
OwogCisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNlNzM4YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0wLDAgKzEs
NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJQb3B1cE1lbnUuaCIKKworI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBvcHVw
TWVudUNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUG9wdXBNZW51OjpXZWJQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVw
Q2xpZW50KGNsaWVudCkKK3sKK30KKworV2ViUG9wdXBNZW51Ojp+V2ViUG9wdXBNZW51KCkKK3sK
K30KKworCit2b2lkIFdlYlBvcHVwTWVudTo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9w
b3B1cENsaWVudCA9IDA7Cit9CisKK3ZvaWQgV2ViUG9wdXBNZW51OjpzaG93KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHJlY3QsIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQor
eworCit9CisKK3ZvaWQgV2ViUG9wdXBNZW51OjpoaWRlKCkKK3sKK30KKwordm9pZCBXZWJQb3B1
cE1lbnU6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjA2NTUxYzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaWZuZGVmIFdlYlBvcHVwTWVudV9oCisjZGVmaW5lIFdlYlBvcHVw
TWVudV9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgUG9wdXBNZW51Q2xpZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUG9wdXBNZW51IDogcHVibGljIFdlYkNvcmU6OlBvcHVwTWVudSB7CitwdWJsaWM6CisgICAg
V2ViUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworICAgIH5XZWJQb3B1cE1lbnUoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpG
cmFtZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5l
Y3RDbGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIG1f
cG9wdXBDbGllbnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJQb3B1cE1lbnVfaApkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBN
ZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmYyNTFhCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYlNlYXJjaFBvcHVwTWVudTo6V2ViU2VhcmNoUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDogbV9wb3B1cChjbGllbnQp
Cit7Cit9CisKK1BvcHVwTWVudSogV2ViU2VhcmNoUG9wdXBNZW51Ojpwb3B1cE1lbnUoKQorewor
ICAgIHJldHVybiAmbV9wb3B1cDsKK30KKwordm9pZCBXZWJTZWFyY2hQb3B1cE1lbnU6OnNhdmVS
ZWNlbnRTZWFyY2hlcyhjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYpCit7Cit9CisKK3ZvaWQgV2ViU2VhcmNoUG9wdXBNZW51Ojpsb2FkUmVjZW50U2Vh
cmNoZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQorewor
fQorCitib29sIFdlYlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU2VhcmNoUG9wdXBNZW51LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMTE4MzNlMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgV2ViU2VhcmNoUG9wdXBNZW51X2gKKyNkZWZpbmUgV2ViU2VhcmNo
UG9wdXBNZW51X2gKKworI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgorI2luY2x1ZGUgIldl
YlBvcHVwTWVudS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2VhcmNoUG9w
dXBNZW51IDogcHVibGljIFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudSB7CitwdWJsaWM6CisgICAg
V2ViU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBXZWJD
b3JlOjpQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgV2ViQ29yZTo6QXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAg
V2ViUG9wdXBNZW51IG1fcG9wdXA7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJTZWFyY2hQb3B1
cE1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCA2YjA3NWU2Li5jMTQ3NmQzIDEwMDc1NQotLS0gYS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
agpAQCAtNTcxLDYgKzU3MSwyMiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnRcV2ViSW5zcGVjdG9yQ2xpZW50LmgiDQogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3Jl
U3VwcG9ydFxXZWJQb3B1cE1lbnUuY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2Vi
UG9wdXBNZW51LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViU2VhcmNoUG9wdXBNZW51Lmgi
DQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQkJPEZpbHRlcg0KIAkJCQkJTmFtZT0id2luIg0K
IAkJCQkJPg0KLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="51378"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>