<?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>176454</bug_id>
          
          <creation_ts>2017-09-06 07:13:08 -0700</creation_ts>
          <short_desc>Implement CSS overscroll-behavior</short_desc>
          <delta_ts>2023-04-10 09:28:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://drafts.csswg.org/css-overscroll-behavior/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>192358</dependson>
    
    <dependson>192397</dependson>
    
    <dependson>219305</dependson>
    
    <dependson>220139</dependson>
    
    <dependson>222968</dependson>
    
    <dependson>233788</dependson>
    
    <dependson>236060</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Majid Valipour">majidvp</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>709922234</cc>
    
    <cc>anders.emil.ekelund</cc>
    
    <cc>andrea</cc>
    
    <cc>augus.dupin</cc>
    
    <cc>b56girard</cc>
    
    <cc>baba</cc>
    
    <cc>bdakin</cc>
    
    <cc>blayze</cc>
    
    <cc>bramus</cc>
    
    <cc>brian</cc>
    
    <cc>bugs.webkit.org</cc>
    
    <cc>caity.heath</cc>
    
    <cc>cathiechen</cc>
    
    <cc>changseok</cc>
    
    <cc>chris.kde</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>contact</cc>
    
    <cc>dev</cc>
    
    <cc>diiiimaaaa</cc>
    
    <cc>doochik</cc>
    
    <cc>dvoytenko</cc>
    
    <cc>dvpdiner2</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>givizator</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haja.rasoah</cc>
    
    <cc>henrik</cc>
    
    <cc>hi</cc>
    
    <cc>hi</cc>
    
    <cc>hi</cc>
    
    <cc>ik</cc>
    
    <cc>jakub.g.opensource</cc>
    
    <cc>jamauro</cc>
    
    <cc>james.campbell</cc>
    
    <cc>jamesr</cc>
    
    <cc>jdopazo</cc>
    
    <cc>jochempim</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonlee</cc>
    
    <cc>j+webkit-bugzilla</cc>
    
    <cc>kai.hollberg</cc>
    
    <cc>kngan</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kris</cc>
    
    <cc>kris</cc>
    
    <cc>krumplester</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>ldebeasi</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>mail</cc>
    
    <cc>maksim.bondarew</cc>
    
    <cc>marcel.webkit</cc>
    
    <cc>mattcoz</cc>
    
    <cc>me</cc>
    
    <cc>menard</cc>
    
    <cc>michaelcpuckett</cc>
    
    <cc>mihaip</cc>
    
    <cc>nick</cc>
    
    <cc>nmouchtaris</cc>
    
    <cc>olestr</cc>
    
    <cc>paulo.sousa</cc>
    
    <cc>pdr</cc>
    
    <cc>petter</cc>
    
    <cc>piotrx151</cc>
    
    <cc>rado</cc>
    
    <cc>richardyrh928</cc>
    
    <cc>rigel</cc>
    
    <cc>rik</cc>
    
    <cc>romwtb</cc>
    
    <cc>rvanmil</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sakurotawa</cc>
    
    <cc>sean</cc>
    
    <cc>simon.bluhm</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>supersonicandtails</cc>
    
    <cc>tannerhodges</cc>
    
    <cc>the.bull</cc>
    
    <cc>tomac</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vepomoc</cc>
    
    <cc>vincentriemer</cc>
    
    <cc>wart.claes</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.org</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>yonseca</cc>
    
    <cc>youennf</cc>
    
    <cc>zyscoder</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1345914</commentid>
    <comment_count>0</comment_count>
    <who name="Majid Valipour">majidvp</who>
    <bug_when>2017-09-06 07:13:08 -0700</bug_when>
    <thetext>Consider implementing the new CSS scroll-boundary-behavior property.

## Specification
This feature specification is being incubated in WICG: 
https://wicg.github.io/scroll-boundary-behavior/


Note that this is first CSSWG spec which is going through this new process). 

Additional background on this feature may be found here: 
https://github.com/w3c/csswg-drafts/issues/769

## Summary
CSS scroll-boundary-behavior standardizes a supercharged version of &quot;-ms-scroll-chaining&quot;. It
allows developers to determine the browser&apos;s behavior once a scroller has reached its full extent.
The unused delta can be propagated to the parent causing scroll chaining, create a glow/bounce
effect without chaining, or just get consumed silently. In particular when used on viewport
defining element, it controls if overscroll can be used for navigation actions such as pull-to-
refresh or swipe navigation.


scroll-boundary-behavior: auto | contain | none

  * `auto`: propagate scroll to the parent scroller. If there is no parent scroller (e.g.,
    viewport) user-agent may perform a default action (e.g. navigation) or show any appropriate
    overscroll UI affordance. This is the default value.
  * `contain`: do not propagate. The user agent may show an appropriate overscroll UI affordance
    such as bounce or glow.
  * `none`: same as contain but also prevents any overscroll UI affordance e.g. bounce or glow.

There will be scroll-boundary-behavior-{x,y} long-hands to control each axis individually.


## Current State
The specification and API has received positive feedback and support from EdgeHTML [1], Mozilla
[2], Chromium[3], and web developers [4,5]. We at Chromium have an implementation landed in
Canary (behind a feature flag**). If we don&apos;t receive any strong negative signal we plan to ship
in M63 per intent-to-ship. [3]
 

[1] https://github.com/w3c/csswg-drafts/issues/769#issuecomment-270228948
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=951793#c11
[3] https://groups.google.com/a/chromium.org/d/msg/blink-dev/OqBNF2efmFA/3ByBUKyaCgAJ
[4] https://github.com/w3c/csswg-drafts/issues/769#issuecomment-279832555
[5] https://github.com/w3c/csswg-drafts/issues/769#issuecomment-288878908

** --enable-web-platform-experimental-features or --enable-blink-features=CSSScrollBoundaryBehavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346534</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-07 13:56:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/34315997&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374228</commentid>
    <comment_count>2</comment_count>
    <who name="Benoit Girard">b56girard</who>
    <bug_when>2017-11-22 10:29:26 -0800</bug_when>
    <thetext>The property has been renamed to &apos;overscroll-behavior&apos;: https://github.com/WICG/overscroll-behavior

There&apos;s been no major changes otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379155</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-07 10:45:20 -0800</bug_when>
    <thetext>*** Bug 179266 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458127</commentid>
    <comment_count>4</comment_count>
      <attachid>349309</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-09-10 08:07:08 -0700</bug_when>
    <thetext>Created attachment 349309
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458128</commentid>
    <comment_count>5</comment_count>
      <attachid>349310</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-09-10 08:07:48 -0700</bug_when>
    <thetext>Created attachment 349310
WIP Patch (CSS parsing only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463588</commentid>
    <comment_count>6</comment_count>
      <attachid>350862</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-09-26 07:55:08 -0700</bug_when>
    <thetext>Created attachment 350862
WIP Patch (CSS parsing only)

Use runtime instead of compile time flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473678</commentid>
    <comment_count>7</comment_count>
      <attachid>353488</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-10-31 04:32:04 -0700</bug_when>
    <thetext>Created attachment 353488
Testcase of annoying scroll chaining

This is a simple use case showing when scroll chaining can be annoying. If you scroll the overflow node to its maximum limit, release it and try to scroll it any further then the scrolling is propagated to the main frame (expected scroll chaining behavior). Then if you don&apos;t wait a bit but scroll immediately the overflow node again in the other direction, then the scrolling still applies to the main frame. The &quot;position: fixed&quot; is not essential here, but it can make things even more confusing since one does not see the overflow node moving when the main frame is scrolled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478838</commentid>
    <comment_count>8</comment_count>
      <attachid>354920</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-15 05:23:57 -0800</bug_when>
    <thetext>Created attachment 354920
WIP Patch (CSS parsing and preference option)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481906</commentid>
    <comment_count>9</comment_count>
      <attachid>355733</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-27 07:43:54 -0800</bug_when>
    <thetext>Created attachment 355733
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482507</commentid>
    <comment_count>10</comment_count>
      <attachid>355887</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-28 10:21:11 -0800</bug_when>
    <thetext>Created attachment 355887
WIP Patch

Just some minor change with respect to the 355733, so that &quot;non-local boundary default actions&quot; (e.g. scroll chaining or navigation) are now blocked for overscroll-behavior: none or contain. For now this works on macOS and GTK on attachment 349309 but iOS uses a different code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482513</commentid>
    <comment_count>11</comment_count>
      <attachid>355888</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-28 10:32:19 -0800</bug_when>
    <thetext>Created attachment 355888
WIP Patch

Sorry, I uploaded the wrong patch. Here is the correct one. Also I forgot to say that this only blocks scrolling via the mouse, not via the keyboard (my chromium release on Linux seems to have the same behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482948</commentid>
    <comment_count>12</comment_count>
      <attachid>356006</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-29 07:59:53 -0800</bug_when>
    <thetext>Created attachment 356006
Add overscroll behavior property to scrolling tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1484536</commentid>
    <comment_count>13</comment_count>
      <attachid>356410</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-12-03 14:50:11 -0800</bug_when>
    <thetext>Created attachment 356410
WIP Patch

@smfr: I tried to experiment with UIScrollView&apos;s bounces/alwaysBounceHorizontal/alwaysBounceVertical but unfortunately it does not seem possible to use them to disable/enable bouncing in independent directions. I don&apos;t see any straightforward UIScrollView API to disable scroll chaining. I guess UIScrollView should probably have an overscroll property none/contain/auto so that it is possible to enable/disable things like bouncing or scrolling chaining (more generally local and non-local boundary default actions) via the UIKitSPI. I understand this is proprietary code and hence has to be handled by Apple, right? If so, can you please comment on rdar://problem/34315997 ?

This patch passes the horizontal/vertical overscroll behavior to the UI process, but probably it would be cleaner to move the OverscrollBehavior enum in ScrollTypes.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1484782</commentid>
    <comment_count>14</comment_count>
      <attachid>356479</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-12-04 03:18:25 -0800</bug_when>
    <thetext>Created attachment 356479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1484848</commentid>
    <comment_count>15</comment_count>
      <attachid>356505</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-12-04 09:16:44 -0800</bug_when>
    <thetext>Created attachment 356505
Patch (applies on top of bug 192358)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485667</commentid>
    <comment_count>16</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-12-06 01:23:56 -0800</bug_when>
    <thetext>There is a WPT manual test at https://w3c-test.org/css/css-overscroll-behavior/overscrollBehavior-manual.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486722</commentid>
    <comment_count>17</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-12-10 13:57:50 -0800</bug_when>
    <thetext>Definitely know I&apos;m being a sort of busy body, but sincerely wondering if the webkit implementation of `overscroll-behavior` using the `contain` (or even `none`) value will allow for the same scroll containment in iOS that is showcased in in the following quite complex and hacked link:

https://bugs.webkit.org/attachment.cgi?id=356972&amp;action=edit
https://bugs.webkit.org/attachment.cgi?id=356972

Meaning, we won&apos;t have to resort to such a mess to get this user experience?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505225</commentid>
    <comment_count>18</comment_count>
    <who name="Ben Frain">contact</who>
    <bug_when>2019-02-12 08:27:50 -0800</bug_when>
    <thetext>Really hope this is implemented soon. Any modal on iOS that has scrolling inside suffers terribly currently. Having this would mean an end to toggling overflow hidden every time we want a modal with scrollable content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508499</commentid>
    <comment_count>19</comment_count>
    <who name="Henrik Joreteg">henrik</who>
    <bug_when>2019-02-21 06:16:02 -0800</bug_when>
    <thetext>This is big deal for anybody who&apos;s implementing any sort of slide-in &quot;hamburger&quot; menu, etc.

For example, I&apos;m currently working with one of the largest retailers in the world on a UI that involves a shopping cart that slides in from the right so you can quickly see cart contents without leaving your shopping experience.

As you add things to your cart that list will grow to the point where it needs to be scrolled. It&apos;s obviously not desirable to scroll the underlying page. 

What amounts to being a simple CSS rule in most browsers currently requires frustrating hacks to get it to working correctly on iOS.

Closely related... the additional requirement for adding &apos;-webkit-overflow-scrolling: touch&apos; is another weird one. I can&apos;t imagine a scenario where I&apos;m wanting something to on the page to be scrollable but where I *don&apos;t* want momentum scrolling. Frankly, scrolling something without this behavior feels super broken. Seems to me it should just be the default.

Anyway, these scrolling-related issues happen increasingly as developers build more complex web pages and currently, it&apos;s one of those things that make developers curse Apple.

I think getting this resolved would buy a lot of goodwill.

Please consider implementing this. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510449</commentid>
    <comment_count>20</comment_count>
      <attachid>363094</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-27 09:20:01 -0800</bug_when>
    <thetext>Created attachment 363094
tentative rebase (not tested)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527251</commentid>
    <comment_count>21</comment_count>
    <who name="Dmytro Semenov">diiiimaaaa</who>
    <bug_when>2019-04-15 10:58:16 -0700</bug_when>
    <thetext>Would be great if this also allowed to prevent edge swipe to go back gesture.

This would help with horizontal carousels. Users often want to swipe carousel, but swipe to &quot;the previous page&quot; instead. The majority of e-commerce websites use a carousel on the product page.

At least for those that use &quot;native&quot; horizontal scroll with `-webkit-overflow-scrolling: touch`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527295</commentid>
    <comment_count>22</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2019-04-15 11:51:03 -0700</bug_when>
    <thetext>(In reply to Dmitry Semenov from comment #21)

As far as...
&gt; This would help with horizontal carousels.
I believe spec has you covered, in that internal horizontal scrolling can be made to never chain out to the native viewport behavior with values `none`/`contain`. 

But for this general case...
&gt; Would be great if this also allowed to prevent edge swipe to go back gesture.
Sadly, I think the current spec covers this general case only if your website already has the viewport horizontally scrolling. See https://github.com/w3c/csswg-drafts/issues/3349

- https://developers.google.com/web/updates/2017/11/overscroll-behavior
- https://drafts.csswg.org/css-overscroll-behavior-1/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528746</commentid>
    <comment_count>23</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2019-04-19 07:57:42 -0700</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw))

Beware of https://bugs.chromium.org/p/chromium/issues/detail?id=954423 when implementing this on the viewport scroller. Considering css compat with regards to html/body propagation of this property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548779</commentid>
    <comment_count>24</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-06-28 04:06:44 -0700</bug_when>
    <thetext>It seems there are discussions elsewhere to introduce flow-relative properties:

https://drafts.csswg.org/css-overscroll-1/#overscroll-behavior-longhands-logical

I personally think it makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566712</commentid>
    <comment_count>25</comment_count>
      <attachid>377722</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-08-30 10:08:18 -0700</bug_when>
    <thetext>Created attachment 377722
tentative rebase (not tested)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566743</commentid>
    <comment_count>26</comment_count>
      <attachid>377735</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-08-30 11:13:45 -0700</bug_when>
    <thetext>Created attachment 377735
tentative rebase (not tested)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566951</commentid>
    <comment_count>27</comment_count>
      <attachid>377789</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-08-31 00:10:49 -0700</bug_when>
    <thetext>Created attachment 377789
Patch

This patch now compiles but I can&apos;t seem to make it work anymore with the testcase. This would need more debugging...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568183</commentid>
    <comment_count>28</comment_count>
      <attachid>378100</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-09-05 11:17:49 -0700</bug_when>
    <thetext>Created attachment 378100
Patch

OK, I took a closer look into this today and this version should now again have the same behavior as my initial attempt:

* &quot;overscroll-behavior: contain&quot; blocks scroll chaining and go back gesture on macOS.
* &quot;overscroll-behavior: none&quot; blocks scroll bounces on iOS. AFAIK, we still need progress on rdar://problem/34315997 for complete support (see FIXME in ScrollingTreeScrollingNodeDelegateIOS.mm).
* no support for iframe scrolling yet (I don&apos;t remember what was the status and need to check the code, but I suspect we can have the same support as overflow: auto nodes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568539</commentid>
    <comment_count>29</comment_count>
      <attachid>378196</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-09-06 09:15:37 -0700</bug_when>
    <thetext>Created attachment 378196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592420</commentid>
    <comment_count>30</comment_count>
    <who name="Paulo Sousa">paulo.sousa</who>
    <bug_when>2019-11-21 10:09:45 -0800</bug_when>
    <thetext>I need this css property to implement a full screen modal on my site.

In safari : when I&apos;m on the top of my full screen modal, if i firmly scroll down, it will trigger the body scroll rubber effect not my modal scroll effect.

Here&apos;s an example: https://pzgcy.csb.app/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629637</commentid>
    <comment_count>31</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-03-13 09:22:23 -0700</bug_when>
    <thetext>rdar://problem/9925689</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652582</commentid>
    <comment_count>32</comment_count>
      <attachid>399351</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-05-14 04:29:39 -0700</bug_when>
    <thetext>Created attachment 399351
rebase

Rebase the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652584</commentid>
    <comment_count>33</comment_count>
      <attachid>399352</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-05-14 04:57:11 -0700</bug_when>
    <thetext>Created attachment 399352
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652609</commentid>
    <comment_count>34</comment_count>
      <attachid>399355</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-05-14 06:47:11 -0700</bug_when>
    <thetext>Created attachment 399355
rebase

Rebase Fred&apos;s patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657016</commentid>
    <comment_count>35</comment_count>
    <who name="Dima Voytenko">dvoytenko</who>
    <bug_when>2020-05-28 14:24:13 -0700</bug_when>
    <thetext>A friendly ping here. It looks like the patches have been available for some time. Could they be reviewed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657057</commentid>
    <comment_count>36</comment_count>
      <attachid>399355</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-28 15:38:46 -0700</bug_when>
    <thetext>Comment on attachment 399355
rebase

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

I don&apos;t see any changes here related to scroll latching, which I&apos;d expect are necessary to stop scroll propagation. For example, I would expect some code in ScrollingTree::handleWheelEvent/ScrollingTreeLatchingController.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:3044
&gt; +        case CSSPropertyOverscrollBehavior:
&gt; +            return cssValuePool.createValue(std::max(style.overscrollBehaviorX(), style.overscrollBehaviorY()));
&gt; +        case CSSPropertyOverscrollBehaviorX:
&gt; +            return cssValuePool.createValue(style.overscrollBehaviorX());
&gt; +        case CSSPropertyOverscrollBehaviorY:
&gt; +            return cssValuePool.createValue(style.overscrollBehaviorY());

This code should check if the feature is enabled, right?

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:2209
&gt; +template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(OverscrollBehavior e)

e -&gt; behavior

&gt; Source/WebCore/css/parser/CSSParserFastPaths.cpp:595
&gt; +        return valueID == CSSValueAuto || valueID == CSSValueContain || valueID == CSSValueNone;

Does this need to check overscrollBehaviorEnabled ?

&gt; Source/WebCore/page/EventHandler.cpp:305
&gt; +static bool didScrollInScrollableArea(ScrollableArea&amp; scrollableArea, double deltaX, double deltaY, unsigned deltaMode)

Can we make deltaMode be an enum first, please? It&apos;s hard to tell what it means in this context.

&gt; Source/WebCore/page/FrameView.cpp:428
&gt; +    if (RenderWidget* frameRenderer = frame().ownerRenderer())
&gt; +        return frameRenderer-&gt;style().overscrollBehaviorX();

This is pretty weird; style in the parent document can affect overscroll in a subframe (any subframe, possibly cross-origin?). That doesn&apos;t seem right. Overscroll&apos;s impact should be limited to the current frame. I filed https://github.com/w3c/csswg-drafts/issues/5129

Certainly this code is wrong because the parent frame&apos;s style may not have been updated. The parent frame needs to push some state down onto this FrameView, if this is something we need to support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670484</commentid>
    <comment_count>37</comment_count>
      <attachid>399355</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-10 10:21:55 -0700</bug_when>
    <thetext>Comment on attachment 399355
rebase

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

Hi Simon,
Sorry for the slow reply.
I&apos;ll upload a WIP patch later. This patch fixes the code review and supports overscroll-behavior for Mac async scroll.

&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:3044
&gt;&gt; +            return cssValuePool.createValue(style.overscrollBehaviorY());
&gt; 
&gt; This code should check if the feature is enabled, right?

Yes, we should check settings for this.
Added `&quot;settings-flag&quot;: &quot;overscrollBehavior&quot;` to CSSProperties.json, so the propertyID of &quot;overscrollBehavior&quot; is invalid if the feature is disabled.
Added &quot;overscrollBehavior&quot; valid check test for this.

&gt;&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:2209
&gt;&gt; +template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(OverscrollBehavior e)
&gt; 
&gt; e -&gt; behavior

Done

&gt;&gt; Source/WebCore/css/parser/CSSParserFastPaths.cpp:595
&gt;&gt; +        return valueID == CSSValueAuto || valueID == CSSValueContain || valueID == CSSValueNone;
&gt; 
&gt; Does this need to check overscrollBehaviorEnabled ?

Yes, done.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:305
&gt;&gt; +static bool didScrollInScrollableArea(ScrollableArea&amp; scrollableArea, double deltaX, double deltaY, unsigned deltaMode)
&gt; 
&gt; Can we make deltaMode be an enum first, please? It&apos;s hard to tell what it means in this context.

OK, restored WheelEvent&amp; and added a struct to carry ignore info here.

&gt;&gt; Source/WebCore/page/FrameView.cpp:428
&gt;&gt; +        return frameRenderer-&gt;style().overscrollBehaviorX();
&gt; 
&gt; This is pretty weird; style in the parent document can affect overscroll in a subframe (any subframe, possibly cross-origin?). That doesn&apos;t seem right. Overscroll&apos;s impact should be limited to the current frame. I filed https://github.com/w3c/csswg-drafts/issues/5129
&gt; 
&gt; Certainly this code is wrong because the parent frame&apos;s style may not have been updated. The parent frame needs to push some state down onto this FrameView, if this is something we need to support.

Yes, make sense. I think it seems reasonable to limit the impact in the current frame unless the specification clarify this.
Added FIXME in here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670487</commentid>
    <comment_count>38</comment_count>
      <attachid>403978</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-10 10:23:43 -0700</bug_when>
    <thetext>Created attachment 403978
WIP-patch-based-on-Fred&apos;s-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670488</commentid>
    <comment_count>39</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-07-10 10:24:24 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670710</commentid>
    <comment_count>40</comment_count>
      <attachid>404040</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-10 20:53:19 -0700</bug_when>
    <thetext>Created attachment 404040
WIP-patch-based-on-Fred&apos;s-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670719</commentid>
    <comment_count>41</comment_count>
      <attachid>404040</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-07-10 21:55:01 -0700</bug_when>
    <thetext>Comment on attachment 404040
WIP-patch-based-on-Fred&apos;s-patch

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

I think it would be good to have more tests. Do we have more WPT tests we can use?

&gt; LayoutTests/fast/scrolling/overscroll-behavior-invalidate-if-disable-expected.txt:1
&gt; +Pass test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.

invalidated

&gt; LayoutTests/fast/scrolling/overscroll-behavior-invalidate-if-disable.html:9
&gt; +            document.write(&quot;Fail test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.&quot;);

invalidated

&gt; LayoutTests/fast/scrolling/overscroll-behavior-invalidate-if-disable.html:11
&gt; +            document.write(&quot;Pass test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.&quot;);

I think you can simplify this: 

var result = &quot;overscrollBehavior&quot; in document.documentElement.style ? &quot;PASS&quot; : &quot;FAIL&quot;;
document.write(`${result} test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.`);

&gt; LayoutTests/fast/scrolling/overscroll-behavior-validate-if-enable-expected.txt:1
&gt; +Pass test overscrollBehavior should be validate if overscrollBehaviorEnabled is enabled.

validated

&gt; LayoutTests/fast/scrolling/overscroll-behavior-validate-if-enable.html:11
&gt; +            document.write(&quot;Fail test overscrollBehavior should be validate if overscrollBehaviorEnabled is enabled.&quot;);

Same here.

&gt; Source/WebCore/page/FrameView.cpp:436
&gt; +    auto* document = frame().document();

I guess the FIXME applies here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670852</commentid>
    <comment_count>42</comment_count>
      <attachid>404040</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-12 07:34:36 -0700</bug_when>
    <thetext>Comment on attachment 404040
WIP-patch-based-on-Fred&apos;s-patch

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

Hi Fred,
Thanks for the review:)

&gt;&gt; LayoutTests/fast/scrolling/overscroll-behavior-invalidate-if-disable-expected.txt:1
&gt;&gt; +Pass test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.
&gt; 
&gt; invalidated

Done

&gt;&gt; LayoutTests/fast/scrolling/overscroll-behavior-invalidate-if-disable.html:9
&gt;&gt; +            document.write(&quot;Fail test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.&quot;);
&gt; 
&gt; invalidated

Done

&gt;&gt; LayoutTests/fast/scrolling/overscroll-behavior-invalidate-if-disable.html:11
&gt;&gt; +            document.write(&quot;Pass test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.&quot;);
&gt; 
&gt; I think you can simplify this: 
&gt; 
&gt; var result = &quot;overscrollBehavior&quot; in document.documentElement.style ? &quot;PASS&quot; : &quot;FAIL&quot;;
&gt; document.write(`${result} test overscrollBehavior should be invalidate if overscrollBehaviorEnabled is disabled.`);

Done, thanks:)

&gt;&gt; LayoutTests/fast/scrolling/overscroll-behavior-validate-if-enable-expected.txt:1
&gt;&gt; +Pass test overscrollBehavior should be validate if overscrollBehaviorEnabled is enabled.
&gt; 
&gt; validated

Done

&gt;&gt; LayoutTests/fast/scrolling/overscroll-behavior-validate-if-enable.html:11
&gt;&gt; +            document.write(&quot;Fail test overscrollBehavior should be validate if overscrollBehaviorEnabled is enabled.&quot;);
&gt; 
&gt; Same here.

Done

&gt;&gt; Source/WebCore/page/FrameView.cpp:436
&gt;&gt; +    auto* document = frame().document();
&gt; 
&gt; I guess the FIXME applies here too.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670853</commentid>
    <comment_count>43</comment_count>
      <attachid>404095</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-12 07:35:20 -0700</bug_when>
    <thetext>Created attachment 404095
WIP-patch-based-on-Fred&apos;s-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670866</commentid>
    <comment_count>44</comment_count>
      <attachid>404100</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-12 08:54:49 -0700</bug_when>
    <thetext>Created attachment 404100
WIP-patch-based-on-Fred&apos;s-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681667</commentid>
    <comment_count>45</comment_count>
    <who name="Ole Strøm">olestr</who>
    <bug_when>2020-08-20 03:59:55 -0700</bug_when>
    <thetext>Really looking forward to this one! Thanks for Fred&apos;s patch, and Cathie&apos;s further progress on it - here&apos;s to seeing it added in Safari TP/14 🤞</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682288</commentid>
    <comment_count>46</comment_count>
    <who name="Pio">piotrx151</who>
    <bug_when>2020-08-24 02:36:29 -0700</bug_when>
    <thetext>Really looking forward too, this is very important problem for PWA apps on Safari.
When can we count on solving this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683300</commentid>
    <comment_count>47</comment_count>
      <attachid>404100</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-08-26 23:42:21 -0700</bug_when>
    <thetext>Comment on attachment 404100
WIP-patch-based-on-Fred&apos;s-patch

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

&gt; Source/WebCore/page/FrameView.cpp:425
&gt; +    // FIXME: Currently, the impact of overscroll-behavior is limited in current frarme.

I think you mean &quot;limited to&quot;.
Also s/frarme/frame/

&gt; Source/WebCore/page/FrameView.cpp:436
&gt; +    // FIXME: Currently, the impact of overscroll-behavior is limited in current frarme.

Ditto.

&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:145
&gt; +                if (result.wasHandled || stoppedByOverscrollBehavior) {

I see, this is the new code to address Simon&apos;s comment in https://bugs.webkit.org/show_bug.cgi?id=176454#c36. It seems the event will be considered handled as long as you have a delta in one direction and the corresponding CSS property set. But I&apos;m not sure that&apos;s correct?

Shouldn&apos;t we have the same ignoreDeltaX and ignoreDeltaY boolean so that
- we stop to propagate if/after they become both equal to true.
- we use them to treat the corresponding wheelEvent coordinate 0 (if the ignoreDelta is true) for all the functions receiving this wheelEvent in this while loop.

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:242
&gt; +        // - non-local boundary default actions (e.g. scroll chaining).

I&apos;m curious if your change to ScrollingTree helps to implement this scroll chaining. That would mean a UIScrollView API is not needed?

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:243
&gt; +        // - local boundary default actions (e.g. bouncing).

I still don&apos;t see any new thing on https://developer.apple.com/documentation/uikit/uiscrollview that would allow to disable bouncing in a single X/Y direction only. @Simon: is there any update on rdar://problem/34315997 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683305</commentid>
    <comment_count>48</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-08-27 00:01:27 -0700</bug_when>
    <thetext>@Simon @Cathie Sorry I&apos;ve been focusing on other tasks recently, but checking this again, my understanding of the current status is:

* CSS parsing is done.

* Controlling non-local boundary default actions (e.g. scroll chaining):
  1. This patch implements it on desktop.
  2. Does Cathie&apos;s change in ScrollingTree allows to make it work on iOS too ¿? Or does it require extra uiscrollview API to handle propagation on the UI process side?
  3. IIRC Simon commented in the past Apple does not want to allow disabling the &quot;next/previous page by swipe gesture&quot; which I suspect the patch still does (at least that&apos;s how I initially implemented it). Maybe we shouldn&apos;t stop event propagation immediately when ignoreDeltaX &amp;&amp; ignoreDeltaY, but instead just use these booleans to interpret the corresponding wheelEvent coordinate to 0 in relevant situations?

* Controlling local boundary default actions (e.g. bouncing)

  1. AFAIK, this does not make sense for desktop?
  2. This used to work for iOS (not sure whether that has been tested recently) but the current API on https://developer.apple.com/documentation/uikit/uiscrollview only allows to disable bouncing on one direction. It would be good to know the status of rdar://problem/34315997

* Anything else to consider here?

@Ole @Pio Thanks for the kind words and encouragement. Regarding integration Safari, the answer is unfortunately https://trac.webkit.org/wiki/FAQ#Releases. In any case we need to fix this in WebKit first. Thanks for your patience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683453</commentid>
    <comment_count>49</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-08-27 12:30:43 -0700</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #48)
&gt;   2. Does Cathie&apos;s change in ScrollingTree allows to make it work on iOS too
&gt; ¿? Or does it require extra uiscrollview API to handle propagation on the UI
&gt; process side?

So testing it, I realized that we already never propagate scrolling to the parent scroller, unless the scroller was already at the maximum. So not sure how to interpret the spec here.

&gt;   2. This used to work for iOS (not sure whether that has been tested
&gt; recently) but the current API on
&gt; https://developer.apple.com/documentation/uikit/uiscrollview only allows to
&gt; disable bouncing on one direction. It would be good to know the status of
&gt; rdar://problem/34315997

Just tested now and actually it works for overflow nodes, but not for subframes. Code looks correct, so I can&apos;t explain why without more debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684387</commentid>
    <comment_count>50</comment_count>
      <attachid>404100</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-08-31 22:35:30 -0700</bug_when>
    <thetext>Comment on attachment 404100
WIP-patch-based-on-Fred&apos;s-patch

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

&gt;&gt; Source/WebCore/page/FrameView.cpp:425
&gt;&gt; +    // FIXME: Currently, the impact of overscroll-behavior is limited in current frarme.
&gt; 
&gt; I think you mean &quot;limited to&quot;.
&gt; Also s/frarme/frame/

Done

&gt;&gt; Source/WebCore/page/FrameView.cpp:436
&gt;&gt; +    // FIXME: Currently, the impact of overscroll-behavior is limited in current frarme.
&gt; 
&gt; Ditto.

Done

&gt;&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:145
&gt;&gt; +                if (result.wasHandled || stoppedByOverscrollBehavior) {
&gt; 
&gt; I see, this is the new code to address Simon&apos;s comment in https://bugs.webkit.org/show_bug.cgi?id=176454#c36. It seems the event will be considered handled as long as you have a delta in one direction and the corresponding CSS property set. But I&apos;m not sure that&apos;s correct?
&gt; 
&gt; Shouldn&apos;t we have the same ignoreDeltaX and ignoreDeltaY boolean so that
&gt; - we stop to propagate if/after they become both equal to true.
&gt; - we use them to treat the corresponding wheelEvent coordinate 0 (if the ignoreDelta is true) for all the functions receiving this wheelEvent in this while loop.

Yes, this change would address Simon&apos;s comment.

And yes, indeed, we should handle them separately. It seems the wheelEvent is widely used. Maybe we can copy the wheelEvent and change the delta instead?

&gt;&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:242
&gt;&gt; +        // - non-local boundary default actions (e.g. scroll chaining).
&gt; 
&gt; I&apos;m curious if your change to ScrollingTree helps to implement this scroll chaining. That would mean a UIScrollView API is not needed?

It seems not, we still need to find a way to stop scroll chaining on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684390</commentid>
    <comment_count>51</comment_count>
      <attachid>407661</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-08-31 22:48:39 -0700</bug_when>
    <thetext>Created attachment 407661
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch

The current supports the desktop overscroll-behavior excepting it can&apos;t stop the swipe gesture on document scrollingElement with value &quot;overscroll-behavior: none&quot;.

For iOS, it does not work. Still need to find a way to stop scroll chaining and the default behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684392</commentid>
    <comment_count>52</comment_count>
      <attachid>407661</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-08-31 23:14:03 -0700</bug_when>
    <thetext>Comment on attachment 407661
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch

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

&gt; Source/WebCore/page/EventHandler.cpp:376
&gt; +            return true;

I wonder if we can just remove this early return and keep propagating the event with ignoreX/ignoreY. That way some events like &quot;swipe gesture for previous/next&quot; would still be taken into account (Simon said we don&apos;t want to disable that).

&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:164
&gt; +            }

Shouldn&apos;t we do the adjustment before calling scrollingNode.handleWheelEvent?

&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:166
&gt; +            if (result.wasHandled || (ignoreDeltaX &amp;&amp; ignoreDeltaY)) {

Again, do we really need this &quot;ignoreDeltaX &amp;&amp; ignoreDeltaY&quot;?

&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:168
&gt;                  m_gestureState.nodeDidHandleEvent(scrollingNode.scrollingNodeID(), wheelEvent);

Shouldn&apos;t you pass adjustedWheelEvent there too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684436</commentid>
    <comment_count>53</comment_count>
      <attachid>407672</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-09-01 05:00:40 -0700</bug_when>
    <thetext>Created attachment 407672
Testcase (setting overscroll-behavior on the iframe&apos;s html element)

I think overscroll behavior on viewport/subframes is not very well defined yet, but I suspect we should follow scroll-behavior i.e. read the property from the the documentElement.

See https://github.com/w3c/csswg-drafts/issues/5129 and https://github.com/w3c/csswg-drafts/issues/2977</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684449</commentid>
    <comment_count>54</comment_count>
      <attachid>407661</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-09-01 06:31:19 -0700</bug_when>
    <thetext>Comment on attachment 407661
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch

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

&gt; Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h:72
&gt; +    OverscrollBehavior verticalOverscrollBehavior { OverscrollBehavior:: Auto };

The &quot;bool operator==&quot; member function below must also to be updated accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686197</commentid>
    <comment_count>55</comment_count>
      <attachid>407661</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-09-06 10:50:00 -0700</bug_when>
    <thetext>Comment on attachment 407661
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:376
&gt;&gt; +            return true;
&gt; 
&gt; I wonder if we can just remove this early return and keep propagating the event with ignoreX/ignoreY. That way some events like &quot;swipe gesture for previous/next&quot; would still be taken into account (Simon said we don&apos;t want to disable that).

Yes, looks like we can return false here, if willWheelEventStartSwipeGesture(). And it seems we need to handle the single direction scenario here. Will be updated in the new patch.

&gt;&gt; Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h:72
&gt;&gt; +    OverscrollBehavior verticalOverscrollBehavior { OverscrollBehavior:: Auto };
&gt; 
&gt; The &quot;bool operator==&quot; member function below must also to be updated accordingly.

Done, thanks!

&gt;&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:164
&gt;&gt; +            }
&gt; 
&gt; Shouldn&apos;t we do the adjustment before calling scrollingNode.handleWheelEvent?

It seems the adjustment should be after calling scrollingNode.handleWheelEvent, for we need to stop the scroll chaining. So the node can be scrolled, but its parent shouldn&apos;t.

&gt;&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:168
&gt;&gt;                  m_gestureState.nodeDidHandleEvent(scrollingNode.scrollingNodeID(), wheelEvent);
&gt; 
&gt; Shouldn&apos;t you pass adjustedWheelEvent there too?

Hmm, adjustedWheelEvent&apos;s delta might be changed to zero. In `ScrollingTreeLatchingController::nodeDidHandleEvent`, it doesn&apos;t store m_latchedNodeID if `wheelEvent.delta().isZero()`. In this case, it seems right to make this node as m_latchedNodeID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686198</commentid>
    <comment_count>56</comment_count>
      <attachid>408125</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-09-06 10:55:50 -0700</bug_when>
    <thetext>Created attachment 408125
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch

Hi,

This patch adds support to overscroll-behavior of the main frame scroll latching
and single direction of overscroll-behavior.
We keep the swipe gestures. The swipe gestures will be triggered if the mainframe has scrolled to the edge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686347</commentid>
    <comment_count>57</comment_count>
      <attachid>408125</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-09-07 05:36:55 -0700</bug_when>
    <thetext>Comment on attachment 408125
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch

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

&gt; Source/WebCore/page/EventHandler.cpp:347
&gt; +    bool ignoreDeltaY = false;

Can we use an IgnoreDeltaRequest instead of two bool here and maybe in other places?

&gt; Source/WebCore/page/scrolling/ScrollLatchingController.cpp:173
&gt; +            frameState-&gt;ignoreDelta.ignoreY = true;

These can be:

frameState-&gt;ignoreDelta.ignoreX |= ignoreDeltaFromSubFrame.ignoreX
frameState-&gt;ignoreDelta.ignoreY |= ignoreDeltaFromSubFrame.ignoreY</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686383</commentid>
    <comment_count>58</comment_count>
      <attachid>408185</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-09-07 10:15:14 -0700</bug_when>
    <thetext>Created attachment 408185
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686385</commentid>
    <comment_count>59</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-09-07 10:22:57 -0700</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #57)
&gt; Comment on attachment 408125 [details]
&gt; WIP-patch-supported-desktop-based-on-Fred&apos;s-patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=408125&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:347
&gt; &gt; +    bool ignoreDeltaY = false;
&gt; 
&gt; Can we use an IgnoreDeltaRequest instead of two bool here and maybe in other
&gt; places?
&gt; 

Done, thanks!

&gt; &gt; Source/WebCore/page/scrolling/ScrollLatchingController.cpp:173
&gt; &gt; +            frameState-&gt;ignoreDelta.ignoreY = true;
&gt; 
&gt; These can be:
&gt; 
&gt; frameState-&gt;ignoreDelta.ignoreX |= ignoreDeltaFromSubFrame.ignoreX
&gt; frameState-&gt;ignoreDelta.ignoreY |= ignoreDeltaFromSubFrame.ignoreY

Done, thanks:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686491</commentid>
    <comment_count>60</comment_count>
      <attachid>408212</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-09-07 22:38:39 -0700</bug_when>
    <thetext>Created attachment 408212
WIP-patch-supported-desktop-based-on-Fred&apos;s-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686492</commentid>
    <comment_count>61</comment_count>
      <attachid>408213</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-09-07 22:47:13 -0700</bug_when>
    <thetext>Created attachment 408213
testcases of overscroll-behavior-y</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715381</commentid>
    <comment_count>62</comment_count>
    <who name="James Campbell">james.campbell</who>
    <bug_when>2020-12-17 07:46:00 -0800</bug_when>
    <thetext>Good morning I have found two bugs in this implementation.

If a container with &quot;overflow: scroll; overscroll-behaviour: contain;&quot; doesn&apos;t have content big enough to trigger the container to be scrollable then Safari treats the container as if overscroll-behaviour wasn&apos;t set at all as scroll stacking still happens.

If an ancestor has the &quot;overscroll-behaviour: contain;&quot; property then if the user tries to trigger overscroll on the child scroll container when the scroll container is already at it&apos;s scroll boundary then the elastic overscroll affordance isn&apos;t used when it should always be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716567</commentid>
    <comment_count>63</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-12-24 04:39:18 -0800</bug_when>
    <thetext>Hi James,
Thanks for the feedback!

We now have a new patch in bug 220139 which is specific to Mac.

(In reply to James Campbell from comment #62)
&gt; Good morning I have found two bugs in this implementation.
&gt; 
&gt; If a container with &quot;overflow: scroll; overscroll-behaviour: contain;&quot;
&gt; doesn&apos;t have content big enough to trigger the container to be scrollable
&gt; then Safari treats the container as if overscroll-behaviour wasn&apos;t set at
&gt; all as scroll stacking still happens.

Thanks! Fixed in the new patch. So overscroll-behavior is effective as long as
the element&apos;s overflow is &quot;auto&quot; or &quot;scroll&quot;.

&gt; 
&gt; If an ancestor has the &quot;overscroll-behaviour: contain;&quot; property then if the
&gt; user tries to trigger overscroll on the child scroll container when the
&gt; scroll container is already at it&apos;s scroll boundary then the elastic
&gt; overscroll affordance isn&apos;t used when it should always be used.

Currently, the elastic overscroll affordance is triggered when scroll actually happens. If it already reaches the edge, no elastic overscroll affordance will happen, for the original procedure is scroll chaining, then mainframe perform the elastic overscroll affordance. We currently only block the scroll chaining, not trigger another elastic overscroll affordance. Yeah, I think it makes sense to add one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716578</commentid>
    <comment_count>64</comment_count>
    <who name="">ik</who>
    <bug_when>2020-12-24 10:16:29 -0800</bug_when>
    <thetext>Just to check; the patch will work &quot;as long as the element&apos;s overflow is &quot;auto&quot; or &quot;scroll&quot;.&quot;

Does this include scenarios where overlflow is set like:

```
overflow-x: none;
overflow-y: auto;
```

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719273</commentid>
    <comment_count>65</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-01-13 06:20:16 -0800</bug_when>
    <thetext>(In reply to ik from comment #64)
&gt; Just to check; the patch will work &quot;as long as the element&apos;s overflow is
&gt; &quot;auto&quot; or &quot;scroll&quot;.&quot;
&gt; 
&gt; Does this include scenarios where overlflow is set like:
&gt; 
&gt; ```
&gt; overflow-x: none;
&gt; overflow-y: auto;
&gt; ```
&gt; 
&gt; ?

Yes if this element has vertical overflow.

Sorry for the slow reply...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725148</commentid>
    <comment_count>66</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-02-03 08:21:34 -0800</bug_when>
    <thetext>Hi,
Sorry for the progress of overscroll-behavior is very slow.
I want to keep improving this property, but the time is limited.
I&apos;m going to wrap up the current status and move on to other features gradually.

1. We have landed the parsing and flag patch. \o/ (https://bugs.webkit.org/show_bug.cgi?id=219305)
2. The implementing part. We have a patch ready for review. It has support overscroll-behavior
in synchronous scrolling mode and in Mac&apos;s asynchronous scrolling mode. (https://bugs.webkit.org/show_bug.cgi?id=220139)
For the asynchronous scrolling mode of the rest platforms, we wanted to support it gradually.
And on iOS, we need extra APIs of UIScrollView to provide the ability to block the scroll chaining.

Hopefully, this can bring a clear picture for you.
Still it would be great if someone can review the patch. (https://bugs.webkit.org/show_bug.cgi?id=220139)
And sorry again for the big patch.
Thanks:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726592</commentid>
    <comment_count>67</comment_count>
    <who name="Ole Strøm">olestr</who>
    <bug_when>2021-02-08 04:30:48 -0800</bug_when>
    <thetext>Thank you for the effort, Cathie!

Still looking forward for it. Many great things landing in Safari lately - great stuff!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767415</commentid>
    <comment_count>68</comment_count>
    <who name="Bramus">bramus</who>
    <bug_when>2021-06-07 05:19:10 -0700</bug_when>
    <thetext>For reference: At ±2K views per 30 days, one of the more popular posts on my blog is “Prevent overscroll/bounce in iOS MobileSafari (CSS only)” [1]. Given this popularity, it looks like developers are really interested in support for `overscroll-behavior ` (I know I am).

Above that the workaround listed in that post no longer seems to work with recent iOS versions, making this feature request even more needed.


[1] https://www.bram.us/2016/05/02/prevent-overscroll-bounce-in-ios-mobilesafari-pure-css/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767819</commentid>
    <comment_count>69</comment_count>
    <who name="">ik</who>
    <bug_when>2021-06-08 10:29:00 -0700</bug_when>
    <thetext>I just learned that iOS Safari will get pull-to-refresh. This is clearly something a website might want to prevent from happening because it could break something. Overscroll-behavior is the obvious choice to do so.

So I&apos;m glad it may land soon on macOS, but we really, really need this on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767827</commentid>
    <comment_count>70</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-06-08 10:51:30 -0700</bug_when>
    <thetext>If you have examples of sites that would be broken by pull-to-refresh, I&apos;d be interested to hear about them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767831</commentid>
    <comment_count>71</comment_count>
    <who name="">ik</who>
    <bug_when>2021-06-08 11:01:44 -0700</bug_when>
    <thetext>Ok maybe broken is a bit of a stretch, but some websites would like to implement their own pull to refresh instead of reloading the entire page. For example, Twitter (the guys who pioneered PTR if I&apos;m not mistaken) wouldn&apos;t like a page reload instead of just loading new content. 

Another scenario could be a chat dialog (popular in modern sites) where the user could cause the entire page to reload if they scroll a bit too far in the element with overflow: auto. A page reload would just be bad ux here, maybe the user loses the chat session, needs to start over explaining an issue to the support team they were chatting with.

I also wonder about standalone web apps that painstakingly try to work around the elastic scrolling effect on the body because they have an inner div that contains the actual scrollable content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767840</commentid>
    <comment_count>72</comment_count>
    <who name="Bruno Stasse">augus.dupin</who>
    <bug_when>2021-06-08 11:26:00 -0700</bug_when>
    <thetext>If I may reinforce the point, Safari pull-to-refresh will basically be a problem for all web applications, because it might cause accidental (or encourage intentional) full-page refresh whereas it is not necessary nor desirable. These apps are designed to only fetch data when necessary, and not fully reload, otherwise the user experience is broken and way more data than needed is transferred.

This will be even more problematical for web applications implementing custom pull-to-refresh (to only fetch data), like Twitter as mentioned before, because it will most likely conflict with Safari&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769250</commentid>
    <comment_count>73</comment_count>
    <who name="Rado">rado</who>
    <bug_when>2021-06-13 00:36:34 -0700</bug_when>
    <thetext>So sorry for the OT comment, but I have the opposite problem: scroll chaining doesn&apos;t work on mobile Safari only in one situation – vertical scroll on the text on iPhone here: https://nativecarousel.com
Any idea why and where to seek help? Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769690</commentid>
    <comment_count>74</comment_count>
    <who name="Rado">rado</who>
    <bug_when>2021-06-14 22:02:22 -0700</bug_when>
    <thetext>(In reply to spacest from comment #73)
&gt; So sorry for the OT comment, but I have the opposite problem: scroll
&gt; chaining doesn&apos;t work on mobile Safari only in one situation – vertical
&gt; scroll on the text on iPhone here: https://nativecarousel.com
&gt; Any idea why and where to seek help? Thanks

Actual bug URL: https://nativecarousel.com/mobile-safari-overscroll-bug.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769847</commentid>
    <comment_count>75</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-15 09:57:07 -0700</bug_when>
    <thetext>*** Bug 226972 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777721</commentid>
    <comment_count>76</comment_count>
    <who name="Roman A.">romwtb</who>
    <bug_when>2021-07-17 15:28:44 -0700</bug_when>
    <thetext>My browser application is crashed by pull-to-refresh feature. Application content was fixed by 100% width and height without any scrolls. 
Currently - slow drag gestures initiate a pull-to-refresh and content do suddenly jumps and notch. 
I need a way to disable pull-to-refresh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777880</commentid>
    <comment_count>77</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-19 09:22:04 -0700</bug_when>
    <thetext>(In reply to Roman A. from comment #76)
&gt; My browser application is crashed by pull-to-refresh feature. Application
&gt; content was fixed by 100% width and height without any scrolls. 
&gt; Currently - slow drag gestures initiate a pull-to-refresh and content do
&gt; suddenly jumps and notch. 
&gt; I need a way to disable pull-to-refresh.

Please file a Feedback Assistant request for that. Pull to refresh is a Safari feature, not a WebKit feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778713</commentid>
    <comment_count>78</comment_count>
    <who name="Liam DeBeasi">ldebeasi</who>
    <bug_when>2021-07-22 09:13:31 -0700</bug_when>
    <thetext>We would also like to see overscroll-behavior get implemented in WebKit. Pull to refresh in Safari 15 is interfering with our pull to refresh component and leaves the web app in an inconsistent state. I filed a ticket on Feedback Reporter but figured I would provide a use case for overscroll-behavior here too.

Steps to reproduce the issue in an Ionic app:

1. Open https://laughing-kirch-568bfb.netlify.app/ in Safari on iOS 15.
2. Pull down on the content and attempt to use Ionic&apos;s pull to refresh. Observe that Safari&apos;s pull to refresh kicks in and then abruptly stops.
3. Attempt to scroll up and down. Observe that Safari&apos;s pull to refresh will appear/disappear, causing layout shifts.

I would expect to be able to use overscroll-behavior to disable Safari&apos;s pull to refresh like I can in Chrome for Android, but that does not work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803198</commentid>
    <comment_count>79</comment_count>
    <who name="">jamauro</who>
    <bug_when>2021-10-12 10:17:31 -0700</bug_when>
    <thetext>Would love to see this get fully implemented. Thanks Cathie and Frederic for your work on it so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819367</commentid>
    <comment_count>80</comment_count>
    <who name="marcel laverdet">marcel.webkit</who>
    <bug_when>2021-12-01 12:30:14 -0800</bug_when>
    <thetext>My team is working around this in our application with an effective approach which I believe to be novel, and I&apos;d like to share:

All scrollable elements are given an extra inner content wrapper with 1px of padding on the top and bottom. When this component is rendered we manually set the scrollTop to 1px. If the user scrolls past the 1px limit and triggers the rubberbanding momentum scroll effect then the scroll gesture seems to be locked to the element for about 1 second. This locking behavior is inherent to scrollable elements in MobileSafari, and it prevents the scroll gesture from chaining to an outer element. After we detect the scrollTop changing from a negative value to 0px we can assume that the momentum effect has finished and we set the scrollTop back to 1px after a delay of 200ms, which blends in seamlessly with the momentum animation. The same logic applies in the case of scrolling past the bottom.

The implementation details are finicky and not really portable outside of our application, so I&apos;ll leave that as an exercise for the reader.

A similar method is used to prevent pull to refresh and body scrolling. The application is given a wrapper div between the body and the main content root. This element is 2px smaller in height than the applications content area, therefore the only possible values of scrollTop are: 0, 1, and 2. This wrapper div has been coined the &quot;scroll hole&quot;. If the user manages to scroll out of the previously mentioned scrollable elements then that scroll gesture will be caught by the scroll hole. If the scroll hole is sent a scroll event it will momentarily set `overflow: hidden` on itself which cancels the scroll gesture entirely. We have to work around a lot of visualViewport bugs (which are documented here on this tracker) to get all this working correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824002</commentid>
    <comment_count>81</comment_count>
    <who name="pirijan">hi</who>
    <bug_when>2021-12-14 08:13:51 -0800</bug_when>
    <thetext>+1, really encouraged by your work on this, looking forward to being able to use this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825480</commentid>
    <comment_count>82</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-19 13:29:33 -0800</bug_when>
    <thetext>This is done now, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840018</commentid>
    <comment_count>83</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-02-10 15:58:55 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #82)
&gt; This is done now, right?

https://github.com/WebKit/WebKit/blob/26f0cd5635f909d39eefc7d0ee5f893448df7f4a/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml#L971 has this still off-by-default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844179</commentid>
    <comment_count>84</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-02-21 06:05:05 -0800</bug_when>
    <thetext>Enabled by default in bug 236060.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1946627</commentid>
    <comment_count>85</comment_count>
    <who name="">krumplester</who>
    <bug_when>2023-04-04 15:26:26 -0700</bug_when>
    <thetext>I write my solution, I hope my method will help many people.

Css:
html{
  overscroll-behavior: none;
}
body {
    overflow-y: scroll;
}

html:
&lt;head&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, height=device-height&quot;&gt;
&lt;/head&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947655</commentid>
    <comment_count>86</comment_count>
    <who name="giviz">givizator</who>
    <bug_when>2023-04-10 09:28:24 -0700</bug_when>
    <thetext>(In reply to krumplester from comment #85)
&gt; I write my solution, I hope my method will help many people.
&gt; 
&gt; Css:
&gt; html{
&gt;   overscroll-behavior: none;
&gt; }
&gt; body {
&gt;     overflow-y: scroll;
&gt; }
&gt; 
&gt; html:
&gt; &lt;head&gt;
&gt; &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0,
&gt; maximum-scale=1.0, minimum-scale=1.0, user-scalable=no,
&gt; height=device-height&quot;&gt;
&gt; &lt;/head&gt;

Thank you so much my man, I&apos;ve been trying to solve that for months inside my PWA and your solution worked like a charm !

You made my day ! Thanks :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>349309</attachid>
            <date>2018-09-10 08:07:08 -0700</date>
            <delta_ts>2018-09-10 08:07:08 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>overscroll-behavior.html</filename>
            <type>text/html</type>
            <size>2769</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPk92ZXJzY3JvbGwgQmVo
YXZpb3I8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCI+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgogICAgPHN0eWxlPgogICAg
ICAuc2Nyb2xsaW5nIHsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93
LXk6IGF1dG87CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAg
ICB9CiAgICAgIC5zY3JvbGxDb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3Jh
ZGllbnQoMTM1ZGVnLCByZWQsIGJsdWUpOwogICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICBo
ZWlnaHQ6IDMwMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAg
IDxoMT5PdmVyc2Nyb2xsIEJlaGF2aW9yPC9oMT4KCiAgICA8aDI+b3ZlcmZsb3csIGF1dG88L2gy
PgogICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5nIiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6
IDIwMHB4OyI+CiAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGluZyIgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgb3ZlcnNjcm9sbC1iZWhhdmlvcjogYXV0bzsiPgogICAgICAgIDxk
aXYgY2xhc3M9InNjcm9sbENvbnRlbnQiPjE8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYg
Y2xhc3M9InNjcm9sbENvbnRlbnQiPjI8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxoMj5vdmVyZmxv
dywgY29udGFpbjwvaDI+CiAgICA8ZGl2IGNsYXNzPSJzY3JvbGxpbmciIHN0eWxlPSJ3aWR0aDog
MjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5nIiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250
YWluOyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsQ29udGVudCI+MzwvZGl2PgogICAgICA8
L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsQ29udGVudCI+NDwvZGl2PgogICAgPC9kaXY+
CgogICAgPGgyPm92ZXJmbG93LCBub25lPC9oMj4KICAgIDxkaXYgY2xhc3M9InNjcm9sbGluZyIg
c3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgogICAgICA8ZGl2IGNsYXNzPSJz
Y3JvbGxpbmciIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IG92ZXJzY3JvbGwt
YmVoYXZpb3I6IG5vbmU7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxDb250ZW50Ij41PC9k
aXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxDb250ZW50Ij42PC9kaXY+
CiAgICA8L2Rpdj4KCiAgICA8aDI+aWZyYW1lLCBhdXRvPC9oMj4KICAgIDxpZnJhbWUgc3R5bGU9
IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiIHNyY2RvYz0iPGlmcmFtZSBzdHlsZT0mcXVv
dDt3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IG92ZXJzY3JvbGwtYmVoYXZpb3I6IGF1dG87
JnF1b3Q7IHNyY2RvYz0mcXVvdDsmYW1wO2x0O2RpdiBzdHlsZT0mYW1wO3F1b3Q7d2lkdGg6IDMw
MHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBy
ZWQsIGJsdWUpOyZhbXA7cXVvdDsmYW1wO2d0OyZhbXA7bHQ7L2RpdiZhbXA7Z3Q7JnF1b3Q7Pjwv
aWZyYW1lPjxkaXYgc3R5bGU9JnF1b3Q7d2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNr
Z3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGJsdWUpOyZxdW90Oz48L2Rpdj4i
PjwvaWZyYW1lPgoKICAgIDxoMj5pZnJhbWUsIGNvbnRhaW48L2gyPgogICAgPGlmcmFtZSBzdHls
ZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyIgc3JjZG9jPSI8aWZyYW1lIHN0eWxlPSZx
dW90O3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29u
dGFpbjsmcXVvdDsgc3JjZG9jPSZxdW90OyZhbXA7bHQ7ZGl2IHN0eWxlPSZhbXA7cXVvdDt3aWR0
aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVk
ZWcsIHJlZCwgYmx1ZSk7JmFtcDtxdW90OyZhbXA7Z3Q7JmFtcDtsdDsvZGl2JmFtcDtndDsmcXVv
dDs+PC9pZnJhbWU+PGRpdiBzdHlsZT0mcXVvdDt3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgYmx1ZSk7JnF1b3Q7Pjwv
ZGl2PiI+PC9pZnJhbWU+CgogICAgPGgyPmlmcmFtZSwgbm9uZTwvaDI+CiAgICA8aWZyYW1lIHN0
eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IiBzcmNkb2M9IjxpZnJhbWUgc3R5bGU9
JnF1b3Q7d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBu
b25lOyZxdW90OyBzcmNkb2M9JnF1b3Q7JmFtcDtsdDtkaXYgc3R5bGU9JmFtcDtxdW90O3dpZHRo
OiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRl
ZywgcmVkLCBibHVlKTsmYW1wO3F1b3Q7JmFtcDtndDsmYW1wO2x0Oy9kaXYmYW1wO2d0OyZxdW90
Oz48L2lmcmFtZT48ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBibHVlKTsmcXVvdDs+PC9k
aXY+Ij48L2lmcmFtZT4KICA8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349310</attachid>
            <date>2018-09-10 08:07:48 -0700</date>
            <delta_ts>2018-09-26 07:55:08 -0700</delta_ts>
            <desc>WIP Patch (CSS parsing only)</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>68748</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA0NTQ3YmM0MzY5MzRhYmEzOTc4ZjAxY2VjOWU5ODQzYmEyMDgwOGVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBGcmksIDcgU2VwIDIwMTggMjA6MzI6MzYgKzAyMDAKU3ViamVjdDogW1BBVENIIHhzZXJ2ZXJd
IEJ1ZyAxNzY0NTQgLSBJbXBsZW1lbnQgQ1NTIG92ZXJzY3JvbGwtYmVoYXZpb3IKCi0tLQogLi4u
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICAgIHwgIDQgKy0KIFNvdXJj
ZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggICAgICAgICAgICAgICB8ICA0ICsrCiAuLi4vQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgICAgfCAgNCArLQogLi4uL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICAgIHwgIDQgKy0KIC4uLi9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8IDEyICsrKysrKwogLi4uL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAgIHwgMzggKysrKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiAgICAgICAgIHwgMzgg
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gICAgICAgIHwgIDUgKysrCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQ
YXRocy5jcHAgfCAgOSArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggIHwgMTMgKysrKysrKwogLi4uL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oICAgIHwgIDggKysrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuY3BwICAgICAgIHwgMTIgKysrKysrCiAuLi4vc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oICAgICAgICAgfCAgNSArKysKIC4uLi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyAgICB8ICA0ICstCiAuLi4vQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcgICAgfCAgNCArLQogU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlICAg
ICAgICAgICAgIHwgIDEgKwogLi4uL2NtYWtlL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMu
cHJvcHMgIHwgIDcgKysrLQogLi4uL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby5w
cm9wcyAgIHwgIDcgKysrLQogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBt
ICAgICAgIHwgIDQgKysKIC4uLi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyAgICB8ICA0ICstCiAyMCBmaWxlcyBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgOCBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZGZhNGEyNTk3NzMuLmU3MWQ2
NjZhYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00MCw2ICs0MCw4IEBAIEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSA7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1df
U0NST0xMSU5HID0gJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HXyQoV0tf
Q09DT0FfVE9VQ0gpKTsKIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkdfY29j
b2F0b3VjaCA9IEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkc7CiAKK0VOQUJM
RV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SID0gRU5BQkxFX0NTU09NX09WRVJTQ1JPTExfQkVI
QVZJT1I7CisKIEVOQUJMRV9BUFBMRV9QQVkgPSAkKEVOQUJMRV9BUFBMRV9QQVlfJChXS19QTEFU
Rk9STV9OQU1FKSk7CiBFTkFCTEVfQVBQTEVfUEFZX2lwaG9uZW9zID0gRU5BQkxFX0FQUExFX1BB
WTsKIEVOQUJMRV9BUFBMRV9QQVlfaXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0FQUExFX1BBWTsK
QEAgLTM3NCw0ICszNzYsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5B
QkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNM
VDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JP
TExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMp
ICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5J
RkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMp
ICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxF
X0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9S
U19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9B
UkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREFUQUNVRV9W
QUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9O
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5D
T01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAk
KEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX0pJVCkgJChFTkFCTEVfSlNfQVNZTkNfSVRFUkFUSU9OKSAkKEVOQUJMRV9LRVlCT0FS
RF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFC
TEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxF
X01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9T
VEFOREFMT05FKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFC
TEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lO
U1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VS
Q0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRS
T0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykg
JChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NB
R0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NS
RUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VC
X1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlO
R19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkg
JChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVO
QUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkg
JChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChF
TkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChF
TkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NO
QVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdf
V09SRCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT04pICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChF
TkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChF
TkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChF
TkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9P
QlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVO
QUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0pTX0FTWU5DX0lU
RVJBVElPTikgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJP
QVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQo
RU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9N
X1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01B
Q19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VU
SUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVO
QUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElO
RykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9T
VUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1C
RVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9VU0VSU0VMRUNU
X0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVf
VklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9W
SURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVO
QUJMRV9XRUJBU1NFTUJMWV9TVFJFQU1JTkdfQVBJKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVm
aW5lcy5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAppbmRleCA1ZTEyOTFkMjBk
My4uMzA3NzNkZjRhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVz
LmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaApAQCAtMzYxLDYgKzM2MSwx
MCBAQCB0aGUgcHVibGljIGlPUyBTREsuIFNlZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTc5MTY3
Pi4gKi8KICNkZWZpbmUgRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyAwCiAj
ZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SKQor
I2RlZmluZSBFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUiAxCisjZW5kaWYKKwogI2lm
ICFkZWZpbmVkKEVOQUJMRV9BUE5HKQogI2RlZmluZSBFTkFCTEVfQVBORyAxCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKaW5kZXggZGZhNGEyNTk3NzMuLmU3MWQ2NjZhYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDAs
NiArNDAsOCBAQCBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTID0gOwogRU5BQkxFX0FDQ0VM
RVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElOR18kKFdLX0NPQ09BX1RPVUNIKSk7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HX2NvY29hdG91Y2ggPSBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HOwogCitFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUiA9IEVOQUJMRV9DU1NP
TV9PVkVSU0NST0xMX0JFSEFWSU9SOworCiBFTkFCTEVfQVBQTEVfUEFZID0gJChFTkFCTEVfQVBQ
TEVfUEFZXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0FQUExFX1BBWV9pcGhvbmVvcyA9
IEVOQUJMRV9BUFBMRV9QQVk7CiBFTkFCTEVfQVBQTEVfUEFZX2lwaG9uZXNpbXVsYXRvciA9IEVO
QUJMRV9BUFBMRV9QQVk7CkBAIC0zNzQsNCArMzc2LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5T
Rk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExF
X1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVf
QVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFC
TEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NT
M19URVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NT
X0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQo
RU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRkFT
VF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRM
X0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikg
JChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0pTX0FTWU5DX0lURVJBVElPTikg
JChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9B
VFRSSUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09M
X01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BQ19WSURFT19U
T09MQk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVf
TUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9T
VFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQo
RU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFC
TEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZ
UFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNU
SU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChF
TkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChF
TkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VT
X0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVU
SE4pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJB
U1NFTUJMWV9TVFJFQU1JTkdfQVBJKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAk
KEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFC
TEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORykgJChFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUikgJChFTkFCTEVf
QVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1Nf
Q09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFC
TEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJM
RV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVO
QUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9E
QVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RS
QUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5U
QUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAk
KEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVO
QUJMRV9KU19BU1lOQ19JVEVSQVRJT04pICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRF
KSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFU
VElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklY
X0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFC
TEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NF
UlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChF
TkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9X
RUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCQVNTRU1CTFlfU1RSRUFNSU5HX0FQSSkgJChFTkFCTEVf
V0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IGRmYTRhMjU5NzczLi5lNzFkNjY2YWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDAsNiAr
NDAsOCBAQCBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTID0gOwogRU5BQkxFX0FDQ0VMRVJB
VEVEX09WRVJGTE9XX1NDUk9MTElORyA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElOR18kKFdLX0NPQ09BX1RPVUNIKSk7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1df
U0NST0xMSU5HX2NvY29hdG91Y2ggPSBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HOwogCitFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUiA9IEVOQUJMRV9DU1NPTV9P
VkVSU0NST0xMX0JFSEFWSU9SOworCiBFTkFCTEVfQVBQTEVfUEFZID0gJChFTkFCTEVfQVBQTEVf
UEFZXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0FQUExFX1BBWV9pcGhvbmVvcyA9IEVO
QUJMRV9BUFBMRV9QQVk7CiBFTkFCTEVfQVBQTEVfUEFZX2lwaG9uZXNpbXVsYXRvciA9IEVOQUJM
RV9BUFBMRV9QQVk7CkBAIC0zNzQsNCArMzc2LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xU
ID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BB
WV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQ
TElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVf
QVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19U
RVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RF
VklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxF
X0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChF
TkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRkFTVF9K
SVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJ
VCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChF
TkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9V
Q0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxFX0pTX0FTWU5DX0lURVJBVElPTikgJChF
TkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRS
SUJVVEUpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01B
TkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBS
RVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BQ19WSURFT19UT09M
Qk9YKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01F
RElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVE
SUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJF
QU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VT
RV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJM
RV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVS
X0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQo
RU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRP
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFC
TEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VO
VEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VM
RU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4p
ICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJBU1NF
TUJMWV9TVFJFQU1JTkdfQVBJKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVO
QUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVf
WFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElORykgJChFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUikgJChFTkFCTEVfQVBQ
TEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRB
Q0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFS
VElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9G
SUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lN
QUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVf
Q1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdf
U1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxf
RkVBVFVSRVMpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GSUxURVJT
X0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lO
X1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5B
QkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9J
TlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJM
RV9KU19BU1lOQ19JVEVSQVRJT04pICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAk
KEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElO
R19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01F
RElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVO
QUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lU
X1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9S
RVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVf
UlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQ
SSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJB
U1NFTUJMWSkgJChFTkFCTEVfV0VCQVNTRU1CTFlfU1RSRUFNSU5HX0FQSSkgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBkYjljNmQ3OWUwOC4uNmUz
NzQ0NDUwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0xOTUsNiArMTk1LDEwIEBAIHN0YXRpYyBjb25zdCBDU1NQcm9w
ZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5T3V0bGluZVdp
ZHRoLAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwLAogICAgIENTU1Byb3BlcnR5T3ZlcmZs
b3dYLAorI2lmIEVOQUJMRShDU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SKQorICAgIENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yWCwKKyAgICBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clksCisjZW5kaWYKICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93WSwKICAgICBDU1NQcm9wZXJ0eVBh
ZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwKQEAgLTMyNzcsNiArMzI4
MSwxNCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9y
UHJvcGVydHlpblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyNpZiBFTkFCTEUoQ1NTT01fT1ZFUlNDUk9MTF9C
RUhBVklPUikKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUu
b3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgo
KSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVo
YXZpb3JZKCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgog
ICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBhZGRpbmdPck1hcmdpblBpeGVsVmFsdWU8
JlJlbmRlclN0eWxlOjpwYWRkaW5nVG9wLCAmUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVk
Q1NTUGFkZGluZ1RvcD4oc3R5bGUsIHJlbmRlcmVyKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdSaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oCmluZGV4IDVlZTZmNjM4NjAzLi4wYjlhYzBiNjlkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0yMjA4LDYgKzIyMDgs
NDQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJm
bG93KCkgY29uc3QKICAgICByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7CiB9CiAKKyNpZiBFTkFC
TEUoQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUikKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyc2Nyb2xsQmVoYXZpb3IgZSkKKyAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQoreworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CisgICAgc3dpdGNoIChlKSB7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkNvbnRhaW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGFpbjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworCisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKKyAgICAgICAgcmV0dXJuIE92ZXJz
Y3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAg
cmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoK
KyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworfQorI2VuZGlmCisKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0aWVzLmpzb24KaW5kZXggNTM3ZGQ3MGU1OGIuLjEwYmVmNzBiYjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTMwNTUsNiArMzA1NSw0NCBAQAogICAgICAg
ICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNw
cm9wZGVmLW92ZXJmbG93LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJv
dmVyc2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6
IHsKKyAgICAgICAgICAgICAgICAiZW5hYmxlLWlmIjogIkVOQUJMRV9DU1NPTV9PVkVSU0NST0xM
X0JFSEFWSU9SIiwKKyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAg
ICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJz
Y3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CisgICAgICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9C
RUhBVklPUiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAg
ICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAgICAgICAg
ICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24i
OiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJz
Y3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAg
ICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAg
ICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAiZW5hYmxl
LWlmIjogIkVOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAg
ICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJs
IjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1v
dmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAg
ICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAg
ICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCBjNzFjNzRmY2I1Yy4uYTUyYTlhNTBlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzU2LDYgKzEzNTYsMTEgQEAgc2Nyb2xsLXBvc2l0aW9u
CiBtYW5pcHVsYXRpb24KICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTT01fT1ZFUlND
Uk9MTF9CRUhBVklPUikgJiYgRU5BQkxFX0NTU09NX09WRVJTQ1JPTExfQkVIQVZJT1IKKy8vIG92
ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKyNlbmRpZgorCiAvLyBoYW5naW5nLXB1bmN0
dWF0aW9uCiBhbGxvdy1lbmQKIGZpcnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggNTQ1OTVkODRlM2UuLjM0NzczZjc5NTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3Bw
CkBAIC02MDgsNiArNjA4LDExIEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5
d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkCiAgICAgICAgIHJl
dHVybiB2YWx1ZUlEID09IENTU1ZhbHVlVmlzaWJsZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlk
ZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1
dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU92ZXJsYXk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJmbG93WTogLy8gdmlzaWJsZSB8IGhpZGRlbiB8IHNjcm9sbCB8IGF1dG8gfCBvdmVybGF5IHwg
LXdlYmtpdC1wYWdlZC14IHwgLXdlYmtpdC1wYWdlZC15CiAgICAgICAgIHJldHVybiB2YWx1ZUlE
ID09IENTU1ZhbHVlVmlzaWJsZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZU92ZXJsYXkgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWCB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0UGFnZWRZOworI2lmIEVOQUJMRShDU1NPTV9PVkVS
U0NST0xMX0JFSEFWSU9SKQorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICByZXR1
cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbnRhaW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG87CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5
QnJlYWtBZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5QnJlYWtCZWZvcmU6CiAgICAgICAgIHJl
dHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWQg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkUGFnZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUGFn
ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTGVmdCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmlnaHQg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJlY3RvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVWZXJzbyB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWRDb2x1bW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNv
bHVtbjsKQEAgLTg1MSw2ICs4NTYsMTAgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5
d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyZmxvd1dyYXA6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKICAgICBj
YXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgorI2lmIEVOQUJMRShDU1NPTV9PVkVSU0NST0xMX0JF
SEFWSU9SKQorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVBvaW50ZXJFdmVudHM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvc2l0aW9uOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IGEyMDg1MDBmMDdiLi5mYjFmYWQyMjFiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTMzMiw2ICszMzIs
MTEgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGlyZWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WCgpIDogb3Zl
cmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WSgpIDogb3ZlcmZs
b3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gb3Zl
cmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6
OlZpc2libGU7IH0KKworI2lmIEVOQUJMRShDU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SKQorICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5v
dmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xs
QmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9y
PihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQorI2VuZGlm
CiAgICAgCiAgICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VmlzaWJpbGl0eT4obV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5KTsgfQogICAgIFZl
cnRpY2FsQWxpZ24gdmVydGljYWxBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZl
cnRpY2FsQWxpZ24+KG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbik7IH0KQEAgLTg4
Miw2ICs4ODcsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cg
dikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJp
dGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisjaWYgRU5B
QkxFKENTU09NX09WRVJTQ1JPTExfQkVIQVZJT1IpCisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVo
YXZpb3JYKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVk
RGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQor
ICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBT
RVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih2KSk7IH0KKyNlbmRpZgogICAgIHZvaWQgc2V0VmlzaWJpbGl0eShW
aXNpYmlsaXR5IHYpIHsgbV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ24g
dikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24gPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5ndGgoTGVuZ3RoJiYgbGVu
Z3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbjo6TGVuZ3RoKTsgU0VUX1ZBUiht
X2JveERhdGEsIG1fdmVydGljYWxBbGlnbiwgV1RGTW92ZShsZW5ndGgpKTsgfQpAQCAtMTQyNSw2
ICsxNDM0LDEwIEBAIHB1YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBw
cm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVy
biBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZs
b3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7IH0KKyNpZiBFTkFCTEUoQ1NTT01fT1ZF
UlNDUk9MTF9CRUhBVklPUikKKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxP
dmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9
CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9y
WSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorI2VuZGlmCiAgICAgc3Rh
dGljIENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3Rh
dGljIERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6Oklu
bGluZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyBy
ZXR1cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggMjgzZGY2NDU5MDcuLjg2NmYyZWFmOGUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaApAQCAtMjYxLDYgKzI2MSwxNCBAQCBlbnVtIGNsYXNzIE92ZXJmbG93IDog
dWludDhfdCB7CiAgICAgUGFnZWRZCiB9OwogCisjaWYgRU5BQkxFKENTU09NX09WRVJTQ1JPTExf
QkVIQVZJT1IpCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAg
IENvbnRhaW4sCisgICAgTm9uZSwKKyAgICBBdXRvCit9OworI2VuZGlmCisKIGVudW0gY2xhc3Mg
VmVydGljYWxBbGlnbiA6IHVpbnQ4X3QgewogICAgIEJhc2VsaW5lLAogICAgIE1pZGRsZSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAwYWVhYzk3NTBjNi4uOWI1NDdkYjRlMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU5LDYgKzU5LDEwIEBAIFN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCiAgICAgLCBzY3JvbGxTbmFwUG9ydChTdHlsZVNjcm9sbFNuYXBQb3J0OjpjcmVh
dGUoKSkKICAgICAsIHNjcm9sbFNuYXBBcmVhKFN0eWxlU2Nyb2xsU25hcEFyZWE6OmNyZWF0ZSgp
KQorI2VuZGlmCisjaWYgRU5BQkxFKENTU09NX09WRVJTQ1JPTExfQkVIQVZJT1IpCisgICAgLCBv
dmVyc2Nyb2xsQmVoYXZpb3JYKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5p
dGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSkpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlv
clkoKSkpCiAjZW5kaWYKICAgICAsIHdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6OmluaXRpYWxXaWxs
Q2hhbmdlKCkpCiAgICAgLCBtYXNrKEZpbGxMYXllclR5cGU6Ok1hc2spCkBAIC0xMzUsNiArMTM5
LDEwIEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05B
UCkKICAgICAsIHNjcm9sbFNuYXBQb3J0KG8uc2Nyb2xsU25hcFBvcnQpCiAgICAgLCBzY3JvbGxT
bmFwQXJlYShvLnNjcm9sbFNuYXBBcmVhKQorI2VuZGlmCisjaWYgRU5BQkxFKENTU09NX09WRVJT
Q1JPTExfQkVIQVZJT1IpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJl
aGF2aW9yWCkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZ
KQogI2VuZGlmCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29udGVudC0+Y2xvbmUoKSA6
IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50ZXJEaXJlY3RpdmVzID8g
c3RkOjptYWtlX3VuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5jb3VudGVyRGlyZWN0aXZl
cykgOiBudWxscHRyKQpAQCAtMjM2LDYgKzI0NCwxMCBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykg
YwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgICAgICYmIHNjcm9sbFNuYXBQb3J0
ID09IG8uc2Nyb2xsU25hcFBvcnQKICAgICAgICAgJiYgc2Nyb2xsU25hcEFyZWEgPT0gby5zY3Jv
bGxTbmFwQXJlYQorI2VuZGlmCisjaWYgRU5BQkxFKENTU09NX09WRVJTQ1JPTExfQkVIQVZJT1Ip
CisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JY
CisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZ
CiAjZW5kaWYKICAgICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYm
IGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVjdGl2ZXMsIG8uY291bnRlckRpcmVj
dGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAwODljY2ZhNDM4Yy4uMjYwNDNkOWJjMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTI4LDYgKzEyOCwxMSBAQCBwdWJsaWM6CiAgICAg
RGF0YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKENTU09NX09WRVJTQ1JPTExfQkVIQVZJT1IpCisgICAgdW5zaWduZWQgb3ZlcnNj
cm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVkIG92
ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKyNlbmRpZgorCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBTdHJpbmcg
YWx0VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IGRmYTRhMjU5NzczLi5lNzFkNjY2YWFiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CkBAIC00MCw2ICs0MCw4IEBAIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSA7CiBFTkFC
TEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HID0gJChFTkFCTEVfQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkdfY29jb2F0b3VjaCA9IEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkc7CiAKK0VOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SID0gRU5B
QkxFX0NTU09NX09WRVJTQ1JPTExfQkVIQVZJT1I7CisKIEVOQUJMRV9BUFBMRV9QQVkgPSAkKEVO
QUJMRV9BUFBMRV9QQVlfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQVBQTEVfUEFZX2lw
aG9uZW9zID0gRU5BQkxFX0FQUExFX1BBWTsKIEVOQUJMRV9BUFBMRV9QQVlfaXBob25lc2ltdWxh
dG9yID0gRU5BQkxFX0FQUExFX1BBWTsKQEAgLTM3NCw0ICszNzYsNCBAQCBFTkFCTEVfV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAog
RU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAk
KEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5U
KSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVO
QUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElP
TikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19TQ1JPTExfU05B
UCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19X
T1JEKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFD
VElPTikgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVO
QUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVO
QUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09C
U0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfSlNfQVNZTkNfSVRF
UkFUSU9OKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9B
UkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChF
TkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01f
UFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFD
X1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5B
QkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJ
QV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5H
KSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NV
QlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJF
Ul9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1Rf
QUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9W
SURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJ
REVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9BVVRITikgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5B
QkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlOR19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SKSAk
KEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJM
RV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJM
RV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQU5J
TUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5B
QkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
ICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBP
UlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VY
UEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5B
QkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
ICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9K
SVQpICQoRU5BQkxFX0pTX0FTWU5DX0lURVJBVElPTikgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9B
VFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0xBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkg
JChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9O
RSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJ
Q19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1Ip
ICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdF
KSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChF
TkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxF
X1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRM
RVJTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9SVEMpICQo
RU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJBU1NFTUJMWV9TVFJFQU1JTkdfQVBJKSAk
KEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxF
X1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCmluZGV4IGRmYTRhMjU5NzczLi5lNzFkNjY2YWFiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKQEAgLTQwLDYgKzQwLDggQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUyA9IDsKIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgPSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkdfJChXS19DT0NPQV9UT1VDSCkpOwog
RU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR19jb2NvYXRvdWNoID0gRU5BQkxF
X0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORzsKIAorRU5BQkxFX0NTU09NX09WRVJTQ1JP
TExfQkVIQVZJT1IgPSBFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUjsKKwogRU5BQkxF
X0FQUExFX1BBWSA9ICQoRU5BQkxFX0FQUExFX1BBWV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVO
QUJMRV9BUFBMRV9QQVlfaXBob25lb3MgPSBFTkFCTEVfQVBQTEVfUEFZOwogRU5BQkxFX0FQUExF
X1BBWV9pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfQVBQTEVfUEFZOwpAQCAtMzc0LDQgKzM3Niw0
IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVf
QVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1Nf
Q09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFC
TEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJM
RV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVO
QUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9E
QVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RS
QUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5U
QUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAk
KEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNU
VVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVO
QUJMRV9KU19BU1lOQ19JVEVSQVRJT04pICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRF
KSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFU
VElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklY
X0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFC
TEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NF
UlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChF
TkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9X
RUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCQVNTRU1CTFlfU1RSRUFNSU5HX0FQSSkgJChFTkFCTEVf
V0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0NTU09NX09WRVJT
Q1JPTExfQkVIQVZJT1IpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NF
U1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMSUNB
VElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZf
Q0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQp
ICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNF
X0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NT
X1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9D
VVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVf
REFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9Q
RVJNSVNTSU9OUykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJM
RV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfSlNfQVNZTkNfSVRFUkFUSU9OKSAkKEVOQUJM
RV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVU
RSkgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NT
U19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdF
UikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1Mp
ICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gp
ICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9T
T1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkg
JChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05B
VklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQVlN
RU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFC
TEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQo
RU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9V
U0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9W
QVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJ
T05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVO
VF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChF
TkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZ
X1NUUkVBTUlOR19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxF
X1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xU
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCAxMTZlMGQ5Njk3NC4uNjdhZjZlZGQ1
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTE2Miw2ICsxNjIsNyBAQCBtYWNy
byhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTICJUb2dnbGUgc2VydmljZSBjb250cm9scyBzdXBwb3J0IiBQUklWQVRF
IE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfU0VSVklDRV9XT1JLRVIgIlRv
Z2dsZSBTZXJ2aWNlV29ya2VyIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HICJUb2dnbGUgc21vb3RoIHNjcm9sbGlu
ZyIgUFJJVkFURSBPTikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ1NTT01fT1ZF
UlNDUk9MTF9CRUhBVklPUiAiVG9nZ2xlIENTU09NIG92ZXJzY3JvbGwgYmVoYXZpb3Igc3VwcG9y
dCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJUyAiVG9nZ2xlIFNwZWVjaCBTeW50aGVzaXMgQVBJIHN1cHBvcnQiIFBSSVZBVEUgT0ZG
KQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9TUEVMTENIRUNLICJUb2dnbGUgU3Bl
bGxjaGVja2luZyBzdXBwb3J0IChyZXF1aXJlcyBFbmNoYW50KSIgUFJJVkFURSBPRkYpCiAgICAg
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1NUUkVBTVNfQVBJICJUb2dnbGUgU3RyZWFtcyBB
UEkgc3VwcG9ydCIgUFJJVkFURSBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS90b29scy92
c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnByb3BzIGIvU291cmNlL2NtYWtlL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXMucHJvcHMKaW5kZXggNGQ0MmZhYTliNTUuLmU1YWIzNmJiZmM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcwor
KysgYi9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy5wcm9wcwpAQCAt
NCw2ICs0LDcgQEAKICAgICA8RU5BQkxFXzNEX1RSQU5TRk9STVM+RU5BQkxFXzNEX1RSQU5TRk9S
TVM8L0VOQUJMRV8zRF9UUkFOU0ZPUk1TPgogICAgIDxFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTIC8+CiAgICAgPEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgLz4KKyAg
ICA8RU5BQkxFX0NTU09NX09WRVJTQ1JPTExfQkVIQVZJT1I+RU5BQkxFX0NTU09NX09WRVJTQ1JP
TExfQkVIQVZJT1I8L0VOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SPgogICAgIDxFTkFC
TEVfQVRUQUNITUVOVF9FTEVNRU5UPkVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQ8L0VOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQ+CiAgICAgPEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORz5FTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkc8L0VOQUJMRV9DSEFOTkVMX01FU1NBR0lORz4KICAgICA8RU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVM+RU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVM8L0VO
QUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTPgpAQCAtNzYsNyArNzcsNyBAQAogICA8L1Byb3Bl
cnR5R3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgogICAgIDxDbENvbXBpbGU+Ci0gICAg
ICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7JChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19T
Q1JPTExJTkcpOyQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpOyQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19J
TUFHRV9TRVQpOyQoRU5BQkxFX0NTUzNfVEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTsk
KEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7
JChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVE
KTskKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJM
RV9FTkNSWVBURURfTUVESUEpOyQoRU5BQkxFX0ZFVENIX0FQSSk7JChFTkFCTEVfRklMRV9TWVNU
RU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9H
RU9MT0NBVElPTik7JChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JQ09OREFUQUJB
U0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ip
OyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0lOVEwpOyQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKTskKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01F
RElBKTskKEVOQUJMRV9MSU5LX1BSRVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9N
RVRFUl9FTEVNRU5UKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRSk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX05B
VklHQVRPUl9DT05URU5UX1VUSUxTKTskKEVOQUJMRV9TVFJFQU1TX0FQSSk7JChFTkFCTEVfU0NS
SVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09O
VFJPTFNfU0NSSVBUKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVO
QUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChF
TkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQo
RU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVfV0VCR0wpOyQoRU5BQkxFX1dFQkdQVSk7JChFTkFC
TEVfV0VCVlRUX1JFR0lPTlMpOyQoRU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTsl
KFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAg
ICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+JChFTkFCTEVfM0RfVFJBTlNGT1JNUyk7JChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19T
Q1JPTExJTkcpOyQoRU5BQkxFX0NTU09NX09WRVJTQ1JPTExfQkVIQVZJT1IpOyQoRU5BQkxFX0FU
VEFDSE1FTlRfRUxFTUVOVCk7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NT
UzNfQ09ORElUSU9OQUxfUlVMRVMpOyQoRU5BQkxFX0NTU19JTUFHRV9TRVQpOyQoRU5BQkxFX0NT
UzNfVEVYVCk7JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKTskKEVOQUJMRV9DU1Nf
U0hBREVSUyk7JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKTskKEVOQUJMRV9DU1NfU0VMRUNUT1JT
X0xFVkVMNCk7JChFTkFCTEVfQ1NTX1NIQVBFX0lOU0lERSk7JChFTkFCTEVfQ1NTX1RSQU5TRk9S
TVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKTskKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSk7JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKTskKEVOQUJMRV9EQVRBR1JJ
RCk7JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9FTkNSWVBURURfTUVESUEpOyQo
RU5BQkxFX0ZFVENIX0FQSSk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVf
SElHSF9EUElfQ0FOVkFTKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVD
SCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspOyQoRU5BQkxFX0lOVEwpOyQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BS
RUZJWEVTKTskKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKTskKEVOQUJMRV9MSU5LX1BS
RVJFTkRFUik7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9FTEVNRU5UKTskKEVOQUJM
RV9NSUNST0RBVEEpOyQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSk7JChFTkFCTEVfTk9USUZJ
Q0FUSU9OUyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxT
KTskKEVOQUJMRV9TVFJFQU1TX0FQSSk7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJM
RV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKTskKEVOQUJM
RV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1NRTF9E
QVRBQkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQp
OyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVO
QUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQoRU5BQkxFX1dFQl9BVURJTyk7JChF
TkFCTEVfV0VCR0wpOyQoRU5BQkxFX1dFQkdQVSk7JChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpOyQo
RU5BQkxFX1hIUl9USU1FT1VUKTskKEVOQUJMRV9YU0xUKTslKFByZXByb2Nlc3NvckRlZmluaXRp
b25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CiAgICAgPC9DbENvbXBpbGU+CiAgIDwvSXRl
bURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KQEAgLTkyLDYgKzkzLDEwIEBACiAgICAg
ICA8VmFsdWU+JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKTwvVmFsdWU+
CiAgICAgICA8RW52aXJvbm1lbnRWYXJpYWJsZT50cnVlPC9FbnZpcm9ubWVudFZhcmlhYmxlPgog
ICAgIDwvQnVpbGRNYWNybz4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJFTkFCTEVfQ1NTT01f
T1ZFUlNDUk9MTF9CRUhBVklPUiI+CisgICAgICA8VmFsdWU+JChFTkFCTEVfQ1NTT01fT1ZFUlND
Uk9MTF9CRUhBVklPUik8L1ZhbHVlPgorICAgICAgPEVudmlyb25tZW50VmFyaWFibGU+dHJ1ZTwv
RW52aXJvbm1lbnRWYXJpYWJsZT4KKyAgICA8L0J1aWxkTWFjcm8+CiAgICAgPEJ1aWxkTWFjcm8g
SW5jbHVkZT0iRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCI+CiAgICAgICA8VmFsdWU+JChFTkFC
TEVfQVRUQUNITUVOVF9FTEVNRU5UKTwvVmFsdWU+CiAgICAgICA8RW52aXJvbm1lbnRWYXJpYWJs
ZT50cnVlPC9FbnZpcm9ubWVudFZhcmlhYmxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL3Rv
b2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby5wcm9wcyBiL1NvdXJjZS9jbWFrZS90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKaW5kZXggMTEzYWFkZTVjOGYuLmYy
ZTkxYzEzNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lc0NhaXJvLnByb3BzCisrKyBiL1NvdXJjZS9jbWFrZS90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzQ2Fpcm8ucHJvcHMKQEAgLTQsNiArNCw3IEBACiAgICAgPEVOQUJMRV8zRF9UUkFO
U0ZPUk1TPkVOQUJMRV8zRF9UUkFOU0ZPUk1TPC9FTkFCTEVfM0RfVFJBTlNGT1JNUz4KICAgICA8
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyAvPgogICAgIDxFTkFCTEVfQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HIC8+CisgICAgPEVOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFW
SU9SPkVOQUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SPC9FTkFCTEVfQ1NTT01fT1ZFUlND
Uk9MTF9CRUhBVklPUj4KICAgICA8RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVD5FTkFCTEVfQVRU
QUNITUVOVF9FTEVNRU5UPC9FTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UPgogICAgIDxFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkc+RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HPC9FTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkc+CiAgICAgPEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTPkVOQUJMRV9D
U1MzX0NPTkRJVElPTkFMX1JVTEVTPC9FTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUz4KQEAg
LTc1LDcgKzc2LDcgQEAKICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91
cD4KICAgICA8Q2xDb21waWxlPgotICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPiQoRU5B
QkxFXzNEX1RSQU5TRk9STVMpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFC
TEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKTskKEVOQUJMRV9BVFRBQ0hNRU5UX0VM
RU1FTlQpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1MzX0NPTkRJVElP
TkFMX1JVTEVTKTskKEVOQUJMRV9DU1NfSU1BR0VfU0VUKTskKEVOQUJMRV9DU1MzX1RFWFQpOyQo
RU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQo
RU5BQkxFX0NTU19DT01QT1NJVElORyk7JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpOyQo
RU5BQkxFX0NTU19TSEFQRV9JTlNJREUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElP
TlNfVFJBTlNJVElPTlNfVU5QUkVGSVhFRCk7JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpOyQo
RU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUX0VMRU1FTlQpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRU5DUllQVEVEX01FRElBKTskKEVOQUJMRV9GRVRD
SF9BUEkpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChF
TkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0hJR0hfRFBJX0NB
TlZBUyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KTskKEVOQUJMRV9JTlRMKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQo
RU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRB
KTskKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQo
RU5BQkxFX1FVT1RBKTskKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUyk7JChFTkFCTEVf
U0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTsk
KEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7
JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0sp
OyQoRU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVfV0VCR0wpOyQoRU5BQkxFX1dFQlZUVF9SRUdJ
T05TKTskKEVOQUJMRV9YSFJfVElNRU9VVCk7JChFTkFCTEVfWFNMVCk7JShQcmVwcm9jZXNzb3JE
ZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPiQoRU5BQkxFXzNEX1RSQU5TRk9STVMpOyQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUyk7JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKTskKEVO
QUJMRV9DU1NPTV9PVkVSU0NST0xMX0JFSEFWSU9SKTskKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKTskKEVOQUJMRV9DU1NfSU1BR0VfU0VUKTskKEVOQUJMRV9DU1MzX1RFWFQpOyQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5B
QkxFX0NTU19DT01QT1NJVElORyk7JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpOyQoRU5B
QkxFX0NTU19TSEFQRV9JTlNJREUpOyQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNf
VFJBTlNJVElPTlNfVU5QUkVGSVhFRCk7JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpOyQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUik7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRU5DUllQVEVEX01FRElBKTskKEVOQUJMRV9GRVRDSF9B
UEkpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFC
TEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0hJR0hfRFBJX0NBTlZB
Uyk7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTsk
KEVOQUJMRV9JTlRMKTskKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUyk7JChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSk7JChFTkFCTEVfTElOS19QUkVSRU5ERVIpOyQoRU5B
QkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfRUxFTUVOVCk7JChFTkFCTEVfTUlDUk9EQVRBKTsk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5B
QkxFX1FVT1RBKTskKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUyk7JChFTkFCTEVfU0NS
SVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfTUVESUFfQ09O
VFJPTFNfU0NSSVBUKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVO
QUJMRV9TVUJQSVhFTF9MQVlPVVQpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChF
TkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfVklERU9fVFJBQ0spOyQo
RU5BQkxFX1dFQl9BVURJTyk7JChFTkFCTEVfV0VCR0wpOyQoRU5BQkxFX1dFQlZUVF9SRUdJT05T
KTskKEVOQUJMRV9YSFJfVElNRU9VVCk7JChFTkFCTEVfWFNMVCk7JShQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgogICAgIDwvQ2xDb21waWxlPgogICA8
L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtR3JvdXA+CkBAIC05MSw2ICs5MiwxMCBAQAog
ICAgICAgPFZhbHVlPiQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyk8L1Zh
bHVlPgogICAgICAgPEVudmlyb25tZW50VmFyaWFibGU+dHJ1ZTwvRW52aXJvbm1lbnRWYXJpYWJs
ZT4KICAgICA8L0J1aWxkTWFjcm8+CisgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0iRU5BQkxFX0NT
U09NX09WRVJTQ1JPTExfQkVIQVZJT1IiPgorICAgICAgPFZhbHVlPiQoRU5BQkxFX0NTU09NX09W
RVJTQ1JPTExfQkVIQVZJT1IpPC9WYWx1ZT4KKyAgICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlPnRy
dWU8L0Vudmlyb25tZW50VmFyaWFibGU+CisgICAgPC9CdWlsZE1hY3JvPgogICAgIDxCdWlsZE1h
Y3JvIEluY2x1ZGU9IkVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQiPgogICAgICAgPFZhbHVlPiQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCk8L1ZhbHVlPgogICAgICAgPEVudmlyb25tZW50VmFy
aWFibGU+dHJ1ZTwvRW52aXJvbm1lbnRWYXJpYWJsZT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9G
ZWF0dXJlTGlzdC5wbQppbmRleCA2YzkwNjBkMDIwZC4uOTY3OTA4YTYzODQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTExOCw2ICsxMTgsNyBAQCBteSAoCiAg
ICAgJHJlc29sdXRpb25NZWRpYVF1ZXJ5U3VwcG9ydCwKICAgICAkc2NyaXB0ZWRTcGVlY2hTdXBw
b3J0LAogICAgICRzZXJ2aWNlV29ya2VyU3VwcG9ydCwKKyAgICAkY3Nzb21PdmVyc2Nyb2xsQmVo
YXZpb3JTdXBwb3J0LAogICAgICRzdWJ0bGVDcnlwdG8sCiAgICAgJHN2Z0ZvbnRzU3VwcG9ydCwK
ICAgICAkc3lzdGVtTWFsbG9jU3VwcG9ydCwKQEAgLTMzNyw2ICszMzgsOSBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gInNlcnZpY2Utd29ya2VyIiwgZGVzYyA9PiAiVG9nZ2xl
IFNlcnZpY2UgV29ya2VyIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfU0VSVklD
RV9XT1JLRVIiLCB2YWx1ZSA9PiBcJHNlcnZpY2VXb3JrZXJTdXBwb3J0IH0sCiAKKyAgICB7IG9w
dGlvbiA9PiAiY3Nzb20tb3ZlcnNjcm9sbC1iZWhhdmlvciIsIGRlc2MgPT4gIlRvZ2dsZSBDU1NP
TSBPdmVyc2Nyb2xsIEJlaGF2aW9yIiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU09NX09W
RVJTQ1JPTExfQkVIQVZJT1IiLCB2YWx1ZSA9PiBcJGNzc29tT3ZlcnNjcm9sbEJlaGF2aW9yU3Vw
cG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gInN1YnRsZS1jcnlwdG8iLCBkZXNjID0+ICJUb2dn
bGUgV2ViQ3J5cHRvIFN1YnRsZS1DcnlwdG8gc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9TVUJUTEVfQ1JZUFRPIiwgdmFsdWUgPT4gXCRzdWJ0bGVDcnlwdG8gfSwKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKaW5kZXggZGZhNGEyNTk3NzMuLmU3MWQ2NjZhYWI0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKQEAgLTQwLDYgKzQwLDggQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9
IDsKIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgPSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkdfJChXS19DT0NPQV9UT1VDSCkpOwogRU5BQkxFX0FD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR19jb2NvYXRvdWNoID0gRU5BQkxFX0FDQ0VMRVJB
VEVEX09WRVJGTE9XX1NDUk9MTElORzsKIAorRU5BQkxFX0NTU09NX09WRVJTQ1JPTExfQkVIQVZJ
T1IgPSBFTkFCTEVfQ1NTT01fT1ZFUlNDUk9MTF9CRUhBVklPUjsKKwogRU5BQkxFX0FQUExFX1BB
WSA9ICQoRU5BQkxFX0FQUExFX1BBWV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BUFBM
RV9QQVlfaXBob25lb3MgPSBFTkFCTEVfQVBQTEVfUEFZOwogRU5BQkxFX0FQUExFX1BBWV9pcGhv
bmVzaW11bGF0b3IgPSBFTkFCTEVfQVBQTEVfUEFZOwpAQCAtMzc0LDQgKzM3Niw0IEBAIEVOQUJM
RV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUOwogCiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZ
KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjQpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5U
X0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9O
SU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1ND
Uk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RS
QUlMSU5HX1dPUkQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRB
X0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9F
TEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVMpICQoRU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVM
XzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
QU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lO
UFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRFUlNF
Q1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5U
UykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9KU19B
U1lOQ19JVEVSQVRJT04pICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJM
RV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZ
X0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVO
QUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9D
QVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NF
U1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9N
SFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVS
X0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09S
S0VSKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChF
TkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVVNF
UlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJBU1NFTUJM
WSkgJChFTkFCTEVfV0VCQVNTRU1CTFlfU1RSRUFNSU5HX0FQSSkgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0Rf
VFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0NTU09NX09WRVJTQ1JPTExfQkVI
QVZJT1IpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMp
ICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5J
RkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMp
ICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxF
X0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9S
U19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DVVJTT1JfVklT
SUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9B
UkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREFUQUNVRV9W
QUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9O
UykgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5D
T01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAk
KEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX0pJVCkgJChFTkFCTEVfSlNfQVNZTkNfSVRFUkFUSU9OKSAkKEVOQUJMRV9LRVlCT0FS
RF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFC
TEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxF
X01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNf
U0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9T
VEFOREFMT05FKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFC
TEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lO
U1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VS
Q0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRS
T0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykg
JChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSX01FU1NB
R0VfSEFORExFUlMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05f
Rk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NS
RUVOKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VC
X1JUQykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkFTU0VNQkxZX1NUUkVBTUlO
R19BUEkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkg
JChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKLS0gCjIu
MTguMAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350862</attachid>
            <date>2018-09-26 07:55:08 -0700</date>
            <delta_ts>2018-11-15 05:23:57 -0800</delta_ts>
            <desc>WIP Patch (CSS parsing only)</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>16571</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBhMmIwYmMzZjg5NGMyZGRkNzkyN2QwZGRkN2ZlOTQ3YWY0N2JhMWEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBXZWQsIDI2IFNlcCAyMDE4IDE2OjQxOjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM2ICsrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uICAgICAgICAg
fCA0MCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbiAgICAgICAgfCAgMyArKwogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcCAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmggIHwgIDggKystLQogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAgIHwgMTMgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwg
ICAgICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaCAgfCAgOCArKysrCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmggICAgfCAgNiArKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cCAgICAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCAg
ICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwg
ICAgICB8ICA2ICsrKwogMTMgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyksIDMgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAppbmRleCBiN2IwYTQ4YmVkYy4uM2FlYjgyZDE4ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0x
OTUsNiArMTk1LDggQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0
aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlPdXRsaW5lV2lkdGgsCiAgICAgQ1NTUHJvcGVydHlP
dmVyZmxvd1dyYXAsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1gsCisgICAgQ1NTUHJvcGVydHlP
dmVyc2Nyb2xsQmVoYXZpb3JYLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwK
ICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93WSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20s
CiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwKQEAgLTMyODUsNiArMzI4NywxMiBAQCBSZWZQ
dHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0
eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVh
dGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
Zmxvd1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxl
Lm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
cjoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgo
c3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhh
dmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgor
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Ny
b2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAg
ICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZS
ZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENT
U1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaAppbmRleCBjMzQ0ZTc1NjdiZS4uMWFjNWFhMzE0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMjIwNCw2ICsyMjA0LDQy
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxv
dygpIGNvbnN0CiAgICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJl
aGF2aW9yIGUpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2Ug
T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNvbnRhaW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2
aW9yOjpOb25lOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30K
KwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3Jv
bGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAg
ICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1
ZU5vbmU6CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFr
QmV0d2VlbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRleCBlOTk5Nzc2YTdjYS4uYjA5NTMwNDRlM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzA1Myw2ICszMDUzLDQ2IEBA
CiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJm
bG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAg
ICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9w
ZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAg
ICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2
ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7
CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3Jv
bGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAg
ICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAg
ICAgICJub25lIiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxv
cG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwt
YmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQor
ICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAg
ICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAg
ICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9w
bWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAg
ICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1i
ZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJv
cGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3MTQ4YTk5NzczOS4uZDJmYzY1MjM0OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzU2LDYgKzEzNTYsOSBA
QCBzY3JvbGwtcG9zaXRpb24KIG1hbmlwdWxhdGlvbgogI2VuZGlmCiAKKy8vIG92ZXJzY3JvbGwt
YmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5k
CiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5j
cHAKaW5kZXggZTNlN2Y5Y2I3OTcuLjMxMGQyMDMyZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgQ1NTUGFy
c2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVS
TCYgc2hlZXRCYXNlVVJMLAogICAgIGNvbmljR3JhZGllbnRzRW5hYmxlZCA9IGRvY3VtZW50LnNl
dHRpbmdzKCkuY29uaWNHcmFkaWVudHNFbmFibGVkKCk7CiAgICAgY29sb3JGaWx0ZXJFbmFibGVk
ID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5jb2xvckZpbHRlckVuYWJsZWQoKTsKICAgICBkZWZlcnJl
ZENTU1BhcnNlckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0
aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJh
bmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJh
bmNlKCkgOiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk3LDYgKzk4LDcgQEAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIGIpCiAgICAgICAgICYmIGEuY29uaWNHcmFkaWVudHNFbmFibGVkID09IGIuY29uaWNH
cmFkaWVudHNFbmFibGVkCiAgICAgICAgICYmIGEuY29sb3JGaWx0ZXJFbmFibGVkID09IGIuY29s
b3JGaWx0ZXJFbmFibGVkCiAgICAgICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09
IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCisgICAgICAgICYmIGEub3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAgJiYgYS5o
YXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID09IGIuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbgog
ICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRl
eCBlNDU4YzFkYTE3Yy4uODQ0MmE0NGMyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBib29s
IGNvbmljR3JhZGllbnRzRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBjb2xvckZpbHRlckVu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OwogICAg
IAogICAgIC8vIFRoaXMgaXMgb25seSBuZWVkZWQgdG8gc3VwcG9ydCBnZXRNYXRjaGVkQ1NTUnVs
ZXMuCiAgICAgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgZmFsc2UgfTsKQEAgLTk2
LDkgKzk3LDEwIEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAgICAgICAgICAgICAm
IGtleS5jb25pY0dyYWRpZW50c0VuYWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCA3CiAgICAg
ICAgICAgICAmIGtleS5jb2xvckZpbHRlckVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICA8
PCA4CiAgICAgICAgICAgICAmIGtleS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgICAgICAgICAg
ICAgICAgICA8PCA5Ci0gICAgICAgICAgICAmIGtleS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
ICAgICAgICAgICAgICAgICA8PCAxMAotICAgICAgICAgICAgJiBrZXkudXNlU3lzdGVtQXBwZWFy
YW5jZSAgICAgICAgICAgICAgICAgICAgICAgPDwgMTEKLSAgICAgICAgICAgICYga2V5Lm1vZGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEyOyAvLyBLZWVwIHRoaXMg
bGFzdC4KKyAgICAgICAgICAgICYga2V5Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAg
ICAgICAgICAgIDw8IDEwCisgICAgICAgICAgICAmIGtleS5oYXNEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luICAgICAgICAgICAgICAgICA8PCAxMQorICAgICAgICAgICAgJiBrZXkudXNlU3lzdGVtQXBw
ZWFyYW5jZSAgICAgICAgICAgICAgICAgICAgICAgPDwgMTIKKyAgICAgICAgICAgICYga2V5Lm1v
ZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEzOyAvLyBLZWVwIHRo
aXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJl
dHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKaW5kZXggMDJkMjkzY2QyYTEuLjVmNTM2NDBhYmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjM2NSw2
ICsyMzY1LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xsU25h
cFR5cGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgogCitzdGF0aWMgUmVm
UHRyPENTU1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAg
IGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlTm9uZSAm
JiB2YWx1ZUlEICE9IENTU1ZhbHVlQ29udGFpbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Cit9CisKIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2UsIGNzc1Bh
cnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CkBAIC0zOTk2LDYgKzQwMDQsMTEgQEAg
UmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsU25hcFR5
cGU6CiAgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsU25hcFR5cGUobV9yYW5nZSk7CiAjZW5k
aWYKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENT
U1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFtX2NvbnRleHQub3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNl
IENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1f
Y29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCmluZGV4IDc3ZGYwNjMzMjExLi5iMGUwMmMyNDJhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MueWFtbApAQCAtMzY0LDYgKzM2NCw4IEBAIGZyYW1lRmxhdHRlbmluZzoKIGFzeW5j
RnJhbWVTY3JvbGxpbmdFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogICBvbkNoYW5nZTogc2V0
TmVlZHNSZWxheW91dEFsbEZyYW1lcworb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5p
dGlhbDogZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGRjZDAyNWY2
NWMwLi44MGIzMTYxOGY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKQEAgLTMzMiw2ICszMzIsOSBAQCBwdWJsaWM6CiAgICAgT3ZlcmZsb3cgb3Zl
cmZsb3dJbmxpbmVEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gb3ZlcmZsb3dYKCkgOiBvdmVyZmxvd1koKTsgfQogICAgIE92ZXJmbG93IG92ZXJm
bG93QmxvY2tEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gb3ZlcmZsb3dZKCkgOiBvdmVyZmxvd1goKTsgfQogICAgIGJvb2wgaXNPdmVyZmxvd1Zp
c2libGUoKSBjb25zdCB7IHJldHVybiBvdmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSB8
fCBvdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6VmlzaWJsZTsgfQorCisgICAgT3ZlcnNjcm9sbEJl
aGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclgoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxP
dmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhh
dmlvclgpOyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclkoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbklu
aGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclkpOyB9CiAgICAgCiAgICAgVmlzaWJpbGl0
eSB2aXNpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlzaWJpbGl0eT4obV9p
bmhlcml0ZWRGbGFncy52aXNpYmlsaXR5KTsgfQogICAgIFZlcnRpY2FsQWxpZ24gdmVydGljYWxB
bGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZlcnRpY2FsQWxpZ24+KG1fbm9uSW5o
ZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbik7IH0KQEAgLTg4Miw2ICs4ODUsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldE92ZXJmbG93WChPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxh
Z3Mub3ZlcmZsb3dYID0gIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0
T3ZlcmZsb3dZKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy5vdmVyZmxvd1kgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlv
clgoT3ZlcnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCBvdmVyc2Nyb2xsQmVoYXZpb3JYLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CisgICAg
dm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JZKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHYpKTsgfQogICAgIHZvaWQgc2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5IHYp
IHsgbV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYp
OyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ24gdikgeyBtX25vbklu
aGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0K
ICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5ndGgoTGVuZ3RoJiYgbGVuZ3RoKSB7IHNldFZl
cnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbjo6TGVuZ3RoKTsgU0VUX1ZBUihtX2JveERhdGEsIG1f
dmVydGljYWxBbGlnbiwgV1RGTW92ZShsZW5ndGgpKTsgfQpAQCAtMTQyNSw2ICsxNDMwLDkgQEAg
cHVibGljOgogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAg
ICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WCgpIHsgcmV0dXJuIE92ZXJmbG93OjpW
aXNpYmxlOyB9CiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1koKSB7IHJldHVy
biBPdmVyZmxvdzo6VmlzaWJsZTsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5p
dGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1
dG87IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVo
YXZpb3JZKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICBzdGF0
aWMgQ2xlYXIgaW5pdGlhbENsZWFyKCkgeyByZXR1cm4gQ2xlYXI6Ok5vbmU7IH0KICAgICBzdGF0
aWMgRGlzcGxheVR5cGUgaW5pdGlhbERpc3BsYXkoKSB7IHJldHVybiBEaXNwbGF5VHlwZTo6SW5s
aW5lOyB9CiAgICAgc3RhdGljIEVVbmljb2RlQmlkaSBpbml0aWFsVW5pY29kZUJpZGkoKSB7IHJl
dHVybiBVQk5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCA0MGY0YWY0ZjA3NS4uMzVkMTJmYTUyNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oCkBAIC0yNjAsNiArMjYwLDEyIEBAIGVudW0gY2xhc3MgT3ZlcmZsb3cgOiB1
aW50OF90IHsKICAgICBQYWdlZFkKIH07CiAKK2VudW0gY2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9y
IDogdWludDhfdCB7CisgICAgQ29udGFpbiwKKyAgICBOb25lLAorICAgIEF1dG8KK307CisKIGVu
dW0gY2xhc3MgVmVydGljYWxBbGlnbiA6IHVpbnQ4X3QgewogICAgIEJhc2VsaW5lLAogICAgIE1p
ZGRsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAwYWVhYzk3NTBjNi4uZjg1MDYyYWIy
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTYwLDYgKzYwLDggQEAgU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBzY3Jv
bGxTbmFwUG9ydChTdHlsZVNjcm9sbFNuYXBQb3J0OjpjcmVhdGUoKSkKICAgICAsIHNjcm9sbFNu
YXBBcmVhKFN0eWxlU2Nyb2xsU25hcEFyZWE6OmNyZWF0ZSgpKQogI2VuZGlmCisgICAgLCBvdmVy
c2Nyb2xsQmVoYXZpb3JYKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlh
bE92ZXJzY3JvbGxCZWhhdmlvclgoKSkpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclko
KSkpCiAgICAgLCB3aWxsQ2hhbmdlKFJlbmRlclN0eWxlOjppbml0aWFsV2lsbENoYW5nZSgpKQog
ICAgICwgbWFzayhGaWxsTGF5ZXJUeXBlOjpNYXNrKQogICAgICwgb2JqZWN0UG9zaXRpb24oUmVu
ZGVyU3R5bGU6OmluaXRpYWxPYmplY3RQb3NpdGlvbigpKQpAQCAtMTM2LDYgKzEzOCw4IEBAIGlu
bGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
KGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBzY3JvbGxTbmFwUG9ydChvLnNjcm9sbFNuYXBQ
b3J0KQogICAgICwgc2Nyb2xsU25hcEFyZWEoby5zY3JvbGxTbmFwQXJlYSkKICNlbmRpZgorICAg
ICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChvLm92ZXJzY3JvbGxCZWhhdmlvclgpCisgICAgLCBvdmVy
c2Nyb2xsQmVoYXZpb3JZKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWSkKICAgICAsIGNvbnRlbnQoby5j
b250ZW50ID8gby5jb250ZW50LT5jbG9uZSgpIDogbnVsbHB0cikKICAgICAsIGNvdW50ZXJEaXJl
Y3RpdmVzKG8uY291bnRlckRpcmVjdGl2ZXMgPyBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJEaXJl
Y3RpdmVNYXA+KCpvLmNvdW50ZXJEaXJlY3RpdmVzKSA6IG51bGxwdHIpCiAgICAgLCBhbHRUZXh0
KG8uYWx0VGV4dCkKQEAgLTIzNyw2ICsyNDEsOCBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwog
ICAgICAgICAmJiBzY3JvbGxTbmFwUG9ydCA9PSBvLnNjcm9sbFNuYXBQb3J0CiAgICAgICAgICYm
IHNjcm9sbFNuYXBBcmVhID09IG8uc2Nyb2xsU25hcEFyZWEKICNlbmRpZgorICAgICAgICAmJiBv
dmVyc2Nyb2xsQmVoYXZpb3JYID09IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWAorICAgICAgICAmJiBv
dmVyc2Nyb2xsQmVoYXZpb3JZID09IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWQogICAgICAgICAmJiBj
b250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0
YShjb3VudGVyRGlyZWN0aXZlcywgby5jb3VudGVyRGlyZWN0aXZlcykKICAgICAgICAgJiYgYWx0
VGV4dCA9PSBvLmFsdFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDA4OWNjZmE0MzhjLi5k
ZThiYzRkNzcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xMjgsNiArMTI4LDkgQEAgcHVi
bGljOgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxTbmFwQXJlYT4gc2Nyb2xsU25hcEFyZWE7CiAj
ZW5kaWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclggOiAyOyAvLyBPdmVyc2Ny
b2xsQmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JZIDogMjsgLy8gT3Zl
cnNjcm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+IGNvbnRl
bnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJEaXJlY3RpdmVNYXA+IGNvdW50ZXJEaXJl
Y3RpdmVzOwogICAgIFN0cmluZyBhbHRUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKaW5kZXggYTgyYWIxMjUyODcuLmFhOWQwNmY4N2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTExNDQsNiArMTE0NCwxMiBAQCBFbmNy
eXB0ZWRNZWRpYUFQSUVuYWJsZWQ6CiAjICAgREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRVNf
RU5BQkxFRCAoZm9yIGZlYXR1cmVzIHRoYXQgYXJlIHJlYWR5IGZvcgogIyAgIHdpZGVyIHRlc3Rp
bmcpLgogCitPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1
bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhh
dmlvciIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZp
b3IgcHJvdG90eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKIFNwcmluZ1RpbWluZ0Z1
bmN0aW9uRW5hYmxlZDoKICAgdHlwZTogYm9vbAotLSAKMi4xOS4wCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>353488</attachid>
            <date>2018-10-31 04:32:04 -0700</date>
            <delta_ts>2018-10-31 04:32:04 -0700</delta_ts>
            <desc>Testcase of annoying scroll chaining</desc>
            <filename>scroll-chaining.html</filename>
            <type>text/html</type>
            <size>630</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkJ1ZyAxNTgzNDI8L3Rp
dGxlPgogIDwvaGVhZD4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoIj4KICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgYmFja2dyb3VuZDogbGluZWFy
LWdyYWRpZW50KDEzNWRlZywgeWVsbG93LCBjeWFuKTsKICAgIH0KICAgIC5zY3JvbGxlciB7CiAg
ICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0
b3VjaDsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICBiYWNr
Z3JvdW5kOiBncmF5OwogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB9CiAgICAuc2Nyb2xsYWJs
ZUNvbnRlbnQgewogICAgICB3aWR0aDogNzVweDsKICAgICAgaGVpZ2h0OiAzMDBweDsKICAgICAg
YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBibHVlKTsKICAgIH0KICA8
L3N0eWxlPgogIDxib2R5PgogICAgPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgogICAgICA8ZGl2IGNs
YXNzPSJzY3JvbGxhYmxlQ29udGVudCI+PC9kaXY+CiAgICA8L2Rpdj4KICA8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354920</attachid>
            <date>2018-11-15 05:23:57 -0800</date>
            <delta_ts>2018-11-27 07:43:54 -0800</delta_ts>
            <desc>WIP Patch (CSS parsing and preference option)</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>26802</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAyN2E5NTc4MjAyNzNiNmUwNTZkMTVmNTcyMjNhMTcxNDhkYjMwNjA4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBXZWQsIDI2IFNlcCAyMDE4IDE2OjQxOjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM2ICsrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uICAgICAgICAg
fCA0MCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbiAgICAgICAgfCAgMyArKwogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcCAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmggIHwgIDQgKy0KIC4uLi9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwICB8IDEzICsrKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sICAg
ICAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggIHwgIDggKysrKwogLi4uL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oICAgIHwgIDYgKysrCiAuLi4vc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAg
ICAgICAgfCAgNiArKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggICAg
ICAgICB8ICAzICsrCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sICAg
ICAgfCAgOCArKystCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgg
ICAgfCAgMSArCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAgICAgICAgICAg
fCAxMSArKysrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oICAgICAg
IHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgIHwg
IDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIHwgIDIg
KwogLi4uL3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAgICAgIHwgIDEgKwog
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAgIHwgMTYgKysrKysr
KysKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggICAgICB8ICAyICsK
IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwICAgICAgICAgICB8ICA1ICsrKwog
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwICAgICAgICAgIHwgIDIgKwogVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCAgICAgICAgICAgIHwgIDEgKwogVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tICAgIHwgIDEgKwogMjUgZmlsZXMg
Y2hhbmdlZCwgMTgxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBmMWI1
MGZiYTZkOS4uODUwYTk3OGQ3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xOTAsNiArMTkwLDggQEAgc3RhdGljIGNv
bnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVy
dHlPdXRsaW5lV2lkdGgsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXAsCiAgICAgQ1NTUHJv
cGVydHlPdmVyZmxvd1gsCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYLAorICAg
IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93
WSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5n
TGVmdCwKQEAgLTMzMDEsNiArMzMwMywxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5
bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1go
KSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9y
WCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
LmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRq
dXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwg
JlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5k
ZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBjOTVmZjY1YTgz
NS4uYjk3MzQ2ZjU5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaApAQCAtMjIwNCw2ICsyMjA0LDQyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIE92
ZXJmbG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGUpCisgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250
YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVo
YXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBP
dmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAg
IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE92
ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpp
bmRleCBmZTAxMmJhNGIyMi4uM2JhYjliODdhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnRpZXMuanNvbgpAQCAtMzA1Myw2ICszMDUzLDQ2IEBACiAgICAgICAgICAgICAgICAgInVybCI6
ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3ct
eSIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZp
b3IiOiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAg
ICAgICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2
aW9yLXgiLAorICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogewor
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6
ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3Zl
cnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAg
ICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAg
ICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0
dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Ny
b2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRk
aW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAg
ICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpp
bmRleCA4NmI1ZTU5MTRmNC4uMTYyMjE2NzMxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCkBAIC0xMzU3LDYgKzEzNTcsOSBAQCBzY3JvbGwtcG9zaXRpb24KIG1hbmlw
dWxhdGlvbgogI2VuZGlmCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwog
Ly8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggMDZjNzAyYTBkYjQuLjIw
NjVkMzA4NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAKQEAgLTczLDYgKzczLDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29u
dGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICAgICBh
dHRhY2htZW50RW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuYXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCk7CiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1Bh
cnNlckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxl
ZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygp
Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0g
ZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkg
OiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xMDIsNiArMTAzLDcgQEAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuYXR0YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2ht
ZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVk
ID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCisgICAgICAgICYmIGEub3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAgJiYg
YS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID09IGIuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdp
bgogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJh
bmNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaApp
bmRleCBlY2VjZWY2NzE0Yi4uNjNjYTk4MjhmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJy
ZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIAogICAgIC8vIFRoaXMgaXMgb25seSBuZWVkZWQgdG8g
c3VwcG9ydCBnZXRNYXRjaGVkQ1NTUnVsZXMuCiAgICAgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luIHsgZmFsc2UgfTsKQEAgLTEwNCw3ICsxMDUsOCBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29u
dGV4dEhhc2ggewogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgICAgICAgICAm
IGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMQogI2Vu
ZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAxMjsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAmIGtleS5vdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMgorICAgICAgICAgICAg
JiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTM7IC8v
IEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChiaXRzKTsKICAg
ICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA1MmYyOGYyNzBjNi4uM2Y5YzE5NDYzYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBA
IC0yMzI2LDYgKzIzMjYsMTQgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNvbnN1bWVT
Y3JvbGxTbmFwVHlwZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIAogI2VuZGlmCiAKK3N0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlk
KCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFs
dWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5n
ZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTQwMTUsNiArNDAy
MywxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3Jhbmdl
KTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAg
IGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBpZiAoIW1fY29u
dGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICByZXR1cm4gY29uc3VtZUNsaXAobV9y
YW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKaW5kZXggNjVmYjJjYmNkNWIuLjZhNTBjNWNiN2ViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC0zNjIsNiArMzYyLDggQEAgZnJhbWVGbGF0dGVuaW5n
OgogYXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAgIG9uQ2hh
bmdlOiBzZXROZWVkc1JlbGF5b3V0QWxsRnJhbWVzCitvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
OgorICBpbml0aWFsOiBmYWxzZQogCiB3ZWJTZWN1cml0eUVuYWJsZWQ6CiAgIGluaXRpYWw6IHRy
dWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
M2FjYjFjOWE4MjcuLjM2OWVjMjI2MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzM5LDYgKzMzOSw5IEBAIHB1YmxpYzoKICAgICBPdmVy
ZmxvdyBvdmVyZmxvd0lubGluZURpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1goKSA6IG92ZXJmbG93WSgpOyB9CiAgICAgT3ZlcmZs
b3cgb3ZlcmZsb3dCbG9ja0RpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyBvdmVyZmxvd1koKSA6IG92ZXJmbG93WCgpOyB9CiAgICAgYm9vbCBpc092
ZXJmbG93VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG92ZXJmbG93WCgpID09IE92ZXJmbG93OjpW
aXNpYmxlIHx8IG92ZXJmbG93WSgpID09IE92ZXJmbG93OjpWaXNpYmxlOyB9CisKKyAgICBPdmVy
c2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2aW9yWCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNj
cm9sbEJlaGF2aW9yWCk7IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2
aW9yWSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWSk7IH0KICAgICAKICAgICBW
aXNpYmlsaXR5IHZpc2liaWxpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaXNpYmls
aXR5PihtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkpOyB9CiAgICAgVmVydGljYWxBbGlnbiB2
ZXJ0aWNhbEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmVydGljYWxBbGlnbj4o
bV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduKTsgfQpAQCAtODk1LDYgKzg5OCw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3ZlcmZsb3dYKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhl
cml0ZWRGbGFncy5vdmVyZmxvd1ggPSAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAg
dm9pZCBzZXRPdmVyZmxvd1koT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJm
bG93WSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQorICAgIHZvaWQgc2V0T3ZlcnNjcm9s
bEJlaGF2aW9yWChPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVy
aXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7
IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclkoT3ZlcnNjcm9sbEJlaGF2aW9yIHYp
IHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JZLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZpc2li
aWxpdHkgdikgeyBtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbiB2KSB7
IG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbkxlbmd0aChMZW5ndGgmJiBsZW5ndGgp
IHsgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduOjpMZW5ndGgpOyBTRVRfVkFSKG1fYm94
RGF0YSwgbV92ZXJ0aWNhbEFsaWduLCBXVEZNb3ZlKGxlbmd0aCkpOyB9CkBAIC0xNDQ0LDYgKzE0
NDksOSBAQCBwdWJsaWM6CiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVy
dGllcwogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dYKCkgeyByZXR1cm4gT3Zl
cmZsb3c6OlZpc2libGU7IH0KICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WSgp
IHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhh
dmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhh
dmlvcjo6QXV0bzsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJz
Y3JvbGxCZWhhdmlvclkoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKwog
ICAgIHN0YXRpYyBDbGVhciBpbml0aWFsQ2xlYXIoKSB7IHJldHVybiBDbGVhcjo6Tm9uZTsgfQog
ICAgIHN0YXRpYyBEaXNwbGF5VHlwZSBpbml0aWFsRGlzcGxheSgpIHsgcmV0dXJuIERpc3BsYXlU
eXBlOjpJbmxpbmU7IH0KICAgICBzdGF0aWMgRVVuaWNvZGVCaWRpIGluaXRpYWxVbmljb2RlQmlk
aSgpIHsgcmV0dXJuIFVCTm9ybWFsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDY2ZTVjN2I0NzQxLi5iZTI0
MTUxMjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTI2MCw2ICsyNjAsMTIgQEAgZW51bSBjbGFzcyBPdmVy
ZmxvdyA6IHVpbnQ4X3QgewogICAgIFBhZ2VkWQogfTsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xs
QmVoYXZpb3IgOiB1aW50OF90IHsKKyAgICBDb250YWluLAorICAgIE5vbmUsCisgICAgQXV0bwor
fTsKKwogZW51bSBjbGFzcyBWZXJ0aWNhbEFsaWduIDogdWludDhfdCB7CiAgICAgQmFzZWxpbmUs
CiAgICAgTWlkZGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDA4MDY2N2IwODg4Li43
ODlmYTQ2MjgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNjAsNiArNjAsOCBAQCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAg
ICAsIHNjcm9sbFNuYXBQb3J0KFN0eWxlU2Nyb2xsU25hcFBvcnQ6OmNyZWF0ZSgpKQogICAgICwg
c2Nyb2xsU25hcEFyZWEoU3R5bGVTY3JvbGxTbmFwQXJlYTo6Y3JlYXRlKCkpCiAjZW5kaWYKKyAg
ICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxl
Ojppbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpKSkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlv
clkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJl
aGF2aW9yWSgpKSkKICAgICAsIHdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6OmluaXRpYWxXaWxsQ2hh
bmdlKCkpCiAgICAgLCBtYXNrKEZpbGxMYXllclR5cGU6Ok1hc2spCiAgICAgLCBvYmplY3RQb3Np
dGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbE9iamVjdFBvc2l0aW9uKCkpCkBAIC0xMzcsNiArMTM5
LDggQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIHNjcm9sbFNuYXBQb3J0KG8uc2Ny
b2xsU25hcFBvcnQpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShvLnNjcm9sbFNuYXBBcmVhKQogI2Vu
ZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAg
ICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZKQogICAgICwgY29u
dGVudChvLmNvbnRlbnQgPyBvLmNvbnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQogICAgICwgY291
bnRlckRpcmVjdGl2ZXMoby5jb3VudGVyRGlyZWN0aXZlcyA/IHN0ZDo6bWFrZV91bmlxdWU8Q291
bnRlckRpcmVjdGl2ZU1hcD4oKm8uY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKICAgICAs
IGFsdFRleHQoby5hbHRUZXh0KQpAQCAtMjM5LDYgKzI0Myw4IEBAIGJvb2wgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JiBvKSBjCiAgICAgICAgICYmIHNjcm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xsU25hcFBvcnQKICAg
ICAgICAgJiYgc2Nyb2xsU25hcEFyZWEgPT0gby5zY3JvbGxTbmFwQXJlYQogI2VuZGlmCisgICAg
ICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JYCisgICAg
ICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZCiAgICAg
ICAgICYmIGNvbnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBhcmVQb2ludGluZ1Rv
RXF1YWxEYXRhKGNvdW50ZXJEaXJlY3RpdmVzLCBvLmNvdW50ZXJEaXJlY3RpdmVzKQogICAgICAg
ICAmJiBhbHRUZXh0ID09IG8uYWx0VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZDQxMWNi
MjU4NGQuLmM1ZjVlNGNkMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEyOCw2ICsxMjgs
OSBAQCBwdWJsaWM6CiAgICAgRGF0YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFw
QXJlYTsKICNlbmRpZgogCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8v
IE92ZXJzY3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAy
OyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0
YT4gY29udGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291
bnRlckRpcmVjdGl2ZXM7CiAgICAgU3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA5ZTVjYzI1YjdhOC4uNmI2NTBmYWVjYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTE5Nyw3ICsxMTk3LDYg
QEAgRWRpdGFibGVJbWFnZXNFbmFibGVkOgogIyAgIERFRkFVTFRfRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTX0VOQUJMRUQgKGZvciBmZWF0dXJlcyB0aGF0IGFyZSByZWFkeSBmb3IKICMgICB3aWRlciB0
ZXN0aW5nKS4KIAotCiBTcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wK
ICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFCTEVECkBA
IC0xMjM3LDYgKzEyMzYsMTMgQEAgUG9pbnRlckV2ZW50c0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5k
aW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAor
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6
IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IgcHJvdG90
eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBmYWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKaW5kZXggYjczZjZjYjY4MzAuLjQ3ODcwYzAwMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKQEAgLTE4Miw2ICsxODIsNyBAQAogI2RlZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxW
aWV3cG9ydEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQiCisjZGVmaW5lIFdl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
IgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U3VidGxl
Q3J5cHRvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
aW5kZXggN2UxY2ZjMWIxZTIuLmVjZTBjN2FjNTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY1Niw2ICs2NTYsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2Vi
S2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKIAorICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
UHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2Vi
S2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9t
RmlsZVVSTHNRdWlya0tleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwg
V2ViS2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXks
CkBAIC0zMDk3LDYgKzMwOTgsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklE
ID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0VmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5Oldl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9p
ZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBf
c2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
CiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMjBiMzM0
Mjk1MTAuLjE4NjE1M2RiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTU4Nyw2ICs1ODcsNyBAQCBl
eHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5v
dGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1
YWxWaWV3cG9ydEVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3
cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1h
Z2VBc3luY0RlY29kaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBlNzhhOGJkNmVmMC4uMzNhMzJiMWYxMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5NTQsNiArMjk1NCw3IEBAIHN0
YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKIAogICAgIHNldHRp
bmdzLnNldFZpc3VhbFZpZXdwb3J0RW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRF
bmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtwcmVm
ZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJl
ZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNl
dE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbAppbmRleCAxOTg4MmNkZDBmMC4uN2M4NjRiZGVhNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmlkbApAQCAtMjIxLDYgKzIyMSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVy
ZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJ
bnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxU
IHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVT
VUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAg
SFJFU1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwor
ICAgIEhSRVNVTFQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxl
ZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZh
bF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChb
aW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQo
W291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggOTQwZDVjZjU1ZDEuLjE0NGJl
MDFkMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaApAQCAtMjA0LDUgKzIwNCw2IEBACiAKICNkZWZpbmUgV2ViS2l0U2VydmVy
VGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAK
KyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAK
aW5kZXggNGRlOTNmYTg1MzYuLjEyZDk4ZGE0YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zMjcsNiArMzI3LDggQEAgdm9pZCBXZWJQcmVmZXJl
bmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVy
ZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShk
ZWZhdWx0cywgQ0ZTVFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VL
ZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVs
dHMsIENGU1RSKFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIGRlZmF1bHRTZXR0aW5ncyA9IGRlZmF1bHRzOwpA
QCAtMjE4NSw2ICsyMTg3LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hS
RVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9P
TCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5U
RVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxU
IFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wgZW5hYmxl
ZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFBy
ZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqIGVu
YWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmgKaW5kZXggM2NlNDQ4NWI4YTAuLmQ0YmU5MGY0MmZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2OSw2ICsyNjksOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEluc3BlY3RvckFkZGl0
aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MKTsK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8g
Qk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCAxZWE5MTVhOWI5NS4uN2Q0MjkzNzliNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01Mjc3LDYgKzUyNzcsMTEgQEAgSFJF
U1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikp
CisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAg
IHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCA4MWIyNDg3
YjIzMy4uZTExMWYyZDAyYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAg
LTEwOSw2ICsxMDksOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAgICAgICAgICAganNj
T3B0aW9ucyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpX
ZWJHUFVFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkdQVSA9IHBhcnNlQm9vbGVhblRl
c3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVu
dGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlT3ZlcnNj
cm9sbEJlaGF2aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAg
ICAgcGFpclN0YXJ0ID0gcGFpckVuZCArIDE7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmgKaW5kZXggOGFlZGI5NDY0MTcuLjlmZGQwNTZhMGEwIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAg
ICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNlbGVj
dGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVXZWJH
UFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnN0cmluZyBqc2NPcHRpb25zOwogCiAgICAgVGVzdE9wdGlvbnMoY29uc3Qg
c3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdXRlUGF0aCk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggNWRlNjEy
YzU5ZjMuLmE3MDFjZGNlMDU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCkBAIC0xMDExLDYgKzEwMTEsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJl
bmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHByZWZl
cmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXI7CiAg
ICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQgPSBv
cHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAgICAgcHJlZmVy
ZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOworICAgIHByZWZlcmVu
Y2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxC
ZWhhdmlvcjsKIH0KIAogLy8gQ2FsbGVkIG9uY2Ugb24gRHVtcFJlbmRlclRyZWUgc3RhcnR1cC4K
LS0gCjIuMTkuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355733</attachid>
            <date>2018-11-27 07:43:54 -0800</date>
            <delta_ts>2018-11-28 10:21:11 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>34173</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA5NWQ1ZjhhODI2YWM4MzlmYmIyZTkxNTU1Y2ZkNTIyN2VjNGZkYTkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBXZWQsIDI2IFNlcCAyMDE4IDE2OjQxOjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM2ICsrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiAgICAgICAgIHwg
NDAgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluICAgICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cCAgICAgICAgfCAgNiArKysKIC4uLi9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5jcHAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5oICB8ICA0ICstCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCAgfCA0NCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmggfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgICAgICAgICAgfCAyNyArKysrKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbCAgICAgICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oICB8ICA4ICsrKysKIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaCAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwICAgICAgIHwgIDYgKysrCiAuLi4vc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbCAgICAgIHwgIDcgKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggICAgfCAgMSArCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0g
ICAgICAgICAgICAgfCAxMSArKysrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tICAgIHwgIDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaWRsIHwgIDIgKwogLi4uL3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAg
ICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAg
IHwgMTYgKysrKysrKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCAg
ICAgIHwgIDIgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgICAgICAgICAg
IHwgIDUgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgICAgICAgICAg
fCAgMiArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oICAgICAgICAgICAgfCAg
MSArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgfCAgMSAr
CiAyOCBmaWxlcyBjaGFuZ2VkLCAyMzggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAppbmRleCBmMWI1MGZiYTZkOS4uODUwYTk3OGQ3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xOTAsNiArMTkwLDgg
QEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlPdXRsaW5lV2lkdGgsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXAs
CiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1gsCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3JYLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAgICBDU1NQcm9w
ZXJ0eU92ZXJmbG93WSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJv
cGVydHlQYWRkaW5nTGVmdCwKQEAgLTMzMDEsNiArMzMwMywxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+
IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKGNvbnN0IFJl
bmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHls
ZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAg
ICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNj
cm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZ
KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJl
dHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6
cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+
KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRl
eCBjOTVmZjY1YTgzNS4uYjk3MzQ2ZjU5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMjIwNCw2ICsyMjA0LDQyIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAg
ICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGUpCisg
ICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJl
aGF2aW9yOjpDb250YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRh
aW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigp
IGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAg
ICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnRpZXMuanNvbgppbmRleCBmZTAxMmJhNGIyMi4uM2JhYjliODdhNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzA1Myw2ICszMDUzLDQ2IEBACiAgICAgICAgICAg
ICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3Bk
ZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJz
Y3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewor
ICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVy
c2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAg
ICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3Iv
I3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwK
KyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMi
OiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwK
KyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3Rh
dHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3By
b3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAor
ICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6
IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAor
ICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0
dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJv
cGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsK
ICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgppbmRleCA4NmI1ZTU5MTRmNC4uMTYyMjE2NzMxY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzU3LDYgKzEzNTcsOSBAQCBzY3JvbGwtcG9z
aXRpb24KIG1hbmlwdWxhdGlvbgogI2VuZGlmCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8v
IGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCA1YWNiNDhmOTExYS4uYTE3OTA3
ZmRiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yMDcsNiAr
MjA3LDggQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1
ZSh3ZWJraXRNYXJnaW5Db2xsYXBzZVNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBnZXRDb21tb25WYWx1ZShvdmVyZmxvd1Nob3J0aGFu
ZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICBy
ZXR1cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKCkpOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAgICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRk
aW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uOgpAQCAtMTAw
NSw2ICsxMDA3LDEwIEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAg
ICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgogICAgICAgICAgICAgICAgIHNo
b3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJmbG93OwogICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6
CisgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAg
ICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3I7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6
CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCmluZGV4IDA2YzcwMmEwZGI0
Li4yMDY1ZDMwODc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckNvbnRleHQuY3BwCkBAIC03Myw2ICs3Myw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNl
ckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAg
ICAgYXR0YWNobWVudEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVu
YWJsZWQoKTsKKyAgICBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGlu
Z3MoKS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5j
ZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5j
ZSgpIDogZmFsc2U7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTAyLDYgKzEwMyw3
IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0
YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5h
YmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLm92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQgPT0gYi5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkCiAgICAgICAg
ICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lzdGVtQXBw
ZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmgKaW5kZXggZWNlY2VmNjcxNGIuLjYzY2E5ODI4ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBhdHRhY2htZW50RW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIGRl
ZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVk
IHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDQsNyArMTA1LDggQEAgc3RydWN0IENTU1BhcnNl
ckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgICAgICAg
ICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTEK
ICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAgICAgICAgICAgJiBrZXku
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgPDwgMTIKKyAgICAgICAg
ICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEz
OyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhhc2goYml0cyk7
CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggNTJmMjhmMjcwYzYuLmJjMzllZGE4NjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cApAQCAtMjMyNiw2ICsyMzI2LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25z
dW1lU2Nyb2xsU25hcFR5cGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgog
CitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWso
KS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENT
U1ZhbHVlTm9uZSAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlQ29udGFpbikKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Cit9CisKIHN0YXRpYyBS
ZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQo
cmFuZ2UsIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CkBAIC00MDE1LDYg
KzQwMjMsMTEgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5n
bGVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsU25hcFR5cGU6CiAgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsU25hcFR5cGUobV9y
YW5nZSk7CiAjZW5kaWYKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoK
KyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFt
X2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3Jhbmdl
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlw
KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAt
NTY1OCw2ICs1NjcxLDM1IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZVNl
bGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9v
bCBpbXBvcnRhbnQpCit7CisgICAgQVNTRVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5sZW5ndGgoKSA9PSAyKTsKKyAgICBpZiAoIW1fY29udGV4
dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQ
dHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclggPSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2
aW9yKG1fcmFuZ2UpOworICAgIGlmICghb3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JZOwor
ICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgp
KQorICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gb3ZlcnNjcm9sbEJlaGF2aW9yWDsKKyAg
ICBlbHNlIHsKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IGNvbnN1bWVPdmVyc2Nyb2xs
QmVoYXZpb3IobV9yYW5nZSk7CisgICAgICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsK
KyAgICAgICAgaWYgKCFtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
LCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclgsIGlt
cG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZ
LCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclksIGlt
cG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6
OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQog
ewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKQEAgLTU2OTcsNiArNTczOSw4IEBAIGJvb2wgQ1NT
UHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJv
b2wgaW1wb3J0YW50KQogICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJmbG93WSwg
Q1NTUHJvcGVydHlPdmVyZmxvdywgKm92ZXJmbG93WVZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvcjoKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQo
aW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udDogewogICAgICAgICBjb25zdCBD
U1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBtX3JhbmdlLnBlZWsoKTsKICAgICAgICAgaWYgKHRva2Vu
LmlkKCkgPj0gQ1NTVmFsdWVDYXB0aW9uICYmIHRva2VuLmlkKCkgPD0gQ1NTVmFsdWVTdGF0dXNC
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKaW5k
ZXggMWRjMDVlZjg4ZGEuLjNmYzE2NjUzNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC0xMDcsNiArMTA3LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIGNvbnN1bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wg
Y29uc3VtZVBlcnNwZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKIAorICAgIGJvb2wgY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCk7CisKIHByaXZh
dGU6CiAgICAgLy8gSW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgbV9yYW5nZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNmUwMWJlZWY0OS4uNTgyMGNjMmMz
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI4MCwxNSArMjgwLDE1
IEBAIHN0YXRpYyBpbmxpbmUgU2Nyb2xsR3JhbnVsYXJpdHkgd2hlZWxHcmFudWxhcml0eVRvU2Ny
b2xsR3JhbnVsYXJpdHkodW5zaWduZWQgZGVsCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFy
ZWEsIFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdGF0aWMgaW5saW5lIGJvb2wgZGlkU2Nyb2xs
SW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEsIGRvdWJsZSBk
ZWx0YVgsIGRvdWJsZSBkZWx0YVksIHVuc2lnbmVkIGRlbHRhTW9kZSkKIHsKLSAgICBTY3JvbGxH
cmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdy
YW51bGFyaXR5KHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOworICAgIFNjcm9sbEdyYW51bGFyaXR5
IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHko
ZGVsdGFNb2RlKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKLSAgICBp
ZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFYKCkpKQot
ICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGwod2hl
ZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdy
YW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9
IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xs
YWJsZUFyZWEtPnNjcm9sbChkZWx0YVggPiAwID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBz
Y3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCi0gICAgaWYgKGZsb2F0IGFi
c29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWSgpKSkKLSAgICAgICAgZGlk
SGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsKHdoZWVsRXZlbnQuZGVs
dGFZKCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJz
b2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0
YVkpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3Jv
bGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHks
IGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVybiBkaWRIYW5kbGVXaGVlbEV2ZW50Owog
fQpAQCAtMzA3LDE4ICszMDcsMjAgQEAgc3RhdGljIGlubGluZSBib29sIGhhbmRsZVdoZWVsRXZl
bnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwgV2gKIAogICAgIFJl
bmRlckJveCYgaW5pdGlhbEVuY2xvc2luZ0JveCA9IHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKS0+ZW5j
bG9zaW5nQm94KCk7CiAgICAgaWYgKGluaXRpYWxFbmNsb3NpbmdCb3guaXNMaXN0Qm94KCkpCi0g
ICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKHN0YXRpY19jYXN0PFJlbmRl
ckxpc3RCb3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQpOworICAgICAgICBy
ZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94
Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50LmRlbHRhWCgpLCB3aGVlbEV2ZW50
LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKIAogICAgIFJlbmRlckJveCogY3Vy
cmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9zaW5nQm94OworICAgIGJvb2wgaWdub3Jl
RGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVEZWx0YVkgPSBmYWxzZTsKICAgICB3aGls
ZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIGJveExh
eWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIoKSkgewogICAgICAgICAgICAgYXV0byBw
bGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwogICAg
ICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVkOwogICAgICAgICAgICAgaWYgKHBsYXRm
b3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZvcm1F
dmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lk
dGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsK
KyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdp
dGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVggPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURl
bHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVp
Z2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hh
bmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVudChjb3BpZWRFdmVudCk7CiAgICAgICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Ny
b2xsSW5TY3JvbGxhYmxlQXJlYShib3hMYXllciwgd2hlZWxFdmVudCk7CisgICAgICAgICAgICAg
ICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoYm94TGF5
ZXIsIGlnbm9yZURlbHRhWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWCgpLCBpZ25vcmVEZWx0YVkg
PyAwIDogd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAKICAg
ICAgICAgICAgIGlmIChzY3JvbGxpbmdXYXNIYW5kbGVkKSB7CiAgICAgICAgICAgICAgICAgaWYg
KHN0b3BFbGVtZW50KQpAQCAtMzMwLDYgKzMzMiwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFu
ZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBX
aAogICAgICAgICBpZiAoc3RvcEVsZW1lbnQgJiYgKnN0b3BFbGVtZW50ICYmICpzdG9wRWxlbWVu
dCA9PSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKIAorICAgICAgICBpZiAoIWlnbm9yZURlbHRhWCAmJiBjdXJyZW50RW5jbG9zaW5nQm94
LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1
dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAgICAgICBpZiAoIWlnbm9y
ZURlbHRhWSAmJiBjdXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlv
clkoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0
YVkgPSB0cnVlOworICAgICAgICBpZiAoaWdub3JlRGVsdGFYICYmIGlnbm9yZURlbHRhWSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBjdXJyZW50RW5jbG9zaW5nQm94ID0g
Y3VycmVudEVuY2xvc2luZ0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghY3Vy
cmVudEVuY2xvc2luZ0JveCB8fCBjdXJyZW50RW5jbG9zaW5nQm94LT5pc1JlbmRlclZpZXcoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRl
eCAyYjdjOWZjYTFiMC4uOWNjYWJjZDAxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
QEAgLTM2Miw2ICszNjIsOCBAQCBmcmFtZUZsYXR0ZW5pbmc6CiBhc3luY0ZyYW1lU2Nyb2xsaW5n
RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKICAgb25DaGFuZ2U6IHNldE5lZWRzUmVsYXlvdXRB
bGxGcmFtZXMKK292ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCiAK
IHdlYlNlY3VyaXR5RW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAzYWNiMWM5YTgyNy4uMzY5ZWMyMjYx
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC0zMzksNiArMzM5LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGly
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJm
bG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0
aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93
WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkg
PT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Ny
b2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2
aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5v
dmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0eSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJpdGVkRmxhZ3Mu
dmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRlZEZsYWdzLnZl
cnRpY2FsQWxpZ24pOyB9CkBAIC04OTUsNiArODk4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9
ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVy
ZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3JvbGxC
ZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJl
aGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2
KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1faW5oZXJpdGVk
RmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQg
c2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy52
ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRW
ZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWduKFZl
cnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxpZ24s
IFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NDQsNiArMTQ0OSw5IEBAIHB1YmxpYzoKICAgICAv
LyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJm
bG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAg
IHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZp
c2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xs
QmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgc3Rh
dGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsgcmV0
dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENsZWFyIGluaXRp
YWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERpc3BsYXlUeXBl
IGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsgfQogICAgIHN0
YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKaW5kZXggNjZlNWM3YjQ3NDEuLmJlMjQxNTEyNTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApA
QCAtMjYwLDYgKzI2MCwxMiBAQCBlbnVtIGNsYXNzIE92ZXJmbG93IDogdWludDhfdCB7CiAgICAg
UGFnZWRZCiB9OwogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3Qgewor
ICAgIENvbnRhaW4sCisgICAgTm9uZSwKKyAgICBBdXRvCit9OworCiBlbnVtIGNsYXNzIFZlcnRp
Y2FsQWxpZ24gOiB1aW50OF90IHsKICAgICBCYXNlbGluZSwKICAgICBNaWRkbGUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKaW5kZXggMDgwNjY3YjA4ODguLjc4OWZhNDYyODBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwCkBAIC02MCw2ICs2MCw4IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25hcFBvcnQoU3R5
bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShTdHlsZVNj
cm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9y
WChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVo
YXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQogICAgICwgd2ls
bENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAsIG1hc2soRmls
bExheWVyVHlwZTo6TWFzaykKICAgICAsIG9iamVjdFBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0
aWFsT2JqZWN0UG9zaXRpb24oKSkKQEAgLTEzNyw2ICsxMzksOCBAQCBpbmxpbmUgU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAgICAsIHNj
cm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxC
ZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9y
WShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29u
dGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50
ZXJEaXJlY3RpdmVzID8gc3RkOjptYWtlX3VuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5j
b3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBA
IC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Ny
b2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJl
YSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVp
dmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVj
dGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRU
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCBkNDExY2IyNTg0ZC4uYzVmNWU0Y2QzNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTI4LDYgKzEyOCw5IEBAIHB1YmxpYzoKICAgICBEYXRh
UmVmPFN0eWxlU2Nyb2xsU25hcEFyZWE+IHNjcm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAgICB1
bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JYIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisg
ICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlv
cgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBT
dHJpbmcgYWx0VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IDkzNjQ1MmRlZjU1Li42M2NmZWFiNDQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCkBAIC0xMjMzLDYgKzEyMzMsMTMgQEAgUG9pbnRlckV2ZW50c0VuYWJs
ZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNhdGVnb3J5
OiBleHBlcmltZW50YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9v
bAorICBkZWZhdWx0VmFsdWU6IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNj
cm9sbCBCZWhhdmlvciIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3Jv
bGwgQmVoYXZpb3IgcHJvdG90eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBm
YWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYjczZjZjYjY4MzAuLjQ3ODcwYzAwMDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4Miw2ICsxODIsNyBAQAogI2RlZmluZSBXZWJLaXRE
aXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERpcmVjdG9yeVVwbG9h
ZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQiCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTdWJ0
bGVDcnlwdG9FbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KaW5kZXggN2UxY2ZjMWIxZTIuLmVjZTBjN2FjNTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAg
LTY1Niw2ICs2NTYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtl
eSwKIAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXROZWVk
c1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSwKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNr
Rm9yQ3JlZGVudGlhbHNLZXksCkBAIC0zMDk3LDYgKzMwOTgsMTYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAK
Ky0gKEJPT0wpb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKK30KKworLSAodm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZs
YWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgKaW5kZXggMjBiMzM0Mjk1MTAuLjE4NjE1M2RiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTU4Nyw2ICs1ODcsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2Rl
bENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4OTNmYTA4Y2NmOS4uZmMyYzAyZDBh
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5
NTQsNiArMjk1NCw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1
aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0RW5hYmxlZChbcHJlZmVyZW5j
ZXMgdmlzdWFsVmlld3BvcnRFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKKyAg
ICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0p
OwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCAxOTg4MmNkZDBmMC4uN2M4NjRi
ZGVhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIxLDYgKzIyMSw4IEBAIGlu
dGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1
CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFi
bGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbb3V0LCByZXR2YWxd
IEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJP
T0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtvdXQs
IHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQ
SUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
OTQwZDVjZjU1ZDEuLjE0NGJlMDFkMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjA0LDUgKzIwNCw2IEBACiAKICNk
ZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNlcnZl
clRpbWluZ0VuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNTliZTBjNDQzZjQuLmU1NWQxZjI3MmZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zMjYsNiArMzI2LDgg
QEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAg
ICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIGRlZmF1bHRTZXR0
aW5ncyA9IGRlZmF1bHRzOwpAQCAtMjE4NCw2ICsyMTg2LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVy
ZW5jZXM6OnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAg
ICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2Vi
S2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBT
X09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09L
OworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggM2NlNDQ4NWI4YTAuLmQ0YmU5MGY0
MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2OSw2
ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoX091
dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBhY2FkODRlZGFm
Zi4uMWVkNzlkYjk2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01Mjc4
LDYgKzUyNzgsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
SVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAg
c2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBo
ciA9IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7Cisg
ICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRP
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJp
dmF0ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAppbmRleCA4MWIyNDg3YjIzMy4uZTExMWYyZDAyYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5jcHAKQEAgLTEwOSw2ICsxMDksOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlv
bnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29s
dQogICAgICAgICAgICAganNjT3B0aW9ucyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkdQ
VSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAiZXhwZXJpbWVudGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAgICAg
ICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZh
bHVlKHZhbHVlKTsKICAgICAgICAgcGFpclN0YXJ0ID0gcGFpckVuZCArIDE7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggOGFlZGI5NDY0MTcuLjlmZGQwNTZhMGEw
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RydWN0
IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAg
ICBib29sIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAg
ICAgYm9vbCBlbmFibGVXZWJHUFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9s
bEJlaGF2aW9yIHsgZmFsc2UgfTsKICAgICBzdGQ6OnN0cmluZyBqc2NPcHRpb25zOwogCiAgICAg
VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJp
bmcmIGFic29sdXRlUGF0aCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggNWRlNjEyYzU5ZjMuLmE3MDFjZGNlMDU4IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDExLDYgKzEwMTEsNyBAQCBzdGF0aWMg
dm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpb25zKQogICAgIHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlQ29sb3JGaWx0ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91
bmRhcmllc0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5k
YXJpZXM7CiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2Vi
R1BVOworICAgIHByZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvcjsKIH0KIAogLy8gQ2FsbGVkIG9uY2Ugb24gRHVtcFJl
bmRlclRyZWUgc3RhcnR1cC4KLS0gCjIuMTkuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355887</attachid>
            <date>2018-11-28 10:21:11 -0800</date>
            <delta_ts>2018-11-28 10:32:19 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>34173</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBhZWU3OTUwNjUxODhlM2FlZWZiYjQ4ZDkxN2RlZjMwMTgzNjA2MjNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBXZWQsIDI4IE5vdiAyMDE4IDE3OjA4OjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM2ICsrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiAgICAgICAgIHwg
NDAgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluICAgICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cCAgICAgICAgfCAgNiArKysKIC4uLi9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5jcHAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5oICB8ICA0ICstCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCAgfCA0NCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmggfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgICAgICAgICAgfCAyNyArKysrKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbCAgICAgICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oICB8ICA4ICsrKysKIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaCAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwICAgICAgIHwgIDYgKysrCiAuLi4vc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbCAgICAgIHwgIDcgKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggICAgfCAgMSArCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0g
ICAgICAgICAgICAgfCAxMSArKysrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tICAgIHwgIDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaWRsIHwgIDIgKwogLi4uL3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAg
ICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAg
IHwgMTYgKysrKysrKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCAg
ICAgIHwgIDIgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgICAgICAgICAg
IHwgIDUgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgICAgICAgICAg
fCAgMiArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oICAgICAgICAgICAgfCAg
MSArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgfCAgMSAr
CiAyOCBmaWxlcyBjaGFuZ2VkLCAyMzggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAppbmRleCBmMWI1MGZiYTZkOS4uODUwYTk3OGQ3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xOTAsNiArMTkwLDgg
QEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAg
ICAgQ1NTUHJvcGVydHlPdXRsaW5lV2lkdGgsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXAs
CiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1gsCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3JYLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAgICBDU1NQcm9w
ZXJ0eU92ZXJmbG93WSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJv
cGVydHlQYWRkaW5nTGVmdCwKQEAgLTMzMDEsNiArMzMwMywxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+
IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKGNvbnN0IFJl
bmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHls
ZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAg
ICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNj
cm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZ
KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJl
dHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6
cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+
KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRl
eCBjOTVmZjY1YTgzNS4uYjk3MzQ2ZjU5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMjIwNCw2ICsyMjA0LDQyIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAg
ICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGUpCisg
ICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJl
aGF2aW9yOjpDb250YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRh
aW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigp
IGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAg
ICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnRpZXMuanNvbgppbmRleCBmZTAxMmJhNGIyMi4uM2JhYjliODdhNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzA1Myw2ICszMDUzLDQ2IEBACiAgICAgICAgICAg
ICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3Bk
ZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJz
Y3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewor
ICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVy
c2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAg
ICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3Iv
I3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwK
KyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMi
OiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwK
KyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3Rh
dHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3By
b3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAor
ICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6
IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAor
ICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0
dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJv
cGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAg
ICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsK
ICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgppbmRleCA4NmI1ZTU5MTRmNC4uMTYyMjE2NzMxY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzU3LDYgKzEzNTcsOSBAQCBzY3JvbGwtcG9z
aXRpb24KIG1hbmlwdWxhdGlvbgogI2VuZGlmCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8v
IGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCA1YWNiNDhmOTExYS4uYTE3OTA3
ZmRiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yMDcsNiAr
MjA3LDggQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1
ZSh3ZWJraXRNYXJnaW5Db2xsYXBzZVNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBnZXRDb21tb25WYWx1ZShvdmVyZmxvd1Nob3J0aGFu
ZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICBy
ZXR1cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKCkpOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAgICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRk
aW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uOgpAQCAtMTAw
NSw2ICsxMDA3LDEwIEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAg
ICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgogICAgICAgICAgICAgICAgIHNo
b3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJmbG93OwogICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6
CisgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAg
ICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3I7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6
CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCmluZGV4IDA2YzcwMmEwZGI0
Li4yMDY1ZDMwODc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckNvbnRleHQuY3BwCkBAIC03Myw2ICs3Myw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNl
ckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAg
ICAgYXR0YWNobWVudEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVu
YWJsZWQoKTsKKyAgICBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGlu
Z3MoKS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5j
ZSA9IGRvY3VtZW50LnBhZ2UoKSA/IGRvY3VtZW50LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5j
ZSgpIDogZmFsc2U7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTAyLDYgKzEwMyw3
IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0
YWNobWVudEVuYWJsZWQKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5h
YmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAorICAgICAgICAmJiBhLm92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQgPT0gYi5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkCiAgICAgICAg
ICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW4KICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lzdGVtQXBw
ZWFyYW5jZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmgKaW5kZXggZWNlY2VmNjcxNGIuLjYzY2E5ODI4ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBhdHRhY2htZW50RW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIGRl
ZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVk
IHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDQsNyArMTA1LDggQEAgc3RydWN0IENTU1BhcnNl
ckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgICAgICAg
ICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTEK
ICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAgICAgICAgICAgJiBrZXku
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgPDwgMTIKKyAgICAgICAg
ICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEz
OyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6OmludEhhc2goYml0cyk7
CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggNTJmMjhmMjcwYzYuLmJjMzllZGE4NjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cApAQCAtMjMyNiw2ICsyMzI2LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb25z
dW1lU2Nyb2xsU25hcFR5cGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAKICNlbmRpZgog
CitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWso
KS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENT
U1ZhbHVlTm9uZSAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlQ29udGFpbikKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Cit9CisKIHN0YXRpYyBS
ZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQo
cmFuZ2UsIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CkBAIC00MDE1LDYg
KzQwMjMsMTEgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5n
bGVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICBjYXNlIENTU1Byb3BlcnR5
U2Nyb2xsU25hcFR5cGU6CiAgICAgICAgIHJldHVybiBjb25zdW1lU2Nyb2xsU25hcFR5cGUobV9y
YW5nZSk7CiAjZW5kaWYKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoK
KyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFt
X2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3Jhbmdl
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlw
KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAt
NTY1OCw2ICs1NjcxLDM1IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZVNl
bGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9v
bCBpbXBvcnRhbnQpCit7CisgICAgQVNTRVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5sZW5ndGgoKSA9PSAyKTsKKyAgICBpZiAoIW1fY29udGV4
dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQ
dHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclggPSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2
aW9yKG1fcmFuZ2UpOworICAgIGlmICghb3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JZOwor
ICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgp
KQorICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gb3ZlcnNjcm9sbEJlaGF2aW9yWDsKKyAg
ICBlbHNlIHsKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IGNvbnN1bWVPdmVyc2Nyb2xs
QmVoYXZpb3IobV9yYW5nZSk7CisgICAgICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsK
KyAgICAgICAgaWYgKCFtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
LCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclgsIGlt
cG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZ
LCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclksIGlt
cG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6
OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQog
ewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKQEAgLTU2OTcsNiArNTczOSw4IEBAIGJvb2wgQ1NT
UHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJv
b2wgaW1wb3J0YW50KQogICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJmbG93WSwg
Q1NTUHJvcGVydHlPdmVyZmxvdywgKm92ZXJmbG93WVZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvcjoKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQo
aW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udDogewogICAgICAgICBjb25zdCBD
U1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBtX3JhbmdlLnBlZWsoKTsKICAgICAgICAgaWYgKHRva2Vu
LmlkKCkgPj0gQ1NTVmFsdWVDYXB0aW9uICYmIHRva2VuLmlkKCkgPD0gQ1NTVmFsdWVTdGF0dXNC
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKaW5k
ZXggMWRjMDVlZjg4ZGEuLjNmYzE2NjUzNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC0xMDcsNiArMTA3LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIGNvbnN1bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wg
Y29uc3VtZVBlcnNwZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKIAorICAgIGJvb2wgY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCk7CisKIHByaXZh
dGU6CiAgICAgLy8gSW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgbV9yYW5nZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNmUwMWJlZWY0OS4uNTgyMGNjMmMz
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI4MCwxNSArMjgwLDE1
IEBAIHN0YXRpYyBpbmxpbmUgU2Nyb2xsR3JhbnVsYXJpdHkgd2hlZWxHcmFudWxhcml0eVRvU2Ny
b2xsR3JhbnVsYXJpdHkodW5zaWduZWQgZGVsCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFy
ZWEsIFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdGF0aWMgaW5saW5lIGJvb2wgZGlkU2Nyb2xs
SW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEsIGRvdWJsZSBk
ZWx0YVgsIGRvdWJsZSBkZWx0YVksIHVuc2lnbmVkIGRlbHRhTW9kZSkKIHsKLSAgICBTY3JvbGxH
cmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdy
YW51bGFyaXR5KHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOworICAgIFNjcm9sbEdyYW51bGFyaXR5
IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHko
ZGVsdGFNb2RlKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKLSAgICBp
ZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFYKCkpKQot
ICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGwod2hl
ZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdy
YW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9
IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xs
YWJsZUFyZWEtPnNjcm9sbChkZWx0YVggPiAwID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBz
Y3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCi0gICAgaWYgKGZsb2F0IGFi
c29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWSgpKSkKLSAgICAgICAgZGlk
SGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsKHdoZWVsRXZlbnQuZGVs
dGFZKCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJz
b2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0
YVkpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3Jv
bGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHks
IGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVybiBkaWRIYW5kbGVXaGVlbEV2ZW50Owog
fQpAQCAtMzA3LDE4ICszMDcsMjAgQEAgc3RhdGljIGlubGluZSBib29sIGhhbmRsZVdoZWVsRXZl
bnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwgV2gKIAogICAgIFJl
bmRlckJveCYgaW5pdGlhbEVuY2xvc2luZ0JveCA9IHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKS0+ZW5j
bG9zaW5nQm94KCk7CiAgICAgaWYgKGluaXRpYWxFbmNsb3NpbmdCb3guaXNMaXN0Qm94KCkpCi0g
ICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKHN0YXRpY19jYXN0PFJlbmRl
ckxpc3RCb3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQpOworICAgICAgICBy
ZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94
Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50LmRlbHRhWCgpLCB3aGVlbEV2ZW50
LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKIAogICAgIFJlbmRlckJveCogY3Vy
cmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9zaW5nQm94OworICAgIGJvb2wgaWdub3Jl
RGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVEZWx0YVkgPSBmYWxzZTsKICAgICB3aGls
ZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIGJveExh
eWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIoKSkgewogICAgICAgICAgICAgYXV0byBw
bGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwogICAg
ICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVkOwogICAgICAgICAgICAgaWYgKHBsYXRm
b3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZvcm1F
dmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lk
dGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsK
KyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdp
dGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVggPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURl
bHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVp
Z2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hh
bmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVudChjb3BpZWRFdmVudCk7CiAgICAgICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Ny
b2xsSW5TY3JvbGxhYmxlQXJlYShib3hMYXllciwgd2hlZWxFdmVudCk7CisgICAgICAgICAgICAg
ICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoYm94TGF5
ZXIsIGlnbm9yZURlbHRhWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWCgpLCBpZ25vcmVEZWx0YVkg
PyAwIDogd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAKICAg
ICAgICAgICAgIGlmIChzY3JvbGxpbmdXYXNIYW5kbGVkKSB7CiAgICAgICAgICAgICAgICAgaWYg
KHN0b3BFbGVtZW50KQpAQCAtMzMwLDYgKzMzMiwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFu
ZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBX
aAogICAgICAgICBpZiAoc3RvcEVsZW1lbnQgJiYgKnN0b3BFbGVtZW50ICYmICpzdG9wRWxlbWVu
dCA9PSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKIAorICAgICAgICBpZiAoIWlnbm9yZURlbHRhWCAmJiBjdXJyZW50RW5jbG9zaW5nQm94
LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1
dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAgICAgICBpZiAoIWlnbm9y
ZURlbHRhWSAmJiBjdXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlv
clkoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0
YVkgPSB0cnVlOworICAgICAgICBpZiAoaWdub3JlRGVsdGFYICYmIGlnbm9yZURlbHRhWSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBjdXJyZW50RW5jbG9zaW5nQm94ID0g
Y3VycmVudEVuY2xvc2luZ0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghY3Vy
cmVudEVuY2xvc2luZ0JveCB8fCBjdXJyZW50RW5jbG9zaW5nQm94LT5pc1JlbmRlclZpZXcoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRl
eCAyYjdjOWZjYTFiMC4uOWNjYWJjZDAxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
QEAgLTM2Miw2ICszNjIsOCBAQCBmcmFtZUZsYXR0ZW5pbmc6CiBhc3luY0ZyYW1lU2Nyb2xsaW5n
RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKICAgb25DaGFuZ2U6IHNldE5lZWRzUmVsYXlvdXRB
bGxGcmFtZXMKK292ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCiAK
IHdlYlNlY3VyaXR5RW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAzYWNiMWM5YTgyNy4uMzY5ZWMyMjYx
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC0zMzksNiArMzM5LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGly
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJm
bG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0
aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93
WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkg
PT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Ny
b2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2
aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5v
dmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0eSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJpdGVkRmxhZ3Mu
dmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRlZEZsYWdzLnZl
cnRpY2FsQWxpZ24pOyB9CkBAIC04OTUsNiArODk4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9
ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVy
ZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3JvbGxC
ZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJl
aGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2
KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1faW5oZXJpdGVk
RmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQg
c2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy52
ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRW
ZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWduKFZl
cnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxpZ24s
IFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NDQsNiArMTQ0OSw5IEBAIHB1YmxpYzoKICAgICAv
LyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJm
bG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAg
IHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZp
c2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xs
QmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgc3Rh
dGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsgcmV0
dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENsZWFyIGluaXRp
YWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERpc3BsYXlUeXBl
IGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsgfQogICAgIHN0
YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKaW5kZXggNjZlNWM3YjQ3NDEuLmJlMjQxNTEyNTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApA
QCAtMjYwLDYgKzI2MCwxMiBAQCBlbnVtIGNsYXNzIE92ZXJmbG93IDogdWludDhfdCB7CiAgICAg
UGFnZWRZCiB9OwogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3Qgewor
ICAgIENvbnRhaW4sCisgICAgTm9uZSwKKyAgICBBdXRvCit9OworCiBlbnVtIGNsYXNzIFZlcnRp
Y2FsQWxpZ24gOiB1aW50OF90IHsKICAgICBCYXNlbGluZSwKICAgICBNaWRkbGUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKaW5kZXggMDgwNjY3YjA4ODguLjc4OWZhNDYyODBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwCkBAIC02MCw2ICs2MCw4IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25hcFBvcnQoU3R5
bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShTdHlsZVNj
cm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9y
WChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVo
YXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQogICAgICwgd2ls
bENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAsIG1hc2soRmls
bExheWVyVHlwZTo6TWFzaykKICAgICAsIG9iamVjdFBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0
aWFsT2JqZWN0UG9zaXRpb24oKSkKQEAgLTEzNyw2ICsxMzksOCBAQCBpbmxpbmUgU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAgICAsIHNj
cm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxC
ZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9y
WShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29u
dGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50
ZXJEaXJlY3RpdmVzID8gc3RkOjptYWtlX3VuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5j
b3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBA
IC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Ny
b2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJl
YSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVp
dmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVj
dGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRU
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCBkNDExY2IyNTg0ZC4uYzVmNWU0Y2QzNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTI4LDYgKzEyOCw5IEBAIHB1YmxpYzoKICAgICBEYXRh
UmVmPFN0eWxlU2Nyb2xsU25hcEFyZWE+IHNjcm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAgICB1
bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JYIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisg
ICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlv
cgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBT
dHJpbmcgYWx0VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IDkzNjQ1MmRlZjU1Li42M2NmZWFiNDQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCkBAIC0xMjMzLDYgKzEyMzMsMTMgQEAgUG9pbnRlckV2ZW50c0VuYWJs
ZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNhdGVnb3J5
OiBleHBlcmltZW50YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9v
bAorICBkZWZhdWx0VmFsdWU6IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNj
cm9sbCBCZWhhdmlvciIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3Jv
bGwgQmVoYXZpb3IgcHJvdG90eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBm
YWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYjczZjZjYjY4MzAuLjQ3ODcwYzAwMDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4Miw2ICsxODIsNyBAQAogI2RlZmluZSBXZWJLaXRE
aXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERpcmVjdG9yeVVwbG9h
ZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQiCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTdWJ0
bGVDcnlwdG9FbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KaW5kZXggN2UxY2ZjMWIxZTIuLmVjZTBjN2FjNTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAg
LTY1Niw2ICs2NTYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtl
eSwKIAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXROZWVk
c1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSwKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNr
Rm9yQ3JlZGVudGlhbHNLZXksCkBAIC0zMDk3LDYgKzMwOTgsMTYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAK
Ky0gKEJPT0wpb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKK30KKworLSAodm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZs
YWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgKaW5kZXggMjBiMzM0Mjk1MTAuLjE4NjE1M2RiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTU4Nyw2ICs1ODcsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2Rl
bENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4OTNmYTA4Y2NmOS4uZmMyYzAyZDBh
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5
NTQsNiArMjk1NCw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1
aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0RW5hYmxlZChbcHJlZmVyZW5j
ZXMgdmlzdWFsVmlld3BvcnRFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKKyAg
ICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0p
OwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCAxOTg4MmNkZDBmMC4uN2M4NjRi
ZGVhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIxLDYgKzIyMSw4IEBAIGlu
dGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1
CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFi
bGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbb3V0LCByZXR2YWxd
IEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJP
T0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtvdXQs
IHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQ
SUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
OTQwZDVjZjU1ZDEuLjE0NGJlMDFkMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjA0LDUgKzIwNCw2IEBACiAKICNk
ZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNlcnZl
clRpbWluZ0VuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNTliZTBjNDQzZjQuLmU1NWQxZjI3MmZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zMjYsNiArMzI2LDgg
QEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAg
ICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIGRlZmF1bHRTZXR0
aW5ncyA9IGRlZmF1bHRzOwpAQCAtMjE4NCw2ICsyMTg2LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVy
ZW5jZXM6OnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAg
ICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2Vi
S2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBT
X09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09L
OworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggM2NlNDQ4NWI4YTAuLmQ0YmU5MGY0
MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2OSw2
ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoX091
dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBhY2FkODRlZGFm
Zi4uMWVkNzlkYjk2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01Mjc4
LDYgKzUyNzgsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
SVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAg
c2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBo
ciA9IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7Cisg
ICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRP
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJp
dmF0ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAppbmRleCA4MWIyNDg3YjIzMy4uZTExMWYyZDAyYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5jcHAKQEAgLTEwOSw2ICsxMDksOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlv
bnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29s
dQogICAgICAgICAgICAganNjT3B0aW9ucyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkdQ
VSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAiZXhwZXJpbWVudGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAgICAg
ICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZh
bHVlKHZhbHVlKTsKICAgICAgICAgcGFpclN0YXJ0ID0gcGFpckVuZCArIDE7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggOGFlZGI5NDY0MTcuLjlmZGQwNTZhMGEw
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RydWN0
IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAg
ICBib29sIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAg
ICAgYm9vbCBlbmFibGVXZWJHUFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9s
bEJlaGF2aW9yIHsgZmFsc2UgfTsKICAgICBzdGQ6OnN0cmluZyBqc2NPcHRpb25zOwogCiAgICAg
VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJp
bmcmIGFic29sdXRlUGF0aCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggNWRlNjEyYzU5ZjMuLmE3MDFjZGNlMDU4IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDExLDYgKzEwMTEsNyBAQCBzdGF0aWMg
dm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpb25zKQogICAgIHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlQ29sb3JGaWx0ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91
bmRhcmllc0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5k
YXJpZXM7CiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2Vi
R1BVOworICAgIHByZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvcjsKIH0KIAogLy8gQ2FsbGVkIG9uY2Ugb24gRHVtcFJl
bmRlclRyZWUgc3RhcnR1cC4KLS0gCjIuMTkuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355888</attachid>
            <date>2018-11-28 10:32:19 -0800</date>
            <delta_ts>2018-12-03 14:50:11 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>34385</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBiMTRlZWQyODcxZDk0YTcxZmFmZmQyZGNiOTU5ZGRhNDAzYjI5ZjM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBXZWQsIDI4IE5vdiAyMDE4IDE3OjA4OjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM2ICsrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiAgICAgICAgIHwg
NDAgKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluICAgICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cCAgICAgICAgfCAgNiArKysKIC4uLi9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5jcHAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5oICB8ICA0ICstCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCAgfCA0NCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmggfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgICAgICAgICAgfCAzMSArKysrKysrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwgICAgICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCAgfCAgOCArKysrCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmggICAgfCAgNiArKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcCAgICAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaCAgICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwgICAgICB8ICA3ICsrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oICAgIHwgIDEgKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
ICAgICAgICAgICAgIHwgMTEgKysrKysKIC4uLi9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaCAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSAgICB8ICAxICsKIC4uLi93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmlkbCB8ICAyICsKIC4uLi93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggICAgICAg
ICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCAg
ICB8IDE2ICsrKysrKysKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgg
ICAgICB8ICAyICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwICAgICAgICAg
ICB8ICA1ICsrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwICAgICAgICAg
IHwgIDIgKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCAgICAgICAgICAgIHwg
IDEgKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tICAgIHwgIDEg
KwogMjggZmlsZXMgY2hhbmdlZCwgMjQyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggZjFiNTBmYmE2ZDkuLjg1MGE5NzhkNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTkwLDYgKzE5MCw4
IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewog
ICAgIENTU1Byb3BlcnR5T3V0bGluZVdpZHRoLAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFw
LAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dYLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJl
aGF2aW9yWCwKKyAgICBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksCiAgICAgQ1NTUHJv
cGVydHlPdmVyZmxvd1ksCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tLAogICAgIENTU1By
b3BlcnR5UGFkZGluZ0xlZnQsCkBAIC0zMzAxLDYgKzMzMDMsMTIgQEAgUmVmUHRyPENTU1ZhbHVl
PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5aW5TdHlsZShjb25zdCBS
ZW5kZXJTdHkKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5
bGUub3ZlcmZsb3dYKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgogICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1ko
KSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0ZDo6bWF4KHN0eWxlLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSwgc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWSgpKSk7CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9y
WSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBy
ZXR1cm4gem9vbUFkanVzdGVkUGFkZGluZ09yTWFyZ2luUGl4ZWxWYWx1ZTwmUmVuZGVyU3R5bGU6
OnBhZGRpbmdUb3AsICZSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQYWRkaW5nVG9w
PihzdHlsZSwgcmVuZGVyZXIpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5k
ZXggYzk1ZmY2NWE4MzUuLmI5NzM0NmY1OTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTIyMDQsNiArMjIwNCw0MiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAog
ICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBlKQor
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIE92ZXJzY3JvbGxC
ZWhhdmlvcjo6Q29udGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250
YWluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3Io
KSBjb25zdAoreworICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1cm4g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAg
ICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFsdWVB
dXRvOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KaW5kZXggZmUwMTJiYTRiMjIuLjNiYWI5Yjg3YTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTMwNTMsNiArMzA1Myw0NiBAQAogICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNwcm9w
ZGVmLW92ZXJmbG93LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJvdmVy
c2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsK
KyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAgICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVo
YXZpb3IteSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
InN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50Igor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9y
LyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIs
CisgICAgICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInN0
YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNw
cm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwK
KyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMi
OiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwK
KyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3Rh
dHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3By
b3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAog
ICAgICAgICAicGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CiAgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KaW5kZXggODZiNWU1OTE0ZjQuLjE2MjIxNjczMWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM1Nyw2ICsxMzU3LDkgQEAgc2Nyb2xsLXBv
c2l0aW9uCiBtYW5pcHVsYXRpb24KICNlbmRpZgogCisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisv
LyBjb250YWluCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggNWFjYjQ4ZjkxMWEuLmExNzkw
N2ZkYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjA3LDYg
KzIwNyw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFs
dWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcmZsb3dTaG9ydGhh
bmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAg
cmV0dXJuIGdldENvbW1vblZhbHVlKG92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZCgpKTsKICAg
ICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZzoKICAgICAgICAgcmV0dXJuIGdldDRWYWx1ZXMocGFk
ZGluZ1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKQEAgLTEw
MDUsNiArMTAwNywxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAog
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAgICBz
aG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAg
ICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJl
aGF2aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0
OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCAwNmM3MDJhMGRi
NC4uMjA2NWQzMDg3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXJDb250ZXh0LmNwcApAQCAtNzMsNiArNzMsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJz
ZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzaGVldEJhcwog
ICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKTsKICNlbmRpZgogICAgIGRlZmVycmVk
Q1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJF
bmFibGVkKCk7CisgICAgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFu
Y2UgPSBkb2N1bWVudC5wYWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFu
Y2UoKSA6IGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMiw2ICsxMDMs
NyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYSwgY29uc3QgQ1NT
UGFyc2VyQ29udGV4dCYgYikKICAgICAgICAgJiYgYS5hdHRhY2htZW50RW5hYmxlZCA9PSBiLmF0
dGFjaG1lbnRFbmFibGVkCiAjZW5kaWYKICAgICAgICAgJiYgYS5kZWZlcnJlZENTU1BhcnNlckVu
YWJsZWQgPT0gYi5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQKKyAgICAgICAgJiYgYS5vdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkID09IGIub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAg
ICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luCiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3RlbUFw
cGVhcmFuY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5oCmluZGV4IGVjZWNlZjY3MTRiLi42M2NhOTgyOGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgYm9vbCBk
ZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgb3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRl
ZCB0byBzdXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4geyBmYWxzZSB9OwpAQCAtMTA0LDcgKzEwNSw4IEBAIHN0cnVjdCBDU1NQYXJz
ZXJDb250ZXh0SGFzaCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAg
ICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEx
CiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5
Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8IDEyCisgICAgICAg
ICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAx
MzsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMp
OwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDUyZjI4ZjI3MGM2Li5iYzM5ZWRhODYz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAKQEAgLTIzMjYsNiArMjMyNiwxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlTGlzdD4gY29u
c3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogCiAjZW5kaWYK
IAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvIHZhbHVlSUQgPSByYW5nZS5wZWVr
KCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAhPSBDU1NWYWx1ZUF1dG8gJiYgdmFsdWVJRCAhPSBD
U1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZUNvbnRhaW4pCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOworfQorCiBzdGF0aWMg
UmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVyKENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiB7CiAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50
KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOwpAQCAtNDAxNSw2
ICs0MDIzLDExIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2lu
Z2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKG1f
cmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgIGlmICgh
bV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5n
ZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1lQ2xp
cChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAg
LTU2NTgsNiArNTY3MSwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lUGxhY2VT
ZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJv
b2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7CisgICAgaWYgKCFtX2NvbnRl
eHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVm
UHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29uc3VtZU92ZXJzY3JvbGxCZWhh
dmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhhdmlvclgpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWTsK
KyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgaWYgKG1fcmFuZ2UuYXRFbmQo
KSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJzY3JvbGxCZWhhdmlvclg7Cisg
ICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7
CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9y
WCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVoYXZpb3JYLCBp
bXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9y
WSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVoYXZpb3JZLCBp
bXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1Byb3BlcnR5UGFyc2Vy
OjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkK
IHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01Njk3LDYgKzU3MzksOCBAQCBib29sIENT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBi
b29sIGltcG9ydGFudCkKICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyZmxvd1ks
IENTU1Byb3BlcnR5T3ZlcmZsb3csICpvdmVyZmxvd1lWYWx1ZSwgaW1wb3J0YW50KTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5k
KGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6IHsKICAgICAgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7CiAgICAgICAgIGlmICh0b2tl
bi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgpIDw9IENTU1ZhbHVlU3RhdHVz
QmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCmlu
ZGV4IDFkYzA1ZWY4OGRhLi4zZmMxNjY1MzU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApAQCAtMTA3LDYgKzEwNyw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBjb25zdW1lVHJhbnNmb3JtT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29s
IGNvbnN1bWVQZXJzcGVjdGl2ZU9yaWdpbihib29sIGltcG9ydGFudCk7CiAKKyAgICBib29sIGNv
bnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworCiBwcml2
YXRlOgogICAgIC8vIElucHV0czoKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIG1fcmFuZ2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZDZlMDFiZWVmNDkuLjZiM2VkMjcz
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yODAsMTUgKzI4MCwx
NSBAQCBzdGF0aWMgaW5saW5lIFNjcm9sbEdyYW51bGFyaXR5IHdoZWVsR3JhbnVsYXJpdHlUb1Nj
cm9sbEdyYW51bGFyaXR5KHVuc2lnbmVkIGRlbAogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVB
cmVhLCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorc3RhdGljIGlubGluZSBib29sIGRpZFNjcm9s
bEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBkb3VibGUg
ZGVsdGFYLCBkb3VibGUgZGVsdGFZLCB1bnNpZ25lZCBkZWx0YU1vZGUpCiB7Ci0gICAgU2Nyb2xs
R3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxH
cmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKKyAgICBTY3JvbGxHcmFudWxhcml0
eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5
KGRlbHRhTW9kZSk7CiAgICAgYm9vbCBkaWRIYW5kbGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAg
aWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkK
LSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsKHdo
ZWVsRXZlbnQuZGVsdGFYKCkgPiAwID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBzY3JvbGxH
cmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEg
PSBzdGQ6OmFicyhkZWx0YVgpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9s
bGFibGVBcmVhLT5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwg
c2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAgIGlmIChmbG9hdCBh
YnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkpCi0gICAgICAgIGRp
ZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbCh3aGVlbEV2ZW50LmRl
bHRhWSgpID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFi
c29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVs
dGFZKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Ny
b2xsKGRlbHRhWSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNjcm9sbEdyYW51bGFyaXR5
LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVudDsK
IH0KQEAgLTMwNywxOCArMzA3LDIwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYW5kbGVXaGVlbEV2
ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIFdoCiAKICAgICBS
ZW5kZXJCb3gmIGluaXRpYWxFbmNsb3NpbmdCb3ggPSBzdGFydE5vZGUtPnJlbmRlcmVyKCktPmVu
Y2xvc2luZ0JveCgpOwogICAgIGlmIChpbml0aWFsRW5jbG9zaW5nQm94LmlzTGlzdEJveCgpKQot
ICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2FzdDxSZW5k
ZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50KTsKKyAgICAgICAg
cmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoc3RhdGljX2Nhc3Q8UmVuZGVyTGlzdEJv
eCo+KCZpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVu
dC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAKICAgICBSZW5kZXJCb3gqIGN1
cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0JveDsKKyAgICBib29sIGlnbm9y
ZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZID0gZmFsc2U7CiAgICAgd2hp
bGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBib3hM
YXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1dG8g
cGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKICAg
ICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0
Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3Jt
RXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndp
ZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7
CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlX
aXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1E
ZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhl
aWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNI
YW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwogICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoYm94TGF5ZXIsIHdoZWVsRXZlbnQpOworICAgICAgICAgICAg
ICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGJveExh
eWVyLCBpZ25vcmVEZWx0YVggPyAwIDogd2hlZWxFdmVudC5kZWx0YVgoKSwgaWdub3JlRGVsdGFZ
ID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFZKCksIHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOwogCiAg
ICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkgewogICAgICAgICAgICAgICAgIGlm
IChzdG9wRWxlbWVudCkKQEAgLTMzMCw2ICszMzIsMTcgQEAgc3RhdGljIGlubGluZSBib29sIGhh
bmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwg
V2gKICAgICAgICAgaWYgKHN0b3BFbGVtZW50ICYmICpzdG9wRWxlbWVudCAmJiAqc3RvcEVsZW1l
bnQgPT0gY3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAKKyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2luZ0Jv
eC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpB
dXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFpZ25v
cmVEZWx0YVkgJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZp
b3JZKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVs
dGFZID0gdHJ1ZTsKKyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAmJiBpZ25vcmVEZWx0YVkpIHsK
KyAgICAgICAgICAgIC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50IHdhcyBoYW5kbGVkIHNvIHRo
YXQgaXQgaXMgbm90IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9yIGZyYW1lcy4KKyAgICAgICAg
ICAgIGlmIChzdG9wRWxlbWVudCkKKyAgICAgICAgICAgICAgICAqc3RvcEVsZW1lbnQgPSBjdXJy
ZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQorCiAgICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSBjdXJyZW50RW5jbG9zaW5n
Qm94LT5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFjdXJyZW50RW5jbG9zaW5nQm94
IHx8IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDJiN2M5ZmNhMWIwLi45
Y2NhYmNkMDFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMzYyLDYgKzM2Miw4
IEBAIGZyYW1lRmxhdHRlbmluZzoKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkOgogICBpbml0
aWFsOiBmYWxzZQogICBvbkNoYW5nZTogc2V0TmVlZHNSZWxheW91dEFsbEZyYW1lcworb3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFi
bGVkOgogICBpbml0aWFsOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IDNhY2IxYzlhODI3Li4zNjllYzIyNjEwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTMzOSw2ICszMzksOSBA
QCBwdWJsaWM6CiAgICAgT3ZlcmZsb3cgb3ZlcmZsb3dJbmxpbmVEaXJlY3Rpb24oKSBjb25zdCB7
IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dYKCkgOiBvdmVyZmxv
d1koKTsgfQogICAgIE92ZXJmbG93IG92ZXJmbG93QmxvY2tEaXJlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dZKCkgOiBvdmVyZmxvd1go
KTsgfQogICAgIGJvb2wgaXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdCB7IHJldHVybiBvdmVyZmxv
d1goKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSB8fCBvdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6Vmlz
aWJsZTsgfQorCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclgoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbklu
aGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclgpOyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2
aW9yIG92ZXJzY3JvbGxCZWhhdmlvclkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVy
c2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlv
clkpOyB9CiAgICAgCiAgICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8VmlzaWJpbGl0eT4obV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5KTsgfQog
ICAgIFZlcnRpY2FsQWxpZ24gdmVydGljYWxBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFZlcnRpY2FsQWxpZ24+KG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbik7IH0K
QEAgLTg5NSw2ICs4OTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE92ZXJmbG93WChPdmVy
ZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dYID0gIHN0YXRpY19jYXN0PHVu
c2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0T3ZlcmZsb3dZKE92ZXJmbG93IHYpIHsgbV9ub25J
bmhlcml0ZWRGbGFncy5vdmVyZmxvd1kgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KKyAg
ICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclgoT3ZlcnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VU
X1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JYLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4odikpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JZKE92
ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3Zl
cnNjcm9sbEJlaGF2aW9yWSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQogICAgIHZvaWQg
c2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5IHYpIHsgbV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWdu
KFZlcnRpY2FsQWxpZ24gdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24gPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5n
dGgoTGVuZ3RoJiYgbGVuZ3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbjo6TGVu
Z3RoKTsgU0VUX1ZBUihtX2JveERhdGEsIG1fdmVydGljYWxBbGlnbiwgV1RGTW92ZShsZW5ndGgp
KTsgfQpAQCAtMTQ0NCw2ICsxNDQ5LDkgQEAgcHVibGljOgogICAgIC8vIEluaXRpYWwgdmFsdWVz
IGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJm
bG93WCgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CiAgICAgc3RhdGljIE92ZXJmbG93
IGluaXRpYWxPdmVyZmxvd1koKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQorICAgIHN0
YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSB7IHJl
dHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJl
aGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpBdXRvOyB9CisKICAgICBzdGF0aWMgQ2xlYXIgaW5pdGlhbENsZWFyKCkgeyByZXR1
cm4gQ2xlYXI6Ok5vbmU7IH0KICAgICBzdGF0aWMgRGlzcGxheVR5cGUgaW5pdGlhbERpc3BsYXko
KSB7IHJldHVybiBEaXNwbGF5VHlwZTo6SW5saW5lOyB9CiAgICAgc3RhdGljIEVVbmljb2RlQmlk
aSBpbml0aWFsVW5pY29kZUJpZGkoKSB7IHJldHVybiBVQk5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRl
eCA2NmU1YzdiNDc0MS4uYmUyNDE1MTI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0yNjAsNiArMjYwLDEy
IEBAIGVudW0gY2xhc3MgT3ZlcmZsb3cgOiB1aW50OF90IHsKICAgICBQYWdlZFkKIH07CiAKK2Vu
dW0gY2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQ29udGFpbiwKKyAg
ICBOb25lLAorICAgIEF1dG8KK307CisKIGVudW0gY2xhc3MgVmVydGljYWxBbGlnbiA6IHVpbnQ4
X3QgewogICAgIEJhc2VsaW5lLAogICAgIE1pZGRsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApp
bmRleCAwODA2NjdiMDg4OC4uNzg5ZmE0NjI4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAK
QEAgLTYwLDYgKzYwLDggQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YSgpCiAgICAgLCBzY3JvbGxTbmFwUG9ydChTdHlsZVNjcm9sbFNuYXBQb3J0
OjpjcmVhdGUoKSkKICAgICAsIHNjcm9sbFNuYXBBcmVhKFN0eWxlU2Nyb2xsU25hcEFyZWE6OmNy
ZWF0ZSgpKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSkpCisgICAg
LCBvdmVyc2Nyb2xsQmVoYXZpb3JZKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6
aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclkoKSkpCiAgICAgLCB3aWxsQ2hhbmdlKFJlbmRlclN0
eWxlOjppbml0aWFsV2lsbENoYW5nZSgpKQogICAgICwgbWFzayhGaWxsTGF5ZXJUeXBlOjpNYXNr
KQogICAgICwgb2JqZWN0UG9zaXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxPYmplY3RQb3NpdGlv
bigpKQpAQCAtMTM3LDYgKzEzOSw4IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBz
Y3JvbGxTbmFwUG9ydChvLnNjcm9sbFNuYXBQb3J0KQogICAgICwgc2Nyb2xsU25hcEFyZWEoby5z
Y3JvbGxTbmFwQXJlYSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChvLm92ZXJz
Y3JvbGxCZWhhdmlvclgpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKG8ub3ZlcnNjcm9sbEJl
aGF2aW9yWSkKICAgICAsIGNvbnRlbnQoby5jb250ZW50ID8gby5jb250ZW50LT5jbG9uZSgpIDog
bnVsbHB0cikKICAgICAsIGNvdW50ZXJEaXJlY3RpdmVzKG8uY291bnRlckRpcmVjdGl2ZXMgPyBz
dGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJEaXJlY3RpdmVNYXA+KCpvLmNvdW50ZXJEaXJlY3RpdmVz
KSA6IG51bGxwdHIpCiAgICAgLCBhbHRUZXh0KG8uYWx0VGV4dCkKQEAgLTIzOSw2ICsyNDMsOCBA
QCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBzY3JvbGxTbmFwUG9ydCA9PSBv
LnNjcm9sbFNuYXBQb3J0CiAgICAgICAgICYmIHNjcm9sbFNuYXBBcmVhID09IG8uc2Nyb2xsU25h
cEFyZWEKICNlbmRpZgorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JYID09IG8ub3ZlcnNj
cm9sbEJlaGF2aW9yWAorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JZID09IG8ub3ZlcnNj
cm9sbEJlaGF2aW9yWQogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAg
ICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShjb3VudGVyRGlyZWN0aXZlcywgby5jb3VudGVy
RGlyZWN0aXZlcykKICAgICAgICAgJiYgYWx0VGV4dCA9PSBvLmFsdFRleHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCmluZGV4IGQ0MTFjYjI1ODRkLi5jNWY1ZTRjZDM2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCkBAIC0xMjgsNiArMTI4LDkgQEAgcHVibGljOgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxT
bmFwQXJlYT4gc2Nyb2xsU25hcEFyZWE7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3Jv
bGxCZWhhdmlvclggOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVy
c2Nyb2xsQmVoYXZpb3JZIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q29udGVudERhdGE+IGNvbnRlbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50
ZXJEaXJlY3RpdmVNYXA+IGNvdW50ZXJEaXJlY3RpdmVzOwogICAgIFN0cmluZyBhbHRUZXh0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggOTM2NDUyZGVmNTUu
LjYzY2ZlYWI0NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
QEAgLTEyMzMsNiArMTIzMywxMyBAQCBQb2ludGVyRXZlbnRzRW5hYmxlZDoKICAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAog
CitPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1
ZTogdHJ1ZQorICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgor
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90
b3R5cGUiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCBiNzNmNmNiNjgzMC4uNDc4NzBjMDAwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaApAQCAtMTgyLDYgKzE4Miw3IEBACiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0VmlzdWFsVmlld3BvcnRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3Vh
bFZpZXdwb3J0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUg
V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0
bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQppbmRleCA3ZTFjZmMxYjFlMi4uZWNlMGM3YWM1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNjU2LDYgKzY1Niw3IEBA
IHB1YmxpYzoKICNlbmRpZgogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBX
ZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogCisgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktpdE5lZWRzU3RvcmFnZUFjY2Vzc0Zy
b21GaWxlVVJMc1F1aXJrS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9d
LCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFsc0tl
eSwKQEAgLTMwOTcsNiArMzA5OCwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9y
SUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRWaXN1
YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2
b2lkKXNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxm
IF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKUNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCAyMGIz
MzQyOTUxMC4uMTg2MTUzZGJjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNTg3LDYgKzU4Nyw3IEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFs
Tm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZp
c3VhbFZpZXdwb3J0RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFz
eW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5pbWF0ZWRJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IDg5M2ZhMDhjY2Y5Li5mYzJjMDJkMGE2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjk1NCw2ICsyOTU0LDcgQEAg
c3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogCiAgICAgc2V0
dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRFbmFibGVkKFtwcmVmZXJlbmNlcyB2aXN1YWxWaWV3cG9y
dEVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3By
ZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtw
cmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Mu
c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2Vz
IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJp
dmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaWRsCmluZGV4IDE5ODgyY2RkMGYwLi43Yzg2NGJkZWE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yMjEsNiArMjIxLDggQEAgaW50ZXJmYWNlIElXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU2IDogSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNl
dEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNV
TFQgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhS
RVNVTFQgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAg
ICBIUkVTVUxUIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7
CisgICAgSFJFU1VMVCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtpbl0gQk9PTCBlbmFi
bGVkKTsKICAgICBIUkVTVUxUIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW291dCwgcmV0
dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
KFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxl
ZChbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA5NDBkNWNmNTVkMS4uMTQ0
YmUwMWQxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCkBAIC0yMDQsNSArMjA0LDYgQEAKIAogI2RlZmluZSBXZWJLaXRTZXJ2
ZXJUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIK
IAorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSAi
V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNw
cAppbmRleCA1OWJlMGM0NDNmNC4uZTU1ZDFmMjcyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMyNiw2ICszMjYsOCBAQCB2b2lkIFdlYlByZWZl
cmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVm
ZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGRlZmF1bHRzLCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5j
ZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZh
dWx0cywgQ0ZTVFIoV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VL
ZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgZGVmYXVsdFNldHRpbmdzID0gZGVmYXVsdHM7
CkBAIC0yMTg0LDYgKzIxODYsMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0VmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAor
SFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBC
T09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9J
TlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNV
TFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCBlbmFi
bGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
UHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQg
V2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCog
ZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaAppbmRleCAzY2U0NDg1YjhhMC4uZDRiZTkwZjQyZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjY5LDYgKzI2OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SW5zcGVjdG9yQWRk
aXRpb25zRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wp
OworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBvdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0
XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChfT3V0XyBCT09MKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGFjYWQ4NGVkYWZmLi4xZWQ3OWRiOTYyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUyNzgsNiArNTI3OCwxMSBAQCBI
UkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9u
KiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRWaXN1
YWxWaWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRl
LT5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhy
KSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAg
ICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDgxYjI0
ODdiMjMzLi5lMTExZjJkMDJjOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApA
QCAtMTA5LDYgKzEwOSw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBq
c2NPcHRpb25zID0gdmFsdWU7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFs
OldlYkdQVUVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlV2ViR1BVID0gcGFyc2VCb29sZWFu
VGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmlt
ZW50YWw6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVPdmVy
c2Nyb2xsQmVoYXZpb3IgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBwYWlyU3RhcnQgPSBwYWlyRW5kICsgMTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAppbmRleCA4YWVkYjk0NjQxNy4uOWZkZDA1NmEwYTAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaApAQCAtNDUsNiArNDUsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewog
ICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlU2Vs
ZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVdl
YkdQVSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgeyBmYWxz
ZSB9OwogICAgIHN0ZDo6c3RyaW5nIGpzY09wdGlvbnM7CiAKICAgICBUZXN0T3B0aW9ucyhjb25z
dCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1dGVQYXRo
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA1ZGU2
MTJjNTlmMy4uYTcwMWNkY2UwNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KQEAgLTEwMTEsNiArMTAxMSw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZl
cmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJl
ZmVyZW5jZXMuY29sb3JGaWx0ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb2xvckZpbHRlcjsK
ICAgICBwcmVmZXJlbmNlcy5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCA9
IG9wdGlvbnMuZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllczsKICAgICBwcmVm
ZXJlbmNlcy53ZWJHUFVFbmFibGVkID0gb3B0aW9ucy5lbmFibGVXZWJHUFU7CisgICAgcHJlZmVy
ZW5jZXMub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlT3ZlcnNjcm9s
bEJlaGF2aW9yOwogfQogCiAvLyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVw
LgotLSAKMi4xOS4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356006</attachid>
            <date>2018-11-29 07:59:53 -0800</date>
            <delta_ts>2018-12-03 14:50:11 -0800</delta_ts>
            <desc>Add overscroll behavior property to scrolling tree</desc>
            <filename>0002-Add-overscroll-behavior-property-to-scrolling-tree-s.patch</filename>
            <type>text/plain</type>
            <size>7821</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBiZTk0MGI2MzY1NzA2Y2MxYzYwNGRhNzU2MTM4NTM1YWI4ZjEwZDNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDI5IE5vdiAyMDE4IDE1OjUyOjA4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
IDIvMl0gQWRkIG92ZXJzY3JvbGwgYmVoYXZpb3IgcHJvcGVydHkgdG8gc2Nyb2xsaW5nCiB0cmVl
IHNjcm9sbGluZyBub2RlLgoKLS0tCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5jcHAgfCAyNSArKysrKysrKysrKysrKysrKysrCiAuLi4vc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oICAgfCAxMiArKysrKysrKysKIC4uLi9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwICB8IDEyICsrKysrKysrKwogLi4uL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oICAgIHwgIDQgKysrCiA0IGZpbGVzIGNo
YW5nZWQsIDUzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCAx
NTMzNjJiYjE5OC4uZjg4YzkzYTQyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgfHwgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNp
bmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CiAKQEAgLTg3LDYgKzg4LDI0IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpzZXRSZWFjaGFibGVDb250ZW50c1NpemUoY29uc3QgRmxvYXRTaXplJiByZWFjCiAgICAg
c2V0UHJvcGVydHlDaGFuZ2VkKFJlYWNoYWJsZUNvbnRlbnRzU2l6ZSk7CiB9CiAKK3ZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9y
KE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAobV9ob3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yID09IGJlaGF2aW9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoSG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7Cit9CisKK3ZvaWQgU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Ny
b2xsQmVoYXZpb3IgYmVoYXZpb3IpCit7CisgICAgaWYgKG1fdmVydGljYWxPdmVyc2Nyb2xsQmVo
YXZpb3IgPT0gYmVoYXZpb3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoVmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworfQorCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6c2V0UGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdChjb25zdCBMYXlvdXRSZWN0JiBw
YXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KQogewogICAgIGlmIChtX3BhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QgPT0gcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCkKQEAgLTI0MSw2
ICsyNjAsMTIgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0
aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRzLmR1
bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dyYW1t
YXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCk7CiAKKyAgICBpZiAobV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yICE9
IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jp
em9udGFsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG1faG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcikpOworCisgICAgaWYgKG1fdmVydGljYWxPdmVyc2Nyb2xsQmVo
YXZpb3IgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICB0cy5kdW1wUHJvcGVy
dHkoInZlcnRpY2FsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fdmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKTsKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNj
cm9sbGFibGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQg
cmVsYXRpdmUgc2Nyb2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA3ZGU3MzdiNjQ4Ny4uMWYzMjkwMjgyNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0zNCw2ICszNCw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90OworCiBj
bGFzcyBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUgOiBwdWJsaWMgU2Nyb2xsaW5nU3RhdGVO
b2RlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUo
KTsKQEAgLTQyLDYgKzQ0LDggQEAgcHVibGljOgogICAgICAgICBTY3JvbGxhYmxlQXJlYVNpemUg
PSBOdW1TdGF0ZU5vZGVCaXRzLAogICAgICAgICBUb3RhbENvbnRlbnRzU2l6ZSwKICAgICAgICAg
UmVhY2hhYmxlQ29udGVudHNTaXplLAorICAgICAgICBIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yLAorICAgICAgICBWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciwKICAgICAgICAgUGFyZW50
UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCwKICAgICAgICAgU2Nyb2xsUG9zaXRpb24sCiAgICAgICAg
IFNjcm9sbE9yaWdpbiwKQEAgLTY5LDYgKzczLDEyIEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9h
dFNpemUmIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxl
Q29udGVudHNTaXplOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWFjaGFibGVDb250
ZW50c1NpemUoY29uc3QgRmxvYXRTaXplJik7CiAKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbE92
ZXJzY3JvbGxCZWhhdmlvcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IpOworCisgICAg
T3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoT3ZlcnNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yKTsKKwogICAgIGNvbnN0IExheW91dFJlY3QmIHBhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3Q7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3Qo
Y29uc3QgTGF5b3V0UmVjdCYpOwogCkBAIC0xMzMsNiArMTQzLDggQEAgcHJpdmF0ZToKICNlbmRp
ZgogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVy
czsKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOworICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7CisgICAg
T3ZlcnNjcm9sbEJlaGF2aW9yIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7CiAgICAgYm9v
bCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2V4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIgeyBmYWxz
ZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA3NGE4NzNkZGU0MC4uNWVmM2Vj
ZDllMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTYzLDYgKzYzLDEyIEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgU2Nyb2xsaW5nU3RhdGVOCiAgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbFBvc2l0aW9uKSkKICAgICAgICAgbV9sYXN0
Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gPSBzdGF0ZS5zY3JvbGxQb3NpdGlvbigpOwogCisgICAg
aWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICBtX2hvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3IgPSBzdGF0ZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7CisK
KyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICBtX3ZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yID0gc3RhdGUudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKwog
ICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KSkKICAgICAgICAgbV9wYXJlbnRSZWxh
dGl2ZVNjcm9sbGFibGVSZWN0ID0gc3RhdGUucGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCgp
OwogCkBAIC0xNDMsNiArMTQ5LDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAgICAg
IHRzLmR1bXBQcm9wZXJ0eSgicmVhY2hhYmxlIGNvbnRlbnQgc2l6ZSIsIG1fcmVhY2hhYmxlQ29u
dGVudHNTaXplKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImxhc3QgY29tbWl0dGVkIHNjcm9sbCBw
b3NpdGlvbiIsIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKTsKIAorICAgIGlmIChtX2hv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQor
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6b250YWwgb3ZlcnNjcm9sbCBiZWhhdmlvciIs
IHN0YXRpY19jYXN0PGludD4obV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSk7CisKKyAg
ICBpZiAobV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6
OkF1dG8pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWwgb3ZlcnNjcm9sbCBiZWhh
dmlvciIsIHN0YXRpY19jYXN0PGludD4obV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcikpOwor
CiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3QiLCBt
X3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRl
eCBmNmRlNzgzMDM3NC4uZjk0ZTNmMzIxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtODcs
NiArODcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgRmxvYXRTaXplJiBzY3JvbGxhYmxlQXJl
YVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhU2l6ZTsgfQogICAgIGNvbnN0
IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemUoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsQ29u
dGVudHNTaXplOyB9CiAgICAgY29uc3QgRmxvYXRTaXplJiByZWFjaGFibGVDb250ZW50c1NpemUo
KSBjb25zdCB7IHJldHVybiBtX3JlYWNoYWJsZUNvbnRlbnRzU2l6ZTsgfQorICAgIE92ZXJzY3Jv
bGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4g
bV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcjsgfQogICAgIGNvbnN0IExheW91dFJlY3QmIHBhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3Q7IH0KICAgICBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxPcmlnaW47IH0KIApAQCAtMTE5LDYgKzEyMSw4IEBAIHByaXZhdGU6CiAgICAg
dW5zaWduZWQgbV9jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4IHsgMCB9OwogICAgIHVu
c2lnbmVkIG1fY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXggeyAwIH07CiAjZW5kaWYKKyAg
ICBPdmVyc2Nyb2xsQmVoYXZpb3IgbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOworICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yOwogICAgIFNj
cm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIH07CiAK
LS0gCjIuMTkuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356410</attachid>
            <date>2018-12-03 14:50:11 -0800</date>
            <delta_ts>2018-12-04 03:18:25 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>54916</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBiMTJlZjBkMjJlYjRjNmU0MWU1Mzk2YTdjZGFlNDY4MzUwMTUzYjJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDI5IE5vdiAyMDE4IDE1OjA5OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSF0gQnVnIDE3
NjQ1NCAtIEltcGxlbWVudCBDU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvcgoKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8ICA4ICsrKysKIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICAgIHwgMzYgKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uICAgICAg
ICAgICAgICB8IDQwICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiAgICAgICAgICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0aWVzLmNwcCAgICAgICAgICAgICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCAgICAgfCAgMiArCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCAgICAgICB8ICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCAgICB8IDQ0ICsrKysrKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
aCAgICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAg
ICAgICAgICAgfCAzMSArKysrKysrKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbCAgICAgICAgICAgICAgICAgIHwgIDIgKwogLi4uL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwICAgfCAgNSArKysKIC4uLi9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggIHwgIDQgKysKIC4uLi9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIHwgMjkgKysrKysrKysrKysrKysKIC4u
Li9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCAgIHwgMTIgKysr
KysrCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwICB8
IDE1ICsrKysrKysrCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaCAgICB8ICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcCB8ICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaCAgICAgICB8ICA4ICsrKysKIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oIHwgIDYgKysrCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwICB8ICA2ICsrKwogLi4uL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggICAgfCAgMyArKwogLi4uL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwICAgICAgfCAxMSArKysrKysKIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oICAgICAgIHwgMTAgKysrKysKIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgICAgICAgICAgIHwgIDcgKysrKwogLi4u
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tICAgfCAgOCArKysr
CiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggICAgICAgICB8ICAx
ICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gIHwg
MTEgKysrKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggICAgICAg
ICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSAg
ICAgICAgIHwgIDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaCB8ICAxICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmNwcCAgICAgICAgIHwgMTYgKysrKysrKysKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmggICAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAgICAgICAgICAgICAgICAgfCAgNSArKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcCAgICAgICAgICAgICAgIHwgIDIgKwogVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuaCAgICAgICAgICAgICAgICAgfCAgMSArCiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgICAgICB8ICAxICsKIDM4IGZpbGVzIGNoYW5nZWQs
IDM0NCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGYxYjUwZmJhNmQu
Ljg1MGE5NzhkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xOTAsNiArMTkwLDggQEAgc3RhdGljIGNvbnN0IENTU1By
b3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlPdXRsaW5l
V2lkdGgsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXAsCiAgICAgQ1NTUHJvcGVydHlPdmVy
Zmxvd1gsCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYLAorICAgIENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93WSwKICAgICBD
U1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwKQEAg
LTMzMDEsNiArMzMwMywxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0
b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFs
dWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHls
ZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJz
Y3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZh
bHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5j
cmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQYWRk
aW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJlbmRlckJv
eE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJlcik7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBjOTVmZjY1YTgzLi5iOTczNDZm
NTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmgKQEAgLTIyMDQsNiArMjIwNCw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6Vmlz
aWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICBz
d2l0Y2ggKGUpIHsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWluOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhh
dmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2Ug
Q1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250
YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBPdmVyc2Nyb2xsQmVo
YXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMu
anNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KaW5kZXggZmUwMTJi
YTRiMi4uM2JhYjliODdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCkBA
IC0zMDUzLDYgKzMwNTMsNDYgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3
LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJvcGRlZi1vdmVyZmxvdy15IgogICAgICAgICAg
ICAgfQogICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAg
ICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgImxvbmdoYW5k
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCIsCisgICAg
ICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICAgICAg
XQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2
aW9yIgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci14IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29u
dGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9y
LXgiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2
aW9yLXkiOiB7CisgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAgICAgICAgICAgICJjb250
YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAgICAgICAgICAgICAgImF1dG8iCisg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAi
c3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJz
cGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdp
dGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3It
eSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInBhZGRpbmciOiB7CiAgICAg
ICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICJsb25naGFu
ZHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
biBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDg2YjVlNTkx
NGYuLjE2MjIxNjczMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBA
IC0xMzU3LDYgKzEzNTcsOSBAQCBzY3JvbGwtcG9zaXRpb24KIG1hbmlwdWxhdGlvbgogI2VuZGlm
CiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5j
dHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcAppbmRleCA1YWNiNDhmOTExLi5hMTc5MDdmZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjA3LDYgKzIwNyw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRp
ZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAg
ICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhh
bmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0
Q29tbW9uVmFsdWUob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldENvbW1vblZhbHVlKG92ZXJzY3Jv
bGxCZWhhdmlvclNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZzoKICAg
ICAgICAgcmV0dXJuIGdldDRWYWx1ZXMocGFkZGluZ1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENT
U1Byb3BlcnR5VHJhbnNpdGlvbjoKQEAgLTEwMDUsNiArMTAwNywxMCBAQCBTdHJpbmcgU3R5bGVQ
cm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJmbG93WToKICAgICAgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVy
dHlPdmVyZmxvdzsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJ
RCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOworICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBj
YXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcAppbmRleCAwNmM3MDJhMGRiLi4yMDY1ZDMwODc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTczLDYgKzczLDcgQEAg
Q1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICAgICBhdHRhY2htZW50RW5hYmxlZCA9IFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVudEVsZW1lbnRFbmFibGVk
KCk7CiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0
aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQo
KTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQu
cGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1Bh
cnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEu
YXR0YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAg
ICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkCisgICAgICAgICYmIGEub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAgJiYgYS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
ID09IGIuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbgogICAgICAgICAmJiBhLnVzZVN5c3RlbUFw
cGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRleCAxMDg5ZDIyZDQxLi45NzJmZjNiZTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaApAQCAt
NTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhdHRhY2htZW50RW5hYmxlZCB7IGZhbHNl
IH07CiAjZW5kaWYKICAgICBib29sIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07
CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAg
ICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgog
ICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDYsNyAr
MTA3LDggQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQogICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBs
YXN0LgorICAgICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAg
ICAgICAgICAgPDwgMTIKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFz
aCBePSBXVEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXgg
NWNiODk0NWIzOC4uNWVmZTgwODE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjYsNiArMjMyNiwxNCBAQCBzdGF0aWMgUmVm
UHRyPENTU1ZhbHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZU92
ZXJzY3JvbGxCZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRv
IHZhbHVlSUQgPSByYW5nZS5wZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAhPSBDU1NWYWx1
ZUF1dG8gJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZUNv
bnRhaW4pCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQo
cmFuZ2UpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVz
Q29ybmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNl
ck1vZGUpCiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBj
b25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9u
TmVnYXRpdmUpOwpAQCAtNDAxNSw2ICs0MDIzLDExIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJv
cGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NT
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29u
c3VtZVNjcm9sbFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclk6CisgICAgICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVy
c2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAg
ICAgIHJldHVybiBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKQEAgLTU2NTgsNiArNTY3MSwzNSBAQCBib29sIENTU1Byb3BlcnR5
UGFyc2VyOjpjb25zdW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJl
dHVybiB0cnVlOwogfQogCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhh
bmRGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0g
Mik7CisgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0g
Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxC
ZWhhdmlvclgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4g
b3ZlcnNjcm9sbEJlaGF2aW9yWTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7Cisg
ICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92
ZXJzY3JvbGxCZWhhdmlvclg7CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlv
clkgPSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3Jhbmdl
LmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpv
dmVyc2Nyb2xsQmVoYXZpb3JYLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpv
dmVyc2Nyb2xsQmVoYXZpb3JZLCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBi
b29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5LCBib29sIGltcG9ydGFudCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01Njk3
LDYgKzU3MzksOCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICAgICAgYWRkUHJvcGVydHko
Q1NTUHJvcGVydHlPdmVyZmxvd1ksIENTU1Byb3BlcnR5T3ZlcmZsb3csICpvdmVyZmxvd1lWYWx1
ZSwgaW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNj
cm9sbEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZv
bnQ6IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVr
KCk7CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5p
ZCgpIDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oCmluZGV4IDFkYzA1ZWY4OGQuLjNmYzE2NjUzNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTEwNyw2ICsx
MDcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGlt
cG9ydGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRh
bnQpOwogCisgICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wg
aW1wb3J0YW50KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9r
ZW5SYW5nZSBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDZk
MTQxZWFmZGEuLjZmNTExYjlmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
QEAgLTI4MywxNSArMjgzLDE1IEBAIHN0YXRpYyBpbmxpbmUgU2Nyb2xsR3JhbnVsYXJpdHkgd2hl
ZWxHcmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkodW5zaWduZWQgZGVsCiAgICAgfQogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxl
QXJlYSogc2Nyb2xsYWJsZUFyZWEsIFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdGF0aWMgaW5s
aW5lIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xs
YWJsZUFyZWEsIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIHVuc2lnbmVkIGRlbHRhTW9k
ZSkKIHsKLSAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3Jh
bnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOworICAg
IFNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFudWxhcml0eVRv
U2Nyb2xsR3JhbnVsYXJpdHkoZGVsdGFNb2RlKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZl
bnQgPSBmYWxzZTsKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVs
RXZlbnQuZGVsdGFYKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFi
bGVBcmVhLT5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxSaWdodCA6IFNj
cm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxv
YXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRpZEhhbmRsZVdo
ZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbChkZWx0YVggPiAwID8gU2Nyb2xsUmln
aHQgOiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAg
Ci0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRh
WSgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Ny
b2xsKHdoZWVsRXZlbnQuZGVsdGFZKCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3Jv
bGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVs
dGEgPSBzdGQ6OmFicyhkZWx0YVkpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNj
cm9sbGFibGVBcmVhLT5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwg
c2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVybiBkaWRI
YW5kbGVXaGVlbEV2ZW50OwogfQpAQCAtMzEwLDE4ICszMTAsMjAgQEAgc3RhdGljIGlubGluZSBi
b29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0
Tm9kZSwgV2gKIAogICAgIFJlbmRlckJveCYgaW5pdGlhbEVuY2xvc2luZ0JveCA9IHN0YXJ0Tm9k
ZS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nQm94KCk7CiAgICAgaWYgKGluaXRpYWxFbmNsb3NpbmdC
b3guaXNMaXN0Qm94KCkpCi0gICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVh
KHN0YXRpY19jYXN0PFJlbmRlckxpc3RCb3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVs
RXZlbnQpOworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNf
Y2FzdDxSZW5kZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50LmRl
bHRhWCgpLCB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKIAog
ICAgIFJlbmRlckJveCogY3VycmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9zaW5nQm94
OworICAgIGJvb2wgaWdub3JlRGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVEZWx0YVkg
PSBmYWxzZTsKICAgICB3aGlsZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAgICBpZiAo
UmVuZGVyTGF5ZXIqIGJveExheWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIoKSkgewog
ICAgICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxh
dGZvcm1FdmVudCgpOwogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVkOwogICAg
ICAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNvcGll
ZEV2ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJl
ZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBm
aWx0ZXJlZFZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxh
dGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVggPyAwIDog
ZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBmaWx0ZXJl
ZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAg
ICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVudChjb3Bp
ZWRFdmVudCk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGxpbmdX
YXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShib3hMYXllciwgd2hlZWxFdmVu
dCk7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Ny
b2xsYWJsZUFyZWEoYm94TGF5ZXIsIGlnbm9yZURlbHRhWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRh
WCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5k
ZWx0YU1vZGUoKSk7CiAKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdXYXNIYW5kbGVkKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKHN0b3BFbGVtZW50KQpAQCAtMzMzLDYgKzMzNSwxNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3go
Tm9kZSogc3RhcnROb2RlLCBXaAogICAgICAgICBpZiAoc3RvcEVsZW1lbnQgJiYgKnN0b3BFbGVt
ZW50ICYmICpzdG9wRWxlbWVudCA9PSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgICAgICBpZiAoIWlnbm9yZURlbHRhWCAmJiBj
dXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOwor
ICAgICAgICBpZiAoIWlnbm9yZURlbHRhWSAmJiBjdXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgp
Lm92ZXJzY3JvbGxCZWhhdmlvclkoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAg
ICAgICAgICBpZ25vcmVEZWx0YVkgPSB0cnVlOworICAgICAgICBpZiAoaWdub3JlRGVsdGFYICYm
IGlnbm9yZURlbHRhWSkgeworICAgICAgICAgICAgLy8gV2UgY2xhaW0gdGhhdCB0aGUgZXZlbnQg
d2FzIGhhbmRsZWQgc28gdGhhdCBpdCBpcyBub3QgcHJvcGFnYXRlZCB0byB0aGUgYW5jZXN0b3Ig
ZnJhbWVzLgorICAgICAgICAgICAgaWYgKHN0b3BFbGVtZW50KQorICAgICAgICAgICAgICAgICpz
dG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKTsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgY3VycmVudEVuY2xvc2luZ0JveCA9
IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICBpZiAoIWN1
cnJlbnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVuY2xvc2luZ0JveC0+aXNSZW5kZXJWaWV3KCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5k
ZXggNDE3N2ZhNzQ5MC4uNTA3YTE0NTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApA
QCAtMzcwLDYgKzM3MCw4IEBAIGZyYW1lRmxhdHRlbmluZzoKIGFzeW5jRnJhbWVTY3JvbGxpbmdF
bmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogICBvbkNoYW5nZTogc2V0TmVlZHNSZWxheW91dEFs
bEZyYW1lcworb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKIAog
YXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IGRjMzBhN2UzNjguLjA3NmFkMmQ2MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKKyNpbmNs
dWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdT
dGF0ZUZpeGVkTm9kZS5oIgpAQCAtNTI1LDYgKzUyNiw4IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcjo6dXBkYXRlRnJhbWVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsCiAgICAgbm9kZS0+c2V0Q291bnRlclNjcm9sbGluZ0xheWVyKGNvdW50ZXJTY3JvbGxpbmdM
YXllcik7CiAKICAgICBpZiAoc2Nyb2xsaW5nR2VvbWV0cnkpIHsKKyAgICAgICAgbm9kZS0+c2V0
SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcihzY3JvbGxpbmdHZW9tZXRyeS0+aG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIG5vZGUtPnNldFZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yKHNjcm9sbGluZ0dlb21ldHJ5LT52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7
CiAgICAgICAgIG5vZGUtPnNldFBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3Qoc2Nyb2xsaW5n
R2VvbWV0cnktPnBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogICAgICAgICBub2RlLT5z
ZXRTY3JvbGxPcmlnaW4oc2Nyb2xsaW5nR2VvbWV0cnktPnNjcm9sbE9yaWdpbik7CiAgICAgICAg
IG5vZGUtPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbGluZ0dlb21ldHJ5LT5zY3JvbGxQb3NpdGlv
bik7CkBAIC01NDUsNiArNTQ4LDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1
cGRhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGUKICAgICBub2Rl
LT5zZXRTY3JvbGxlZENvbnRlbnRzTGF5ZXIoc2Nyb2xsZWRDb250ZW50c0xheWVyKTsKICAgICAK
ICAgICBpZiAoc2Nyb2xsaW5nR2VvbWV0cnkpIHsKKyAgICAgICAgbm9kZS0+c2V0SG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcihzY3JvbGxpbmdHZW9tZXRyeS0+aG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvcik7CisgICAgICAgIG5vZGUtPnNldFZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KHNjcm9sbGluZ0dlb21ldHJ5LT52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CiAgICAgICAg
IG5vZGUtPnNldFBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3Qoc2Nyb2xsaW5nR2VvbWV0cnkt
PnBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogICAgICAgICBub2RlLT5zZXRTY3JvbGxP
cmlnaW4oc2Nyb2xsaW5nR2VvbWV0cnktPnNjcm9sbE9yaWdpbik7CiAgICAgICAgIG5vZGUtPnNl
dFNjcm9sbFBvc2l0aW9uKHNjcm9sbGluZ0dlb21ldHJ5LT5zY3JvbGxQb3NpdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCBhNTAzM2I3YzNkLi4zOTBhYWIzOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTUxLDYgKzUxLDgg
QEAgY2xhc3MgVGV4dFN0cmVhbTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNz
IE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3Q7CisKIHR5cGVkZWYgdW5zaWduZWQgU3luY2hy
b25vdXNTY3JvbGxpbmdSZWFzb25zOwogdHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2RlSUQ7
CiAKQEAgLTE3Myw2ICsxNzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU5v
ZGVWaWV3cG9ydENvbnN0cmFpbnRzKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgVmlld3BvcnRDb25z
dHJhaW50cyYpIHsgfQogCiAgICAgc3RydWN0IFNjcm9sbGluZ0dlb21ldHJ5IHsKKyAgICAgICAg
T3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7CisgICAgICAg
IE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKICAgICAgICAg
TGF5b3V0UmVjdCBwYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0OwogICAgICAgICBGbG9hdFNp
emUgc2Nyb2xsYWJsZUFyZWFTaXplOwogICAgICAgICBGbG9hdFNpemUgY29udGVudFNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCAxNTMzNjJiYjE5Li4yODg2YmRlZjIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpIHx8IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAorI2luY2x1ZGUg
IlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0zNSw2ICszNiw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBzdGF0ZVRyZWUsIFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogICAgIDogU2Ny
b2xsaW5nU3RhdGVOb2RlKG5vZGVUeXBlLCBzdGF0ZVRyZWUsIG5vZGVJRCkKKyAgICAsIG1faG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAg
LCBtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykK
IHsKIH0KIApAQCAtNTMsNiArNTYsOCBAQCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogICAgICwg
bV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycygpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFt
bWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCgpKQogICAgICwgbV9leHBlY3RzV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
KHN0YXRlTm9kZS5leHBlY3RzV2hlZWxFdmVudFRlc3RUcmlnZ2VyKCkpCisgICAgLCBtX2hvcml6
b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Ioc3RhdGVOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVo
YXZpb3IoKSkKKyAgICAsIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3Ioc3RhdGVOb2RlLnZl
cnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpCiB7CiAgICAgaWYgKGhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxlZENvbnRlbnRzTGF5ZXIpKQogICAgICAgICBzZXRTY3JvbGxlZENvbnRlbnRzTGF5
ZXIoc3RhdGVOb2RlLnNjcm9sbGVkQ29udGVudHNMYXllcigpLnRvUmVwcmVzZW50YXRpb24oYWRv
cHRpdmVUcmVlLnByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24oKSkpOwpAQCAtODcsNiArOTIs
MjQgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlYWNoYWJsZUNvbnRl
bnRzU2l6ZShjb25zdCBGbG9hdFNpemUmIHJlYWMKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVh
Y2hhYmxlQ29udGVudHNTaXplKTsKIH0KIAordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoT3ZlcnNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yKQoreworICAgIGlmIChtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0gYmVo
YXZpb3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvciA9IGJlaGF2aW9yOworICAgIHNldFByb3BlcnR5Q2hhbmdlZChIb3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKTsKK30KKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNl
dFZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikK
K3sKKyAgICBpZiAobV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBiZWhhdmlvcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9IGJlaGF2
aW9yOworICAgIHNldFByb3BlcnR5Q2hhbmdlZChWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7
Cit9CisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRQYXJlbnRSZWxhdGl2
ZVNjcm9sbGFibGVSZWN0KGNvbnN0IExheW91dFJlY3QmIHBhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3QpCiB7CiAgICAgaWYgKG1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCA9PSBwYXJl
bnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KQpAQCAtMjQxLDYgKzI2NCwxMiBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIFNj
cm9sbGluZ1N0YXRlVAogICAgIGlmIChtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZXF1ZXN0ZWQg
c2Nyb2xsIHBvc2l0aW9uIHJlcHJlc2VudHMgcHJvZ3JhbW1hdGljIHNjcm9sbCIsIG1fcmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAorICAgIGlm
IChtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpB
dXRvKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6b250YWwgb3ZlcnNjcm9sbCBiZWhh
dmlvciIsIHN0YXRpY19jYXN0PGludD4obV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSk7
CisKKyAgICBpZiAobV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciAhPSBPdmVyc2Nyb2xsQmVo
YXZpb3I6OkF1dG8pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWwgb3ZlcnNjcm9s
bCBiZWhhdmlvciIsIHN0YXRpY19jYXN0PGludD4obV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlv
cikpOworCiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgp
KQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJl
Y3QiLCBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5oCmluZGV4IDdkZTczN2I2NDguLjU3NWU5YTNhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5o
CkBAIC0zNCw2ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBP
dmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90OworCiBjbGFzcyBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUgOiBwdWJsaWMgU2Nyb2xsaW5nU3RhdGVOb2RlIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoKTsKQEAgLTQyLDYgKzQ0LDggQEAgcHVi
bGljOgogICAgICAgICBTY3JvbGxhYmxlQXJlYVNpemUgPSBOdW1TdGF0ZU5vZGVCaXRzLAogICAg
ICAgICBUb3RhbENvbnRlbnRzU2l6ZSwKICAgICAgICAgUmVhY2hhYmxlQ29udGVudHNTaXplLAor
ICAgICAgICBIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yLAorICAgICAgICBWZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvciwKICAgICAgICAgUGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCwK
ICAgICAgICAgU2Nyb2xsUG9zaXRpb24sCiAgICAgICAgIFNjcm9sbE9yaWdpbiwKQEAgLTY5LDYg
KzczLDEyIEBAIHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFNpemUmIHJlYWNoYWJsZUNvbnRlbnRz
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxlQ29udGVudHNTaXplOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRSZWFjaGFibGVDb250ZW50c1NpemUoY29uc3QgRmxvYXRTaXpl
Jik7CiAKKyAgICBjb25zdCBPdmVyc2Nyb2xsQmVoYXZpb3ImIGhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7
IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3IoT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKworICAgIGNvbnN0IE92ZXJzY3JvbGxCZWhhdmlvciYg
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZpb3IpOworCiAgICAgY29uc3QgTGF5b3V0
UmVjdCYgcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFy
ZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdChjb25zdCBMYXlvdXRSZWN0Jik7CiAKQEAgLTEz
NSw2ICsxNDUsOCBAQCBwcml2YXRlOgogICAgIExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXI7CiAgICAgYm9vbCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2V4cGVjdHNXaGVl
bEV2ZW50VGVzdFRyaWdnZXIgeyBmYWxzZSB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBtX2hv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG1fdmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggNzRhODczZGRlNC4uOTRiYmYwOGMzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKIAorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KQEAgLTM2LDYgKzM3LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUoU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSwgU2Nyb2xsaW5nTm9kZVR5
cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiAgICAgOiBTY3JvbGxpbmdUcmVl
Tm9kZShzY3JvbGxpbmdUcmVlLCBub2RlVHlwZSwgbm9kZUlEKQorICAgICwgbV9ob3Jpem9udGFs
T3ZlcnNjcm9sbEJlaGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAsIG1fdmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQogewogfQog
CkBAIC02Myw2ICs2NiwxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21t
aXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogICAgIGlmIChzdGF0
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxQ
b3NpdGlvbikpCiAgICAgICAgIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uID0gc3RhdGUu
c2Nyb2xsUG9zaXRpb24oKTsKIAorICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkK
KyAgICAgICAgbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc3RhdGUuaG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcigpOworCisgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KSkKKyAgICAgICAgbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHN0YXRlLnZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yKCk7CisKICAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVj
dCkpCiAgICAgICAgIG1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCA9IHN0YXRlLnBhcmVu
dFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QoKTsKIApAQCAtMTQzLDYgKzE1MiwxMiBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywg
U2Nyb2xsaW5nU3RhdGVUcgogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlYWNoYWJsZSBjb250
ZW50IHNpemUiLCBtX3JlYWNoYWJsZUNvbnRlbnRzU2l6ZSk7CiAgICAgdHMuZHVtcFByb3BlcnR5
KCJsYXN0IGNvbW1pdHRlZCBzY3JvbGwgcG9zaXRpb24iLCBtX2xhc3RDb21taXR0ZWRTY3JvbGxQ
b3NpdGlvbik7CiAKKyAgICBpZiAobV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yICE9IE92
ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9u
dGFsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG1faG9yaXpvbnRhbE92
ZXJzY3JvbGxCZWhhdmlvcikpOworCisgICAgaWYgKG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICB0cy5kdW1wUHJvcGVydHko
InZlcnRpY2FsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fdmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKTsKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9s
bGFibGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVs
YXRpdmUgc2Nyb2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggZjZkZTc4MzAzNy4uZGFhOTBjZWJjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oCkBAIC04Nyw2ICs4Nyw4IEBAIHByb3RlY3RlZDoKICAgICBjb25zdCBG
bG9hdFNpemUmIHNjcm9sbGFibGVBcmVhU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJs
ZUFyZWFTaXplOyB9CiAgICAgY29uc3QgRmxvYXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdG90YWxDb250ZW50c1NpemU7IH0KICAgICBjb25zdCBGbG9hdFNpemUm
IHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxlQ29udGVu
dHNTaXplOyB9CisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2aW9yJiBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yOyB9CisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2aW9yJiB2ZXJ0aWNhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7IH0K
ICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCkgY29u
c3QgeyByZXR1cm4gbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0OyB9CiAgICAgY29uc3Qg
SW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9
CiAKQEAgLTEyMCw2ICsxMjIsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXggeyAwIH07CiAjZW5kaWYKICAgICBTY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7CisgICAgT3ZlcnNjcm9sbEJlaGF2
aW9yIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICBPdmVyc2Nyb2xsQmVoYXZp
b3IgbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggZTAxMTI1NTk5Zi4uNWRkMzY2YzU1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTM4NjEsNiAr
Mzg2MSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGlu
YXRpb25Gb3JUaGlzRnJhbWUoU2Nyb2xsaW5nTm9kZUlECiAgICAgQVNTRVJUKHNjcm9sbGluZ0Nv
b3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhtX3JlbmRlclZpZXcu
ZnJhbWVWaWV3KCkpKTsKIAogICAgIFNjcm9sbGluZ05vZGVJRCBub2RlSUQgPSBhdHRhY2hTY3Jv
bGxpbmdOb2RlKCptX3JlbmRlclZpZXcubGF5ZXIoKSwgbV9yZW5kZXJWaWV3LmZyYW1lKCkuaXNN
YWluRnJhbWUoKSA/IE1haW5GcmFtZVNjcm9sbGluZ05vZGUgOiBTdWJmcmFtZVNjcm9sbGluZ05v
ZGUsIHBhcmVudE5vZGVJRCk7CisgICAgLy8gRklYTUUoaHR0cHM6Ly93ZWJraXQub3JnL2IvMTc2
NDU0KTogUGFzcyBDU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci4KKyAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MzU1OTg2JmFjdGlvbj1yZXZpZXcKICAg
ICBzY3JvbGxpbmdDb29yZGluYXRvci0+dXBkYXRlRnJhbWVTY3JvbGxpbmdOb2RlKG5vZGVJRCwg
bV9zY3JvbGxMYXllci5nZXQoKSwgbV9yb290Q29udGVudExheWVyLmdldCgpLCBmaXhlZFJvb3RC
YWNrZ3JvdW5kTGF5ZXIoKSwgY2xpcExheWVyKCkpOwogfQogCkBAIC0zOTQ1LDYgKzM5NDcsOCBA
QCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsQ29vcmRpbmF0ZWRMYXll
cihSZW5kZXJMYXllciYgbGF5ZXIsIE9wdAogICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnku
c2Nyb2xsYWJsZUFyZWFTaXplID0gbGF5ZXIudmlzaWJsZVNpemUoKTsKICAgICAgICAgICAgIHNj
cm9sbGluZ0dlb21ldHJ5LmNvbnRlbnRTaXplID0gbGF5ZXIuY29udGVudHNTaXplKCk7CiAgICAg
ICAgICAgICBzY3JvbGxpbmdHZW9tZXRyeS5yZWFjaGFibGVDb250ZW50U2l6ZSA9IGxheWVyLnNj
cm9sbGFibGVDb250ZW50c1NpemUoKTsKKyAgICAgICAgICAgIHNjcm9sbGluZ0dlb21ldHJ5Lmhv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBsYXllci5yZW5kZXJlcigpLnN0eWxlKCkub3Zl
cnNjcm9sbEJlaGF2aW9yWCgpOworICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnkudmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBsYXllci5yZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9s
bEJlaGF2aW9yWSgpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgICAgICAgICBp
ZiAoY29uc3QgVmVjdG9yPExheW91dFVuaXQ+KiBvZmZzZXRzID0gbGF5ZXIuaG9yaXpvbnRhbFNu
YXBPZmZzZXRzKCkpCiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnkuaG9yaXpvbnRh
bFNuYXBPZmZzZXRzID0gKm9mZnNldHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IGRiYWFmMGM3NjMuLmNlZDRmMDhkOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0zMzksNiArMzM5LDkg
QEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGlyZWN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WCgpIDogb3ZlcmZs
b3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dY
KCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gb3ZlcmZs
b3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZp
c2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25J
bmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhh
dmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3Zl
cnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZp
b3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0K
ICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9
CkBAIC04OTUsNiArODk4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3Zl
cmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9u
SW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9Cisg
ICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNF
VF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShP
dmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92
ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KICAgICB2b2lk
IHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0
eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGln
bihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVu
Z3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ246Okxl
bmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxpZ24sIFdURk1vdmUobGVuZ3Ro
KSk7IH0KQEAgLTE0NDgsNiArMTQ1Myw5IEBAIHB1YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVl
cyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVy
Zmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxv
dyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7IH0KKyAgICBz
dGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyBy
ZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxC
ZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0
dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5
KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJp
ZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5k
ZXggNjZlNWM3YjQ3NC4uMzk3MzQ3NjYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTI2MCw2ICsyNjAsMTIg
QEAgZW51bSBjbGFzcyBPdmVyZmxvdyA6IHVpbnQ4X3QgewogICAgIFBhZ2VkWQogfTsKIAorZW51
bSBjbGFzcyBPdmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90IHsKKyAgICBBdXRvID0gMCwKKyAg
ICBDb250YWluID0gMSwKKyAgICBOb25lID0gMgorfTsKKwogZW51bSBjbGFzcyBWZXJ0aWNhbEFs
aWduIDogdWludDhfdCB7CiAgICAgQmFzZWxpbmUsCiAgICAgTWlkZGxlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuY3BwCmluZGV4IGEzMTJiZGFlYmQuLmRiYjZlZGEyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAKQEAgLTYwLDYgKzYwLDggQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBzY3JvbGxTbmFwUG9ydChTdHlsZVNjcm9s
bFNuYXBQb3J0OjpjcmVhdGUoKSkKICAgICAsIHNjcm9sbFNuYXBBcmVhKFN0eWxlU2Nyb2xsU25h
cEFyZWE6OmNyZWF0ZSgpKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgo
KSkpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5k
ZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclkoKSkpCiAgICAgLCB3aWxsQ2hhbmdl
KFJlbmRlclN0eWxlOjppbml0aWFsV2lsbENoYW5nZSgpKQogICAgICwgbWFzayhGaWxsTGF5ZXJU
eXBlOjpNYXNrKQogICAgICwgb2JqZWN0UG9zaXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxPYmpl
Y3RQb3NpdGlvbigpKQpAQCAtMTM3LDYgKzEzOSw4IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbklu
CiAgICAgLCBzY3JvbGxTbmFwUG9ydChvLnNjcm9sbFNuYXBQb3J0KQogICAgICwgc2Nyb2xsU25h
cEFyZWEoby5zY3JvbGxTbmFwQXJlYSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9y
WChvLm92ZXJzY3JvbGxCZWhhdmlvclgpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKG8ub3Zl
cnNjcm9sbEJlaGF2aW9yWSkKICAgICAsIGNvbnRlbnQoby5jb250ZW50ID8gby5jb250ZW50LT5j
bG9uZSgpIDogbnVsbHB0cikKICAgICAsIGNvdW50ZXJEaXJlY3RpdmVzKG8uY291bnRlckRpcmVj
dGl2ZXMgPyBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJEaXJlY3RpdmVNYXA+KCpvLmNvdW50ZXJE
aXJlY3RpdmVzKSA6IG51bGxwdHIpCiAgICAgLCBhbHRUZXh0KG8uYWx0VGV4dCkKQEAgLTI0MCw2
ICsyNDQsOCBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29u
c3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBzY3JvbGxTbmFw
UG9ydCA9PSBvLnNjcm9sbFNuYXBQb3J0CiAgICAgICAgICYmIHNjcm9sbFNuYXBBcmVhID09IG8u
c2Nyb2xsU25hcEFyZWEKICNlbmRpZgorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JYID09
IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWAorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JZID09
IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWQogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQo
bykKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShjb3VudGVyRGlyZWN0aXZlcywg
by5jb3VudGVyRGlyZWN0aXZlcykKICAgICAgICAgJiYgYWx0VGV4dCA9PSBvLmFsdFRleHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCmluZGV4IGY5YmFhMTQyMzAuLjdjMTEyY2Q4MGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaApAQCAtMTI4LDYgKzEyOCw5IEBAIHB1YmxpYzoKICAgICBEYXRhUmVmPFN0eWxl
U2Nyb2xsU25hcEFyZWE+IHNjcm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBv
dmVyc2Nyb2xsQmVoYXZpb3JYIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisgICAgdW5zaWdu
ZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorCiAgICAg
c3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBTdHJpbmcgYWx0
VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uLmNwcAppbmRleCA4ZDJkMThjMDk2Li5mOWVlYTMwMGZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JU
cmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1N0YXRlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlLmg+CkBAIC0xMTksNiArMTIwLDggQEAgdm9pZCBBcmd1bWVudENv
ZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgU2Nyb2xsaW5nU3Rh
dGVOb2RlJj4obm9kZSk7CiAgICAgCisgICAgU0NST0xMSU5HX05PREVfRU5DT0RFX0VOVU0oU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yLCBo
b3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERV9F
TlVNKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IsIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09E
RShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhU2l6ZSwgc2Nyb2xs
YWJsZUFyZWFTaXplKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplLCB0b3RhbENvbnRlbnRzU2l6ZSkKICAgICBT
Q1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFi
bGVDb250ZW50c1NpemUsIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSkKQEAgLTE5Myw2ICsxOTYsOCBA
QCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlj
X2Nhc3Q8U2Nyb2xsaW5nU3RhdGVOb2RlJj4obm9kZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICBTQ1JPTExJTkdfTk9ERV9ERUNPREVfRU5VTShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IsIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvciwgc2V0SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgU0NST0xMSU5H
X05PREVfREVDT0RFX0VOVU0oU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvciwgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yLCBzZXRWZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvcik7CiAgICAgU0NST0xMSU5HX05PREVfREVDT0RFKFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFTaXplLCBGbG9hdFNpemUsIHNldFNj
cm9sbGFibGVBcmVhU2l6ZSk7CiAgICAgU0NST0xMSU5HX05PREVfREVDT0RFKFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUsIEZsb2F0U2l6ZSwgc2V0VG90YWxD
b250ZW50c1NpemUpOwogICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlJlYWNoYWJsZUNvbnRlbnRzU2l6ZSwgRmxvYXRTaXplLCBzZXRSZWFjaGFi
bGVDb250ZW50c1NpemUpOwpAQCAtNDU2LDYgKzQ2MSwxMiBAQCBib29sIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAK
IHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSYgbm9kZSwgYm9vbCBjaGFuZ2VkUHJvcGVydGllc09ubHkpCiB7CisgICAgaWYg
KCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsLW92ZXJzY3JvbGwtYmVoYXZpb3IiLCBz
dGF0aWNfY2FzdDxpbnQ+KG5vZGUuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpKSk7CisK
KyAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJ2ZXJ0aWNhbC1vdmVyc2Nyb2xsLWJlaGF2aW9y
Iiwgc3RhdGljX2Nhc3Q8aW50Pihub2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpKTsK
KwogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFTaXplKSkKICAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlLWFyZWEtc2l6ZSIsIG5vZGUuc2Nyb2xs
YWJsZUFyZWFTaXplKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDA5MDliNGQxOWMuLmQ4ZjMyMjdkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05v
dGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyU3R5bGVDb25zdGFudHMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFs
c1BvbGljeS5oPgpAQCAtNzQ4LDYgKzc0OSwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gewogCiBuYW1lc3BhY2Ug
V1RGIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpPdmVyc2Nyb2xs
QmVoYXZpb3I+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6
Ok92ZXJzY3JvbGxCZWhhdmlvciwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1
dG8sCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluLAorICAgIFdlYkNv
cmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsKICAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAogICAgIFdlYkNvcmU6OkNvbG9yU3BhY2UsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA2ZTY4MzZiMGE0Li5iYzQxNzhmNGVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyMzMsNiArMTIzMywx
MyBAQCBQb2ludGVyRXZlbnRzRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogCitPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIKKyAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IgcHJvdG90eXBlIgorICBjYXRlZ29y
eTogZXhwZXJpbWVudGFsCisKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIHR5cGU6
IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDNkNDA2MGY4
MDIuLmNkYjQ4YTBjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlQYW5HZXN0dXJl
UmVjb2duaXplci5oPgogI2ltcG9ydCA8VUlLaXQvVUlTY3JvbGxWaWV3Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGlu
Z1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGlu
Z1RyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZS5oPgpAQCAtMTYzLDYgKzE2NCw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiB7CiAgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUs
IHRydWUpOwogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsTGF5ZXIpCisgICAgICAgIHx8IHNjcm9s
bGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKQorICAgICAgICB8fCBzY3JvbGxpbmdT
dGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENv
bnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlYWNoYWJsZUNvbnRlbnRzU2l6ZSkK
ICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbFBvc2l0aW9uKQpAQCAtMTcxLDYgKzE3NCwxMSBA
QCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogICAgICAgICBVSVNjcm9sbFZpZXcgKnNjcm9sbFZp
ZXcgPSAoVUlTY3JvbGxWaWV3ICopW3Njcm9sbExheWVyKCkgZGVsZWdhdGVdOwogICAgICAgICBB
U1NFUlQoW3Njcm9sbFZpZXcgaXNLaW5kT2ZDbGFzczpbVUlTY3JvbGxWaWV3IHNlbGZdXSk7CiAK
KyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAg
ICAgICAgICAgIHNjcm9sbFZpZXcuYWx3YXlzQm91bmNlSG9yaXpvbnRhbCA9IHNjcm9sbGluZ1N0
YXRlTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2
aW9yOjpOb25lID8gTk8gOiBZRVM7CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICAgICAgc2Nyb2xsVmlldy5hbHdheXNCb3VuY2VWZXJ0
aWNhbCA9IHNjcm9sbGluZ1N0YXRlTm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09
IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZSA/IE5PIDogWUVTOworCiAgICAgICAgIGlmIChzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6U2Nyb2xsTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xsVmlld0RlbGVn
YXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0gYWRvcHROUyhbW1dL
U2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxpbmdU
cmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGI3M2Y2Y2I2
ODMuLjQ3ODcwYzAwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTgyLDYgKzE4Miw3IEBA
CiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRF
bmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgog
I2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVy
bk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29u
dHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA3ZTFjZmMxYjFlLi5lY2Uw
YzdhYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0KQEAgLTY1Niw2ICs2NTYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSwKIAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9d
LCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZ
RVNdLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSwKICAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0QWxsb3dDcm9zc09yaWdpblN1
YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCkBAIC0zMDk3LDYgKzMwOTgsMTYgQEAg
c3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRC
b29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAg
IHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5
OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAo
Qk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9i
b29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMjBiMzM0Mjk1MS4uMTg2MTUzZGJjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oCkBAIC01ODcsNiArNTg3LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJl
bmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIAog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRFbmFibGVkOwogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODkzZmEwOGNj
Zi4uZmMyYzAyZDBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtMjk1NCw2ICsyOTU0LDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hp
bGVMb2FkaW5nUXVpcmsoKQogCiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRFbmFibGVk
KFtwcmVmZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRW
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW3ByZWZl
cmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0XSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IDE5ODgyY2Rk
MGYuLjdjODY0YmRlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIxLDYgKzIy
MSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNl
c1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKFtpbl0g
Qk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbb3V0
LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VM
VCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKaW5kZXggOTQwZDVjZjU1ZC4uMTQ0YmUwMWQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTIwNCw1ICsyMDQsNiBA
QAogCiAjZGVmaW5lIFdlYktpdFNlcnZlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJL
aXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgog
I2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSAi
V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDU5YmUwYzQ0M2YuLmU1NWQxZjI3MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMyNiw2ICsz
MjYsOCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkK
IAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRWaXN1YWxW
aWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAg
IENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgZGVmYXVs
dFNldHRpbmdzID0gZGVmYXVsdHM7CkBAIC0yMTg0LDYgKzIxODYsMjAgQEAgSFJFU1VMVCBXZWJQ
cmVmZXJlbmNlczo6c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAg
ICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkK
KyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktl
eShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0
dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJu
IFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCAzY2U0NDg1YjhhLi5kNGJl
OTBmNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2
OSw2ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09M
Kik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9P
TCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQo
X091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBhY2FkODRl
ZGFmLi4xZWQ3OWRiOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTI3
OCw2ICs1Mjc4LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2Vk
KElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhyOwogICAg
IHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAg
aHIgPSBwcmVmc1ByaXZhdGUtPm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoJmVuYWJsZWQpOwor
ICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBwcmVmc1By
aXZhdGUtPkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChG
QUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5jcHAKaW5kZXggODFiMjQ4N2IyMy4uZTExMWYyZDAyYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcApAQCAtMTA5LDYgKzEwOSw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9u
cyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1
CiAgICAgICAgICAgICBqc2NPcHRpb25zID0gdmFsdWU7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9
PSAiZXhwZXJpbWVudGFsOldlYkdQVUVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlV2ViR1BV
ID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAo
a2V5ID09ICJleHBlcmltZW50YWw6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIpCisgICAgICAg
ICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFs
dWUodmFsdWUpOwogICAgICAgICBwYWlyU3RhcnQgPSBwYWlyRW5kICsgMTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCA4YWVkYjk0NjQxLi45ZmRkMDU2YTBhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RydWN0IFRl
c3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAgICBi
b29sIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAgICAg
Ym9vbCBlbmFibGVXZWJHUFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJl
aGF2aW9yIHsgZmFsc2UgfTsKICAgICBzdGQ6OnN0cmluZyBqc2NPcHRpb25zOwogCiAgICAgVGVz
dE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcm
IGFic29sdXRlUGF0aCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KaW5kZXggNWRlNjEyYzU5Zi4uYTcwMWNkY2UwNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAxMSw2ICsxMDExLDcgQEAgc3RhdGljIHZvaWQg
c2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9u
cykKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNv
bG9yRmlsdGVyOwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJp
ZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVz
OwogICAgIHByZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVdlYkdQVTsK
KyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gb3B0aW9ucy5lbmFi
bGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiB9CiAKIC8vIENhbGxlZCBvbmNlIG9uIER1bXBSZW5kZXJU
cmVlIHN0YXJ0dXAuCi0tIAoyLjE0LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356479</attachid>
            <date>2018-12-04 03:18:25 -0800</date>
            <delta_ts>2018-12-04 11:21:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>55177</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA0M2FlZmY4OTQ4NGM4MjA4MzhlNDVmYTc3YmZlOGY4ZTEzMzc3NjI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDI5IE5vdiAyMDE4IDE1OjA5OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM3ICsrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gICAgICAgICB8
IDQwICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgICAgICAgIHwgIDYgKysrCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuY3BwICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuaCAgfCAgNCArLQogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAgIHwgNDQgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwICAgICAgICAgIHwgMzEgKysrKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sICAgICAgICAgICAgIHwgIDIgKwogLi4uL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCAgIHwgIDQgKysKIC4uLi9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oICAgICB8ICAyICsKIC4uLi9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlLmNwcCB8IDI2ICsrKysrKysrKysrCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5oICAgfCAxMCArKysrKwogLi4uL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgIHwgMTMgKysrKysrCiAuLi4vc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggICAgfCAgNCArKwogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVHlwZXMuaCAgICAgICAgIHwgIDYgKysrCiAuLi4vcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAgICAgICAgfCAxOCArKysrKysrLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggIHwgIDkgKysrKwogLi4uL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwICAgICAgIHwgIDYgKysrCiAuLi4vc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oICAgICAgICAgfCAgMyArKwogLi4uL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIHwgMTAgKysrKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oICB8IDEwICsrKysrCiBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sICAgICAgfCAgNyArKysKIC4uLi9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tICB8IDIwICsrKysrKysrKwogLi4uL21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgIHwgIDEgKwogLi4uL21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tICAgICAgICAgICAgIHwgMTEgKysrKysKIC4uLi9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSAgICB8ICAxICsKIC4uLi93aW4vSW50ZXJmYWNlcy9JV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmlkbCB8ICAyICsKIC4uLi93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcCAgICB8IDE2ICsrKysrKysKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VzLmggICAgICB8ICAyICsKIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwICAgICAgICAgICB8ICA1ICsrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwICAgICAgICAgIHwgIDIgKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
aCAgICAgICAgICAgIHwgIDEgKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tICAgIHwgIDEgKwogMzggZmlsZXMgY2hhbmdlZCwgMzU5IGluc2VydGlvbnMoKyksIDEy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZjFiNTBmYmE2ZDkuLjg1MGE5NzhkNzFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtMTkwLDYgKzE5MCw4IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJv
cGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5T3V0bGluZVdpZHRoLAogICAgIENTU1Byb3Bl
cnR5T3ZlcmZsb3dXcmFwLAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dYLAorICAgIENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yWCwKKyAgICBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clksCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1ksCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nQm90
dG9tLAogICAgIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsCkBAIC0zMzAxLDYgKzMzMDMsMTIgQEAg
UmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5
aW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wu
Y3JlYXRlVmFsdWUoc3R5bGUub3ZlcmZsb3dYKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcmZsb3dZOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShz
dHlsZS5vdmVyZmxvd1koKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3I6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0ZDo6
bWF4KHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSwgc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9y
WSgpKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xs
QmVoYXZpb3JYKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9y
WToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3Zl
cnNjcm9sbEJlaGF2aW9yWSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6
CiAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGFkZGluZ09yTWFyZ2luUGl4ZWxWYWx1
ZTwmUmVuZGVyU3R5bGU6OnBhZGRpbmdUb3AsICZSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0
ZWRDU1NQYWRkaW5nVG9wPihzdHlsZSwgcmVuZGVyZXIpOwogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5UGFkZGluZ1JpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKaW5kZXggYzk1ZmY2NWE4MzUuLjA3ZGY4YTA3MmEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29u
c3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Ny
b2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5cGVz
LmgiCiAjaW5jbHVkZSAiVW5pY29kZUJpZGkuaCIKQEAgLTIyMDQsNiArMjIwNSw0MiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25z
dAogICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBl
KQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIE92ZXJzY3Jv
bGxCZWhhdmlvcjo6Q29udGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b250YWluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZp
b3IoKSBjb25zdAoreworICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1
cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgor
ICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0aWVzLmpzb24KaW5kZXggZmUwMTJiYTRiMjIuLjNiYWI5Yjg3YTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTMwNTMsNiArMzA1Myw0NiBAQAogICAgICAg
ICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNw
cm9wZGVmLW92ZXJmbG93LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJv
dmVyc2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6
IHsKKyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAgICAgICAgICAi
b3ZlcnNjcm9sbC1iZWhhdmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwt
YmVoYXZpb3IteSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50
IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAg
ICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2
aW9yLyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAg
IH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFs
dWVzIjogWworICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9u
ZSIsCisgICAgICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
InN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50Igor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9y
LyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1
ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25l
IiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAi
c3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAg
ICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3Iv
I3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9
LAogICAgICAgICAicGFkZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMi
OiB7CiAgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4KaW5kZXggODZiNWU1OTE0ZjQuLjE2MjIxNjczMWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM1Nyw2ICsxMzU3LDkgQEAgc2Nyb2xs
LXBvc2l0aW9uCiBtYW5pcHVsYXRpb24KICNlbmRpZgogCisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9y
CisvLyBjb250YWluCisKIC8vIGhhbmdpbmctcHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggNWFjYjQ4ZjkxMWEuLmEx
NzkwN2ZkYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjA3
LDYgKzIwNyw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5k
VmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcmZsb3dTaG9y
dGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAg
ICAgcmV0dXJuIGdldENvbW1vblZhbHVlKG92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZCgpKTsK
ICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZzoKICAgICAgICAgcmV0dXJuIGdldDRWYWx1ZXMo
cGFkZGluZ1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKQEAg
LTEwMDUsNiArMTAwNywxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25z
dAogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZp
b3JYOgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6Cisg
ICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9s
bEJlaGF2aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1Jp
Z2h0OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCAwNmM3MDJh
MGRiNC4uMjA2NWQzMDg3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcApAQCAtNzMsNiArNzMsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQ
YXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzaGVldEJh
cwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKTsKICNlbmRpZgogICAgIGRlZmVy
cmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJz
ZXJFbmFibGVkKCk7CisgICAgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNl
dHRpbmdzKCkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVh
cmFuY2UgPSBkb2N1bWVudC5wYWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVh
cmFuY2UoKSA6IGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTEwMiw2ICsx
MDMsNyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYSwgY29uc3Qg
Q1NTUGFyc2VyQ29udGV4dCYgYikKICAgICAgICAgJiYgYS5hdHRhY2htZW50RW5hYmxlZCA9PSBi
LmF0dGFjaG1lbnRFbmFibGVkCiAjZW5kaWYKICAgICAgICAgJiYgYS5kZWZlcnJlZENTU1BhcnNl
ckVuYWJsZWQgPT0gYi5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQKKyAgICAgICAgJiYgYS5vdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAg
ICAgICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luCiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBiLnVzZVN5c3Rl
bUFwcGVhcmFuY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5oCmluZGV4IDEwODlkMjJkNDFiLi45NzJmZjNiZTZjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgYm9v
bCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgb3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5l
ZWRlZCB0byBzdXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50
U2VjdXJpdHlPcmlnaW4geyBmYWxzZSB9OwpAQCAtMTA2LDcgKzEwNyw4IEBAIHN0cnVjdCBDU1NQ
YXJzZXJDb250ZXh0SGFzaCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAg
ICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8
IDExCiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYg
a2V5Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8IDEyCisgICAg
ICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJp
dHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDVjYjg5NDViMzhmLi41ZWZlODA4
MThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ci5jcHAKQEAgLTIzMjYsNiArMjMyNiwxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlTGlzdD4g
Y29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogCiAjZW5k
aWYKIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvIHZhbHVlSUQgPSByYW5nZS5w
ZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAhPSBDU1NWYWx1ZUF1dG8gJiYgdmFsdWVJRCAh
PSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZUNvbnRhaW4pCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOworfQorCiBzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVyKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiB7CiAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1lTGVuZ3RoT3JQZXJj
ZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOwpAQCAtNDAx
NSw2ICs0MDIzLDExIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNl
U2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9sbFNuYXBUeXBl
KG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgIGlm
ICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9y
YW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVybiBjb25zdW1l
Q2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
QEAgLTU2NTgsNiArNTY3MSwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lUGxh
Y2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCiti
b29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5k
KGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9wZXJ0eShDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7CisgICAgaWYgKCFtX2Nv
bnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
UmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29uc3VtZU92ZXJzY3JvbGxC
ZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhhdmlvclgpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9y
WTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgaWYgKG1fcmFuZ2UuYXRF
bmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJzY3JvbGxCZWhhdmlvclg7
CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBjb25zdW1lT3ZlcnNj
cm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNl
KCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVoYXZpb3JY
LCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVoYXZpb3JZ
LCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1Byb3BlcnR5UGFy
c2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFu
dCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01Njk3LDYgKzU3MzksOCBAQCBib29s
IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
LCBib29sIGltcG9ydGFudCkKICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyZmxv
d1ksIENTU1Byb3BlcnR5T3ZlcmZsb3csICpvdmVyZmxvd1lWYWx1ZSwgaW1wb3J0YW50KTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xs
QmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRo
YW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6IHsKICAgICAgICAgY29u
c3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7CiAgICAgICAgIGlmICh0
b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgpIDw9IENTU1ZhbHVlU3Rh
dHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5o
CmluZGV4IDFkYzA1ZWY4OGRhLi4zZmMxNjY1MzU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApAQCAtMTA3LDYgKzEwNyw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBjb25zdW1lVHJhbnNmb3JtT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKICAgICBi
b29sIGNvbnN1bWVQZXJzcGVjdGl2ZU9yaWdpbihib29sIGltcG9ydGFudCk7CiAKKyAgICBib29s
IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworCiBw
cml2YXRlOgogICAgIC8vIElucHV0czoKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIG1fcmFuZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNmQxNDFlYWZkYWYuLjZmNTEx
YjlmNWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yODMsMTUgKzI4
MywxNSBAQCBzdGF0aWMgaW5saW5lIFNjcm9sbEdyYW51bGFyaXR5IHdoZWVsR3JhbnVsYXJpdHlU
b1Njcm9sbEdyYW51bGFyaXR5KHVuc2lnbmVkIGRlbAogICAgIH0KIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFi
bGVBcmVhLCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorc3RhdGljIGlubGluZSBib29sIGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBkb3Vi
bGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCB1bnNpZ25lZCBkZWx0YU1vZGUpCiB7Ci0gICAgU2Ny
b2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3Jv
bGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKKyAgICBTY3JvbGxHcmFudWxh
cml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdyYW51bGFy
aXR5KGRlbHRhTW9kZSk7CiAgICAgYm9vbCBkaWRIYW5kbGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0g
ICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgp
KSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xs
KHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBzY3Jv
bGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVs
dGEgPSBzdGQ6OmFicyhkZWx0YVgpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNj
cm9sbGFibGVBcmVhLT5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVm
dCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAgIGlmIChmbG9h
dCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkpCi0gICAgICAg
IGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbCh3aGVlbEV2ZW50
LmRlbHRhWSgpID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHks
IGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMo
ZGVsdGFZKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+
c2Nyb2xsKGRlbHRhWSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNjcm9sbEdyYW51bGFy
aXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVu
dDsKIH0KQEAgLTMxMCwxOCArMzEwLDIwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYW5kbGVXaGVl
bEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIFdoCiAKICAg
ICBSZW5kZXJCb3gmIGluaXRpYWxFbmNsb3NpbmdCb3ggPSBzdGFydE5vZGUtPnJlbmRlcmVyKCkt
PmVuY2xvc2luZ0JveCgpOwogICAgIGlmIChpbml0aWFsRW5jbG9zaW5nQm94LmlzTGlzdEJveCgp
KQotICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2FzdDxS
ZW5kZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoc3RhdGljX2Nhc3Q8UmVuZGVyTGlz
dEJveCo+KCZpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxF
dmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAKICAgICBSZW5kZXJCb3gq
IGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0JveDsKKyAgICBib29sIGln
bm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZID0gZmFsc2U7CiAgICAg
d2hpbGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBi
b3hMYXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1
dG8gcGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsK
ICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChw
bGF0Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRm
b3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRh
LndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0
eSk7CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNv
cHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZv
cm1EZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRh
LmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdX
YXNIYW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwogICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRp
ZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoYm94TGF5ZXIsIHdoZWVsRXZlbnQpOworICAgICAgICAg
ICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGJv
eExheWVyLCBpZ25vcmVEZWx0YVggPyAwIDogd2hlZWxFdmVudC5kZWx0YVgoKSwgaWdub3JlRGVs
dGFZID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFZKCksIHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOwog
CiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkgewogICAgICAgICAgICAgICAg
IGlmIChzdG9wRWxlbWVudCkKQEAgLTMzMyw2ICszMzUsMTcgQEAgc3RhdGljIGlubGluZSBib29s
IGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9k
ZSwgV2gKICAgICAgICAgaWYgKHN0b3BFbGVtZW50ICYmICpzdG9wRWxlbWVudCAmJiAqc3RvcEVs
ZW1lbnQgPT0gY3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAKKyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2lu
Z0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9y
OjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFp
Z25vcmVEZWx0YVkgJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVo
YXZpb3JZKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3Jl
RGVsdGFZID0gdHJ1ZTsKKyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAmJiBpZ25vcmVEZWx0YVkp
IHsKKyAgICAgICAgICAgIC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50IHdhcyBoYW5kbGVkIHNv
IHRoYXQgaXQgaXMgbm90IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9yIGZyYW1lcy4KKyAgICAg
ICAgICAgIGlmIChzdG9wRWxlbWVudCkKKyAgICAgICAgICAgICAgICAqc3RvcEVsZW1lbnQgPSBj
dXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorCiAgICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSBjdXJyZW50RW5jbG9z
aW5nQm94LT5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFjdXJyZW50RW5jbG9zaW5n
Qm94IHx8IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDQxNzdmYTc0OTA0
Li41MDdhMTQ1MjVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMzcwLDYgKzM3
MCw4IEBAIGZyYW1lRmxhdHRlbmluZzoKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQogICBvbkNoYW5nZTogc2V0TmVlZHNSZWxheW91dEFsbEZyYW1lcworb3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKIAogYXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IGRjMzBhN2UzNjgxLi5iNzZjMzBhNGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
QEAgLTUyNSw2ICs1MjUsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlELAogICAgIG5vZGUtPnNl
dENvdW50ZXJTY3JvbGxpbmdMYXllcihjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpOwogCiAgICAgaWYg
KHNjcm9sbGluZ0dlb21ldHJ5KSB7CisgICAgICAgIG5vZGUtPnNldEhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3Ioc2Nyb2xsaW5nR2VvbWV0cnktPmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3IpOworICAgICAgICBub2RlLT5zZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcihzY3JvbGxp
bmdHZW9tZXRyeS0+dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOwogICAgICAgICBub2RlLT5z
ZXRQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KHNjcm9sbGluZ0dlb21ldHJ5LT5wYXJlbnRS
ZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKICAgICAgICAgbm9kZS0+c2V0U2Nyb2xsT3JpZ2luKHNj
cm9sbGluZ0dlb21ldHJ5LT5zY3JvbGxPcmlnaW4pOwogICAgICAgICBub2RlLT5zZXRTY3JvbGxQ
b3NpdGlvbihzY3JvbGxpbmdHZW9tZXRyeS0+c2Nyb2xsUG9zaXRpb24pOwpAQCAtNTQ1LDYgKzU0
Nyw4IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlKFNjcm9sbGluZ05vZGVJRCBub2RlCiAgICAgbm9kZS0+c2V0U2Nyb2xsZWRDb250
ZW50c0xheWVyKHNjcm9sbGVkQ29udGVudHNMYXllcik7CiAgICAgCiAgICAgaWYgKHNjcm9sbGlu
Z0dlb21ldHJ5KSB7CisgICAgICAgIG5vZGUtPnNldEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3Ioc2Nyb2xsaW5nR2VvbWV0cnktPmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAg
ICAgICBub2RlLT5zZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcihzY3JvbGxpbmdHZW9tZXRy
eS0+dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOwogICAgICAgICBub2RlLT5zZXRQYXJlbnRS
ZWxhdGl2ZVNjcm9sbGFibGVSZWN0KHNjcm9sbGluZ0dlb21ldHJ5LT5wYXJlbnRSZWxhdGl2ZVNj
cm9sbGFibGVSZWN0KTsKICAgICAgICAgbm9kZS0+c2V0U2Nyb2xsT3JpZ2luKHNjcm9sbGluZ0dl
b21ldHJ5LT5zY3JvbGxPcmlnaW4pOwogICAgICAgICBub2RlLT5zZXRTY3JvbGxQb3NpdGlvbihz
Y3JvbGxpbmdHZW9tZXRyeS0+c2Nyb2xsUG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYTUwMzNiN2Mz
ZDQuLmVjNzllZTFiNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTE3Myw2ICsxNzMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZU5vZGVWaWV3cG9ydENvbnN0cmFpbnRzKFNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgVmlld3BvcnRDb25zdHJhaW50cyYpIHsgfQogCiAgICAgc3RydWN0IFNjcm9s
bGluZ0dlb21ldHJ5IHsKKyAgICAgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OiBBdXRvIH07CisgICAgICAgIE92
ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxC
ZWhhdmlvcjo6IEF1dG8gfTsKICAgICAgICAgTGF5b3V0UmVjdCBwYXJlbnRSZWxhdGl2ZVNjcm9s
bGFibGVSZWN0OwogICAgICAgICBGbG9hdFNpemUgc2Nyb2xsYWJsZUFyZWFTaXplOwogICAgICAg
ICBGbG9hdFNpemUgY29udGVudFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCAx
NTMzNjJiYjE5OC4uOTcyOGNjYWI4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAt
NTEsNiArNTEsOCBAQCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogICAgICwgbV9zbmFwT2Zmc2V0
c0luZm8oc3RhdGVOb2RlLm1fc25hcE9mZnNldHNJbmZvKQogI2VuZGlmCiAgICAgLCBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVycyhzdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkp
CisgICAgLCBtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Ioc3RhdGVOb2RlLmhvcml6b250
YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSkKKyAgICAsIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3Ioc3RhdGVOb2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpCiAgICAgLCBtX3JlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbChzdGF0ZU5vZGUu
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkpCiAg
ICAgLCBtX2V4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIoc3RhdGVOb2RlLmV4cGVjdHNXaGVl
bEV2ZW50VGVzdFRyaWdnZXIoKSkKIHsKQEAgLTg3LDYgKzg5LDI0IEBAIHZvaWQgU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZWFjaGFibGVDb250ZW50c1NpemUoY29uc3QgRmxvYXRT
aXplJiByZWFjCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlYWNoYWJsZUNvbnRlbnRzU2l6ZSk7
CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRIb3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAo
bV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IGJlaGF2aW9yKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAg
ICBzZXRQcm9wZXJ0eUNoYW5nZWQoSG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7Cit9CisK
K3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRWZXJ0aWNhbE92ZXJzY3JvbGxC
ZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IpCit7CisgICAgaWYgKG1fdmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0gYmVoYXZpb3IpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgICBzZXRQcm9wZXJ0
eUNoYW5nZWQoVmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworfQorCiB2b2lkIFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdChjb25z
dCBMYXlvdXRSZWN0JiBwYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KQogewogICAgIGlmICht
X3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QgPT0gcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxl
UmVjdCkKQEAgLTI0MSw2ICsyNjEsMTIgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBp
ZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwp
CiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXBy
ZXNlbnRzIHByb2dyYW1tYXRpYyBzY3JvbGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKKyAgICBpZiAobV9ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgdHMuZHVt
cFByb3BlcnR5KCJob3Jpem9udGFsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxp
bnQ+KG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikpOworCisgICAgaWYgKG1fdmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAg
ICB0cy5kdW1wUHJvcGVydHkoInZlcnRpY2FsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNf
Y2FzdDxpbnQ+KG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKTsKKwogICAgIGlmICghbV9w
YXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUgc2Nyb2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2
ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA3ZGU3MzdiNjQ4
Ny4uOGExMWFiMGE1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC00Miw2ICs0Miw4IEBA
IHB1YmxpYzoKICAgICAgICAgU2Nyb2xsYWJsZUFyZWFTaXplID0gTnVtU3RhdGVOb2RlQml0cywK
ICAgICAgICAgVG90YWxDb250ZW50c1NpemUsCiAgICAgICAgIFJlYWNoYWJsZUNvbnRlbnRzU2l6
ZSwKKyAgICAgICAgSG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciwKKyAgICAgICAgVmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IsCiAgICAgICAgIFBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJl
Y3QsCiAgICAgICAgIFNjcm9sbFBvc2l0aW9uLAogICAgICAgICBTY3JvbGxPcmlnaW4sCkBAIC02
OSw2ICs3MSwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRTaXplJiByZWFjaGFibGVDb250
ZW50c1NpemUoKSBjb25zdCB7IHJldHVybiBtX3JlYWNoYWJsZUNvbnRlbnRzU2l6ZTsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVhY2hhYmxlQ29udGVudHNTaXplKGNvbnN0IEZsb2F0
U2l6ZSYpOwogCisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2aW9yJiBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIb3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlvcik7CisKKyAgICBjb25zdCBPdmVyc2Nyb2xsQmVoYXZp
b3ImIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IoT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKwogICAgIGNvbnN0IExh
eW91dFJlY3QmIHBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3Q7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QoY29uc3QgTGF5b3V0UmVjdCYpOwogCkBA
IC0xMzMsNiArMTQxLDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIFNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKICAgICBMYXllclJlcHJlc2VudGF0
aW9uIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyOworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBtX2hv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8gfTsK
KyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92
ZXJzY3JvbGxCZWhhdmlvcjo6QXV0byB9OwogICAgIGJvb2wgbV9yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9l
eHBlY3RzV2hlZWxFdmVudFRlc3RUcmlnZ2VyIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHAKaW5kZXggNzRhODczZGRlNDAuLjQzMTU4ZjVkNTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQogCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFN0cmVhbS5oPgpAQCAtNjMsNiArNjQsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdT
dGF0ZU4KICAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRpb24pKQogICAgICAgICBtX2xhc3RDb21taXR0ZWRTY3Jv
bGxQb3NpdGlvbiA9IHN0YXRlLnNjcm9sbFBvc2l0aW9uKCk7CiAKKyAgICBpZiAoc3RhdGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92
ZXJzY3JvbGxCZWhhdmlvcikpCisgICAgICAgIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
ciA9IHN0YXRlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKworICAgIGlmIChzdGF0
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvcikpCisgICAgICAgIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IgPSBzdGF0ZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworCiAgICAgaWYgKHN0YXRl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlBhcmVudFJl
bGF0aXZlU2Nyb2xsYWJsZVJlY3QpKQogICAgICAgICBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3QgPSBzdGF0ZS5wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCk7CiAKQEAgLTE0Myw2
ICsxNTAsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRp
ZXMoVGV4dFN0cmVhbSYgdHMsIFNjcm9sbGluZ1N0YXRlVHIKICAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJyZWFjaGFibGUgY29udGVudCBzaXplIiwgbV9yZWFjaGFibGVDb250ZW50c1NpemUpOwog
ICAgIHRzLmR1bXBQcm9wZXJ0eSgibGFzdCBjb21taXR0ZWQgc2Nyb2xsIHBvc2l0aW9uIiwgbV9s
YXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24pOwogCisgICAgaWYgKG1faG9yaXpvbnRhbE92ZXJz
Y3JvbGxCZWhhdmlvciAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgIHRzLmR1
bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbCBvdmVyc2Nyb2xsIGJlaGF2aW9yIiwgc3RhdGljX2Nhc3Q8
aW50PihtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKTsKKworICAgIGlmIChtX3ZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAg
ICAgdHMuZHVtcFByb3BlcnR5KCJ2ZXJ0aWNhbCBvdmVyc2Nyb2xsIGJlaGF2aW9yIiwgc3RhdGlj
X2Nhc3Q8aW50PihtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSk7CisKICAgICBpZiAoIW1f
cGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRp
dmVTY3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGY2ZGU3ODMwMzc0
Li44NWZiNzUxZjg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC04Nyw2ICs4Nyw4IEBAIHBy
b3RlY3RlZDoKICAgICBjb25zdCBGbG9hdFNpemUmIHNjcm9sbGFibGVBcmVhU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFTaXplOyB9CiAgICAgY29uc3QgRmxvYXRTaXplJiB0
b3RhbENvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxDb250ZW50c1NpemU7IH0K
ICAgICBjb25zdCBGbG9hdFNpemUmIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVhY2hhYmxlQ29udGVudHNTaXplOyB9CisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2
aW9yJiBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOyB9CisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2aW9y
JiB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxP
dmVyc2Nyb2xsQmVoYXZpb3I7IH0KICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYXJlbnRSZWxhdGl2
ZVNjcm9sbGFibGVSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFi
bGVSZWN0OyB9CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CiAKQEAgLTEyMCw2ICsxMjIsOCBAQCBwcml2YXRlOgogICAg
IHVuc2lnbmVkIG1fY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXggeyAwIH07CiAjZW5kaWYK
ICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7
CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciB7
IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBtX3Zl
cnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaAppbmRleCAzM2YzOGMzMTE2OC4uY2RmMmRjZGQ3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVHlwZXMuaApAQCAtMzEsNiArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8g
PSAwLAorICAgIENvbnRhaW4sCisgICAgTm9uZQorfTsKKwogZW51bSBTY3JvbGxEaXJlY3Rpb24g
OiB1aW50OF90IHsKICAgICBTY3JvbGxVcCwKICAgICBTY3JvbGxEb3duLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBlMDEx
MjU1OTlmZS4uZGZhNjg1MDU4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0zODU4LDEwICszODU4LDIyIEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkZXRhY2hTY3JvbGxDb29yZGluYXRlZExheWVyKFJlbmRl
ckxheWVyJiBsYXllciwgT3B0CiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Ny
b2xsQ29vcmRpbmF0aW9uRm9yVGhpc0ZyYW1lKFNjcm9sbGluZ05vZGVJRCBwYXJlbnROb2RlSUQp
CiB7CiAgICAgYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29y
ZGluYXRvcigpOwotICAgIEFTU0VSVChzY3JvbGxpbmdDb29yZGluYXRvci0+Y29vcmRpbmF0ZXNT
Y3JvbGxpbmdGb3JGcmFtZVZpZXcobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKSk7CisgICAgRnJh
bWVWaWV3JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CisgICAgQVNTRVJU
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhm
cmFtZVZpZXcpKTsKIAogICAgIFNjcm9sbGluZ05vZGVJRCBub2RlSUQgPSBhdHRhY2hTY3JvbGxp
bmdOb2RlKCptX3JlbmRlclZpZXcubGF5ZXIoKSwgbV9yZW5kZXJWaWV3LmZyYW1lKCkuaXNNYWlu
RnJhbWUoKSA/IE1haW5GcmFtZVNjcm9sbGluZ05vZGUgOiBTdWJmcmFtZVNjcm9sbGluZ05vZGUs
IHBhcmVudE5vZGVJRCk7Ci0gICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnVwZGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZShub2RlSUQsIG1fc2Nyb2xsTGF5ZXIuZ2V0KCksIG1fcm9vdENvbnRlbnRMYXll
ci5nZXQoKSwgZml4ZWRSb290QmFja2dyb3VuZExheWVyKCksIGNsaXBMYXllcigpKTsKKyAgICBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsaW5nR2VvbWV0cnkgc2Nyb2xsaW5nR2VvbWV0cnk7
CisgICAgc2Nyb2xsaW5nR2VvbWV0cnkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9IG1f
cmVuZGVyVmlldy5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKKyAgICBzY3JvbGxpbmdH
ZW9tZXRyeS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9IG1fcmVuZGVyVmlldy5zdHlsZSgp
Lm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKKyAgICBzY3JvbGxpbmdHZW9tZXRyeS5zY3JvbGxPcmln
aW4gPSBmcmFtZVZpZXcuc2Nyb2xsT3JpZ2luKCk7CisgICAgc2Nyb2xsaW5nR2VvbWV0cnkuc2Ny
b2xsYWJsZUFyZWFTaXplID0gZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKTsK
KyAgICBzY3JvbGxpbmdHZW9tZXRyeS5jb250ZW50U2l6ZSA9IGZyYW1lVmlldy50b3RhbENvbnRl
bnRzU2l6ZSgpOworICAgIHNjcm9sbGluZ0dlb21ldHJ5LnJlYWNoYWJsZUNvbnRlbnRTaXplID0g
ZnJhbWVWaWV3LnRvdGFsQ29udGVudHNTaXplKCk7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05B
UCkKKyAgICBmcmFtZVZpZXcudXBkYXRlU25hcE9mZnNldHMoKTsKKyAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+dXBkYXRlU2Nyb2xsU25hcFByb3BlcnRpZXNXaXRoRnJhbWVWaWV3KGZyYW1lVmll
dyk7CisjZW5kaWYKKyAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+dXBkYXRlRnJhbWVTY3JvbGxp
bmdOb2RlKG5vZGVJRCwgbV9zY3JvbGxMYXllci5nZXQoKSwgbV9yb290Q29udGVudExheWVyLmdl
dCgpLCBmaXhlZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoKSwgY2xpcExheWVyKCksICZzY3JvbGxpbmdH
ZW9tZXRyeSk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxD
b29yZGluYXRlZExheWVyKFJlbmRlckxheWVyJiBsYXllciwgT3B0aW9uU2V0PExheWVyU2Nyb2xs
Q29vcmRpbmF0aW9uUm9sZT4gcmVhc29ucywgT3B0aW9uU2V0PFNjcm9sbGluZ05vZGVDaGFuZ2VG
bGFncz4gY2hhbmdlcykKQEAgLTM5NDUsNiArMzk1Nyw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVyKFJlbmRlckxheWVyJiBsYXllciwg
T3B0CiAgICAgICAgICAgICBzY3JvbGxpbmdHZW9tZXRyeS5zY3JvbGxhYmxlQXJlYVNpemUgPSBs
YXllci52aXNpYmxlU2l6ZSgpOwogICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnkuY29udGVu
dFNpemUgPSBsYXllci5jb250ZW50c1NpemUoKTsKICAgICAgICAgICAgIHNjcm9sbGluZ0dlb21l
dHJ5LnJlYWNoYWJsZUNvbnRlbnRTaXplID0gbGF5ZXIuc2Nyb2xsYWJsZUNvbnRlbnRzU2l6ZSgp
OworICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvciA9IGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCk7Cisg
ICAgICAgICAgICBzY3JvbGxpbmdHZW9tZXRyeS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9
IGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCk7CiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkKICAgICAgICAgICAgIGlmIChjb25zdCBWZWN0b3I8TGF5b3V0
VW5pdD4qIG9mZnNldHMgPSBsYXllci5ob3Jpem9udGFsU25hcE9mZnNldHMoKSkKICAgICAgICAg
ICAgICAgICBzY3JvbGxpbmdHZW9tZXRyeS5ob3Jpem9udGFsU25hcE9mZnNldHMgPSAqb2Zmc2V0
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
ZGJhYWYwYzc2M2UuLmFiZDhjZWI0M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdS
ZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hhZG93
RGF0YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJhY2tncm91
bmREYXRhLmgiCkBAIC0zMzksNiArMzQwLDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJm
bG93SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxv
d0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNp
YmxlKCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwg
b3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhh
dmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3Zl
cnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZp
b3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkg
dmlzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5o
ZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxp
Z24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVy
aXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTUsNiArODk5LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdz
Lm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92
ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JY
KE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwg
b3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZv
aWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFS
KG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0
PHVuc2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7
IG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsg
fQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhl
cml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAg
ICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0
aWNhbEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3Zl
cnRpY2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NDgsNiArMTQ1NCw5IEBAIHB1
YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAg
c3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6Vmlz
aWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4g
T3ZlcmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRp
YWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
OyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2
aW9yWSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGlj
IENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGlj
IERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGlu
ZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1
cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBhMzEyYmRhZWJkNS4u
ZGJiNmVkYTJiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTYwLDYgKzYwLDggQEAg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAg
ICAgLCBzY3JvbGxTbmFwUG9ydChTdHlsZVNjcm9sbFNuYXBQb3J0OjpjcmVhdGUoKSkKICAgICAs
IHNjcm9sbFNuYXBBcmVhKFN0eWxlU2Nyb2xsU25hcEFyZWE6OmNyZWF0ZSgpKQogI2VuZGlmCisg
ICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHls
ZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSkpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZp
b3JZKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxC
ZWhhdmlvclkoKSkpCiAgICAgLCB3aWxsQ2hhbmdlKFJlbmRlclN0eWxlOjppbml0aWFsV2lsbENo
YW5nZSgpKQogICAgICwgbWFzayhGaWxsTGF5ZXJUeXBlOjpNYXNrKQogICAgICwgb2JqZWN0UG9z
aXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxPYmplY3RQb3NpdGlvbigpKQpAQCAtMTM3LDYgKzEz
OSw4IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBzY3JvbGxTbmFwUG9ydChvLnNj
cm9sbFNuYXBQb3J0KQogICAgICwgc2Nyb2xsU25hcEFyZWEoby5zY3JvbGxTbmFwQXJlYSkKICNl
bmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChvLm92ZXJzY3JvbGxCZWhhdmlvclgpCisg
ICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWSkKICAgICAsIGNv
bnRlbnQoby5jb250ZW50ID8gby5jb250ZW50LT5jbG9uZSgpIDogbnVsbHB0cikKICAgICAsIGNv
dW50ZXJEaXJlY3RpdmVzKG8uY291bnRlckRpcmVjdGl2ZXMgPyBzdGQ6Om1ha2VfdW5pcXVlPENv
dW50ZXJEaXJlY3RpdmVNYXA+KCpvLmNvdW50ZXJEaXJlY3RpdmVzKSA6IG51bGxwdHIpCiAgICAg
LCBhbHRUZXh0KG8uYWx0VGV4dCkKQEAgLTI0MCw2ICsyNDQsOCBAQCBib29sIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YSYgbykgYwogICAgICAgICAmJiBzY3JvbGxTbmFwUG9ydCA9PSBvLnNjcm9sbFNuYXBQb3J0CiAg
ICAgICAgICYmIHNjcm9sbFNuYXBBcmVhID09IG8uc2Nyb2xsU25hcEFyZWEKICNlbmRpZgorICAg
ICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JYID09IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWAorICAg
ICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JZID09IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWQogICAg
ICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgYXJlUG9pbnRpbmdU
b0VxdWFsRGF0YShjb3VudGVyRGlyZWN0aXZlcywgby5jb3VudGVyRGlyZWN0aXZlcykKICAgICAg
ICAgJiYgYWx0VGV4dCA9PSBvLmFsdFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IGY5YmFh
MTQyMzA1Li43YzExMmNkODBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xMjgsNiArMTI4
LDkgQEAgcHVibGljOgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxTbmFwQXJlYT4gc2Nyb2xsU25h
cEFyZWE7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclggOiAyOyAv
LyBPdmVyc2Nyb2xsQmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JZIDog
MjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERh
dGE+IGNvbnRlbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJEaXJlY3RpdmVNYXA+IGNv
dW50ZXJEaXJlY3RpdmVzOwogICAgIFN0cmluZyBhbHRUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDhkMmQxOGMwOTZl
Li5jODdhZDAzNTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmNwcApAQCAtMTE5LDYgKzExOSw4IEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFNjcm9sbGluZ1N0YXRl
Tm9kZSY+KG5vZGUpOwogICAgIAorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERV9FTlVNKFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciwgaG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikKKyAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREVfRU5V
TShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
LCB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcikKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUo
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVNpemUsIHNjcm9sbGFi
bGVBcmVhU2l6ZSkKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSwgdG90YWxDb250ZW50c1NpemUpCiAgICAgU0NS
T0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVhY2hhYmxl
Q29udGVudHNTaXplLCByZWFjaGFibGVDb250ZW50c1NpemUpCkBAIC0xOTMsNiArMTk1LDggQEAg
Ym9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGwKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpY19j
YXN0PFNjcm9sbGluZ1N0YXRlTm9kZSY+KG5vZGUpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgU0NST0xMSU5HX05PREVfREVDT0RFX0VOVU0oU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yLCBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVo
YXZpb3IsIHNldEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgIFNDUk9MTElOR19O
T0RFX0RFQ09ERV9FTlVNKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IsIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvciwgc2V0VmVydGljYWxP
dmVyc2Nyb2xsQmVoYXZpb3IpOwogICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhU2l6ZSwgRmxvYXRTaXplLCBzZXRTY3Jv
bGxhYmxlQXJlYVNpemUpOwogICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplLCBGbG9hdFNpemUsIHNldFRvdGFsQ29u
dGVudHNTaXplKTsKICAgICBTQ1JPTExJTkdfTk9ERV9ERUNPREUoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUsIEZsb2F0U2l6ZSwgc2V0UmVhY2hhYmxl
Q29udGVudHNTaXplKTsKQEAgLTQ1Niw2ICs0NjAsMTIgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogCiBz
dGF0aWMgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUmIG5vZGUsIGJvb2wgY2hhbmdlZFByb3BlcnRpZXNPbmx5KQogeworICAgIGlmICgh
Y2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikpCisgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbC1vdmVyc2Nyb2xsLWJlaGF2aW9yIiwgc3Rh
dGljX2Nhc3Q8aW50Pihub2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSkpOworCisg
ICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcikp
CisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWwtb3ZlcnNjcm9sbC1iZWhhdmlvciIs
IHN0YXRpY19jYXN0PGludD4obm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpKSk7CisK
ICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhU2l6ZSkpCiAgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsYWJsZS1hcmVhLXNpemUiLCBub2RlLnNjcm9sbGFi
bGVBcmVhU2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAppbmRleCAwOTA5YjRkMTljYS4uYmY1ZDgwZjI3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZz
ZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KQEAgLTc0
OCw2ICs3NDksMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpT
ZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZp
b3IsCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAgIFdlYkNvcmU6
Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVo
YXZpb3I6Ok5vbmUKKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpDb2xvclNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAg
ICBXZWJDb3JlOjpDb2xvclNwYWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwKaW5kZXggNmU2ODM2YjBhNDMuLmJjNDE3OGY0ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyMzMsNiArMTIzMywxMyBAQCBQb2ludGVyRXZl
bnRzRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAg
Y2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAogCitPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICB0
eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJD
U1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NT
IE92ZXJzY3JvbGwgQmVoYXZpb3IgcHJvdG90eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFs
CisKIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVs
dFZhbHVlOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDNkNDA2MGY4MDI2Li5hODBiZmQ4ZTNk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMTYzLDYgKzE2Myw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0
IFNjcm9sCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2UobV91cGRhdGlu
Z0Zyb21TdGF0ZU5vZGUsIHRydWUpOwogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsTGF5ZXIpCisg
ICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKQorICAgICAg
ICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpCiAgICAgICAgIHx8IHNj
cm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlYWNoYWJs
ZUNvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbFBvc2l0aW9uKQpAQCAt
MTcxLDYgKzE3MywyNCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogICAgICAgICBVSVNjcm9s
bFZpZXcgKnNjcm9sbFZpZXcgPSAoVUlTY3JvbGxWaWV3ICopW3Njcm9sbExheWVyKCkgZGVsZWdh
dGVdOwogICAgICAgICBBU1NFUlQoW3Njcm9sbFZpZXcgaXNLaW5kT2ZDbGFzczpbVUlTY3JvbGxW
aWV3IHNlbGZdXSk7CiAKKyAgICAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzQzMTU5OTcp
OiBVSVNjcm9sbFZpZXcgc2hvdWxkIGhhdmUgc29tZSBraW5kIG9mIHN1cHBvcnQgZm9yIG92ZXJz
Y3JvbGwtYmVoYXZpb3IgdG8gZW5hYmxlL2Rpc2FibGU6CisgICAgICAgIC8vIC0gbm9uLWxvY2Fs
IGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBzY3JvbGwgY2hhaW5pbmcpLgorICAgICAg
ICAvLyAtIGxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBib3VuY2luZykuCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgLy8gaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3Zl
cnNjcm9sbEJlaGF2aW9ySG9yaXpvbnRhbCA9IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9t
V2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpKTsKKyAgICAgICAgLy8gaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvcikpCisgICAgICAgIC8vICAgICBzY3JvbGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlvclZlcnRp
Y2FsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNjcm9sbGlu
Z1N0YXRlTm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpKTsKKyNlbmRpZgorICAgICAg
ICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcgd2hlbiBib3RoIG92ZXJmbG93
LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8vIFVJU2Nyb2xsVmlldzo6YWx3
YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4KKyAgICAgICAgaWYgKHNjcm9s
bGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKQorICAgICAgICAgICAgfHwgc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkgeworICAgICAgICAgICAgc2Nyb2xsVmll
dy5ib3VuY2VzID0gc2Nyb2xsaW5nU3RhdGVOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgICYmIHNjcm9sbGlu
Z1N0YXRlTm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhh
dmlvcjo6Tm9uZQorICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6U2Nyb2xsTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xs
Vmlld0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0gYWRv
cHROUyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhT
Y3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4
IGI3M2Y2Y2I2ODMwLi40Nzg3MGMwMDA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xODIs
NiArMTgyLDcgQEAKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1
YWxWaWV3cG9ydEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKICNkZWZpbmUg
V2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9k
ZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDdlMWNm
YzFiMWUyLi5lY2UwYzdhYzUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NTYsNiArNjU2LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAKKyAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VL
ZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6WUVTXSwgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVp
cmtLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdEFsbG93
Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzS2V5LApAQCAtMzA5Nyw2
ICszMDk4LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKW92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTpmbGFnIGZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtl
eV07Cit9CisKIC0gKEJPT0wpQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZAogewogICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDIwYjMzNDI5NTEwLi4xODYx
NTNkYmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC01ODcsNiArNTg3LDcgQEAgZXh0ZXJuIE5TU3Ry
aW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24g
V0VCS0lUX0RFUFIKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRF
bmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0Vu
YWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5bmNEZWNv
ZGluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggODkzZmEwOGNjZjkuLmZjMmMwMmQwYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yOTU0LDYgKzI5NTQsNyBAQCBzdGF0aWMgYm9vbCBu
ZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAKICAgICBzZXR0aW5ncy5zZXRWaXN1
YWxWaWV3cG9ydEVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0RW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlz
dWFsVmlld3BvcnRBUElFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZChbcHJlZmVyZW5jZXMgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRNZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChbcHJlZmVyZW5jZXMgbWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRdKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5p
ZGwKaW5kZXggMTk4ODJjZGQwZjAuLjdjODY0YmRlYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwKQEAgLTIyMSw2ICsyMjEsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTYgOiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNQogICAgIEhSRVNVTFQgc2V0SW5zcGVjdG9yQWRk
aXRpb25zRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCB2aXN1YWxWaWV3
cG9ydEFQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRWaXN1
YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgb3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxU
IHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhS
RVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsK
ICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2luXSBCT09MIGVu
YWJsZWQpOwogICAgIEhSRVNVTFQgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKFtvdXQsIHJldHZh
bF0gQk9PTCogZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDk0MGQ1Y2Y1NWQxLi4xNDRiZTAxZDEzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKQEAgLTIwNCw1ICsyMDQsNiBAQAogCiAjZGVmaW5lIFdlYktpdFNlcnZlclRpbWluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogCisjZGVmaW5lIFdl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDU5YmUw
YzQ0M2Y0Li5lNTVkMWYyNzJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZl
cmVuY2VzLmNwcApAQCAtMzI2LDYgKzMyNiw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRp
YWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVs
dHMsIENGU1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBr
Q0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENG
U1RSKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9v
bGVhbkZhbHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5GYWxzZSk7CiAKICAgICBkZWZhdWx0U2V0dGluZ3MgPSBkZWZhdWx0czsKQEAgLTIxODQsNiAr
MjE4NiwyMCBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRWaXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQoQk9PTCBlbmFibGVkKQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlBy
ZWZlcmVuY2VzOjpvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQp
Cit7CisgICAgaWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICpl
bmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQ
cmVmZXJlbmNlS2V5KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJl
bmNlczo6c2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAg
c2V0Qm9vbFZhbHVlKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5
LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJQcmVmZXJlbmNl
czo6Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQogewog
ICAgIGlmICghZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5o
CmluZGV4IDNjZTQ0ODViOGEwLi5kNGJlOTBmNDJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNjksNiArMjY5LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVk
KEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB2aXN1YWxWaWV3
cG9ydEFQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CisgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091
dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
ZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKaW5kZXggYWNhZDg0ZWRhZmYuLjFlZDc5ZGI5NjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTI3OCw2ICs1Mjc4LDExIEBAIEhSRVNVTFQgV2ViVmll
dzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
bikKICAgICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1ByaXZhdGUtPm92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICBy
ZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCghIWVu
YWJsZWQpOworCiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPkNTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggODFiMjQ4N2IyMzMuLmUxMTFm
MmQwMmM5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC0xMDksNiArMTA5
LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JV
UkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAgICAgICAgICAgIGpzY09wdGlvbnMgPSB2
YWx1ZTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxl
ZCIpCiAgICAgICAgICAgICBlbmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFs
dWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlv
ciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIHBhaXJTdGFy
dCA9IHBhaXJFbmQgKyAxOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmlu
ZGV4IDhhZWRiOTQ2NDE3Li45ZmRkMDU2YTBhMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5oCkBAIC00NSw2ICs0NSw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFi
bGVDb2xvckZpbHRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVTZWxlY3Rpb25BY3Jvc3NT
aGFkb3dCb3VuZGFyaWVzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViR1BVIHsgZmFsc2Ug
fTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciB7IGZhbHNlIH07CiAgICAgc3Rk
OjpzdHJpbmcganNjT3B0aW9uczsKIAogICAgIFRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaW5n
JiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHV0ZVBhdGgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDVkZTYxMmM1OWYzLi5hNzAx
Y2RjZTA1OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpA
QCAtMTAxMSw2ICsxMDExLDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0
T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5jb2xv
ckZpbHRlckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvbG9yRmlsdGVyOwogICAgIHByZWZlcmVu
Y2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkID0gb3B0aW9ucy5lbmFi
bGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzOwogICAgIHByZWZlcmVuY2VzLndlYkdQ
VUVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVdlYkdQVTsKKyAgICBwcmVmZXJlbmNlcy5vdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkID0gb3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiB9
CiAKIC8vIENhbGxlZCBvbmNlIG9uIER1bXBSZW5kZXJUcmVlIHN0YXJ0dXAuCi0tIAoyLjE5LjEK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356505</attachid>
            <date>2018-12-04 09:16:44 -0800</date>
            <delta_ts>2019-09-05 11:17:49 -0700</delta_ts>
            <desc>Patch (applies on top of bug 192358)</desc>
            <filename>0002-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>54153</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA4ODAyMmY4OWM2ODRkZmVkMWY2YTQ5ZGU1YzUwMTY3M2Y0MzQ3ZWRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDI5IE5vdiAyMDE4IDE1OjA5OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
IDIvMl0gQnVnIDE3NjQ1NCAtIEltcGxlbWVudCBDU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvcgoKLS0t
CiAuLi4vY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgICAgICAgfCAgOCArKysr
CiAuLi4vV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICAgfCAzNyArKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uICAgICAg
ICAgfCA0MCArKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4gICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwICAgICAgICB8ICA2ICsrKwogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcCAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmggIHwgIDQgKy0KIC4uLi9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwICB8IDQ0ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuaCB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCAgICAgICAgICB8IDMxICsrKysrKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbCAgICAgICAgICAgICB8ICAyICsKIC4uLi9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAgICB8ICA0ICsrCiAuLi4vcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCAgICAgfCAgMiArCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZS5jcHAgfCAyNiArKysrKysrKysrKwogLi4uL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCAgIHwgMTAgKysrKysKIC4uLi9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwICB8IDEzICsrKysrKwogLi4uL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oICAgIHwgIDQgKysKIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFR5cGVzLmggICAgICAgICB8ICA2ICsrKwogLi4uL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwICAgICAgIHwgIDQgKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oICB8ICA5ICsrKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcCAgICAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCAgICAgICAgIHwgIDMgKysKIC4uLi9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmNwcCB8IDEwICsrKysrCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAgfCAxMCArKysrKwogU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbCAgICAgIHwgIDcgKysrCiAuLi4vU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSAgfCAyMCArKysrKysrKysKIC4uLi9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICB8ICAxICsKIC4uLi9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSAgICAgICAgICAgICB8IDExICsrKysrCiAuLi4vbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmggICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0gICAgfCAgMSArCiAuLi4vd2luL0ludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5pZGwgfCAgMiArCiAuLi4vd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAgICAgfCAxNiArKysrKysrCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5oICAgICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcCAgICAgICAgICAgfCAgNSArKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcCAgICAgICAgICB8ICAyICsKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgg
ICAgICAgICAgICB8ICAxICsKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbSAgICB8ICAxICsKIDM4IGZpbGVzIGNoYW5nZWQsIDM0NyBpbnNlcnRpb25zKCspLCAxMCBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCmluZGV4IGYxYjUwZmJhNmQ5Li44NTBhOTc4ZDcxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTE5MCw2ICsxOTAsOCBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRlZFByb3Bl
cnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eU91dGxpbmVXaWR0aCwKICAgICBDU1NQcm9wZXJ0
eU92ZXJmbG93V3JhcCwKICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93WCwKKyAgICBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclgsCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZ
LAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dZLAogICAgIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRv
bSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0LApAQCAtMzMwMSw2ICszMzAzLDEyIEBAIFJl
ZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eWlu
U3R5bGUoY29uc3QgUmVuZGVyU3R5CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJmbG93WToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5
bGUub3ZlcmZsb3dZKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdGQ6Om1h
eChzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCksIHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclko
KSkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAg
ICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcnNjcm9sbEJl
aGF2aW9yWCgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6
CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJz
Y3JvbGxCZWhhdmlvclkoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgog
ICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBhZGRpbmdPck1hcmdpblBpeGVsVmFsdWU8
JlJlbmRlclN0eWxlOjpwYWRkaW5nVG9wLCAmUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVk
Q1NTUGFkZGluZ1RvcD4oc3R5bGUsIHJlbmRlcmVyKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdSaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oCmluZGV4IGM5NWZmNjVhODM1Li4wN2RmOGEwNzJhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiTGluZUNsYW1wVmFsdWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0
YW50cy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlRGVmcy5oIgorI2luY2x1ZGUgIlNjcm9s
bFR5cGVzLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVkZSAiVGhlbWVUeXBlcy5o
IgogI2luY2x1ZGUgIlVuaWNvZGVCaWRpLmgiCkBAIC0yMjA0LDYgKzIyMDUsNDIgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93KCkgY29uc3QK
ICAgICByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7CiB9CiAKK3RlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyc2Nyb2xsQmVoYXZpb3IgZSkK
KyAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQoreworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CisgICAgc3dpdGNoIChlKSB7CisgICAgY2FzZSBPdmVyc2Nyb2xs
QmVoYXZpb3I6OkNvbnRhaW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29u
dGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworCisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKKyAgICAgICAgcmV0dXJu
IE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAg
ICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKKyAgICBjYXNlIENTU1ZhbHVl
QXV0bzoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworfQorCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQnJlYWtCZXR3ZWVuIGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydGllcy5qc29uCmluZGV4IGZlMDEyYmE0YjIyLi4zYmFiOWI4N2E1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCkBAIC0zMDUzLDYgKzMwNTMsNDYgQEAKICAgICAgICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJv
cGRlZi1vdmVyZmxvdy15IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CisgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteCIsCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkiCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlv
ci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yIgorICAgICAgICAgICAgfQorICAgICAgICB9
LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci14IjogeworICAgICAgICAgICAgInZhbHVl
cyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUi
LAorICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJz
dGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAg
ICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8j
cHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXgiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIs
CisgICAgICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInN0
YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNw
cm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwK
ICAgICAgICAgInBhZGRpbmciOiB7CiAgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjog
ewogICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCmluZGV4IDg2YjVlNTkxNGY0Li4xNjIyMTY3MzFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzNTcsNiArMTM1Nyw5IEBAIHNjcm9sbC1w
b3NpdGlvbgogbWFuaXB1bGF0aW9uCiAjZW5kaWYKIAorLy8gb3ZlcnNjcm9sbC1iZWhhdmlvcgor
Ly8gY29udGFpbgorCiAvLyBoYW5naW5nLXB1bmN0dWF0aW9uCiBhbGxvdy1lbmQKIGZpcnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IDVhY2I0OGY5MTFhLi5hMTc5
MDdmZGI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTIwNyw2
ICsyMDcsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKICAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZh
bHVlKHdlYmtpdE1hcmdpbkNvbGxhcHNlU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuIGdldENvbW1vblZhbHVlKG92ZXJmbG93U2hvcnRo
YW5kKCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAg
IHJldHVybiBnZXRDb21tb25WYWx1ZShvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoKSk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBh
ZGRpbmdTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb246CkBAIC0x
MDA1LDYgKzEwMDcsMTAgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6YXNUZXh0KCkgY29uc3QK
ICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICAgICAg
c2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZsb3c7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9y
WDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAg
ICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdo
dDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggMDZjNzAyYTBk
YjQuLjIwNjVkMzA4NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5jcHAKQEAgLTczLDYgKzczLDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFy
c2VyQ29udGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMK
ICAgICBhdHRhY2htZW50RW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuYXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCk7CiAjZW5kaWYKICAgICBkZWZlcnJl
ZENTU1BhcnNlckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0
aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJh
bmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJh
bmNlKCkgOiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xMDIsNiArMTAz
LDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENT
U1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuYXR0YWNobWVudEVuYWJsZWQgPT0gYi5h
dHRhY2htZW50RW5hYmxlZAogI2VuZGlmCiAgICAgICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJF
bmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCisgICAgICAgICYmIGEub3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAg
ICAgJiYgYS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID09IGIuaGFzRG9jdW1lbnRTZWN1cml0
eU9yaWdpbgogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1B
cHBlYXJhbmNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuaAppbmRleCA3NThiNmVlYjNhZi4uOWU5N2IwZTcyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wg
ZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIAogICAgIC8vIFRoaXMgaXMgb25seSBuZWVk
ZWQgdG8gc3VwcG9ydCBnZXRNYXRjaGVkQ1NTUnVsZXMuCiAgICAgYm9vbCBoYXNEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luIHsgZmFsc2UgfTsKQEAgLTEwNiw3ICsxMDcsOCBAQCBzdHJ1Y3QgQ1NTUGFy
c2VyQ29udGV4dEhhc2ggewogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgICAg
ICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICA8PCAx
MQogI2VuZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAxMjsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAmIGtl
eS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMgorICAgICAg
ICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg
MTM7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChiaXRz
KTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA1Y2I4OTQ1YjM4Zi4uNWVmZTgwODE4
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCkBAIC0yMzI2LDYgKzIzMjYsMTQgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNv
bnN1bWVTY3JvbGxTbmFwVHlwZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIAogI2VuZGlm
CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVl
aygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0g
Q1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGlj
IFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tl
blJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2Vu
dChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTQwMTUs
NiArNDAyMywxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNp
bmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlTY3JvbGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZSht
X3JhbmdlKTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBpZiAo
IW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFu
Z2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICByZXR1cm4gY29uc3VtZUNs
aXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBA
IC01NjU4LDYgKzU2NzEsMzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBsYWNl
U2VsZlNob3J0aGFuZChib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9v
bCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChi
b29sIGltcG9ydGFudCkKK3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOworICAgIGlmICghbV9jb250
ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJl
ZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3IobV9yYW5nZSk7CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclk7
CisgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChtX3JhbmdlLmF0RW5k
KCkpCisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Nyb2xsQmVoYXZpb3JYOwor
ICAgIGVsc2UgeworICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gY29uc3VtZU92ZXJzY3Jv
bGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgp
OworICAgICAgICBpZiAoIW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clgsIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWCwg
aW1wb3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clksIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWSwg
aW1wb3J0YW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNl
cjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQp
CiB7CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewpAQCAtNTY5Nyw2ICs1NzM5LDggQEAgYm9vbCBD
U1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcmZsb3dZ
LCBDU1NQcm9wZXJ0eU92ZXJmbG93LCAqb3ZlcmZsb3dZVmFsdWUsIGltcG9ydGFudCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJl
aGF2aW9yOgorICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFu
ZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250OiB7CiAgICAgICAgIGNvbnN0
IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IG1fcmFuZ2UucGVlaygpOwogICAgICAgICBpZiAodG9r
ZW4uaWQoKSA+PSBDU1NWYWx1ZUNhcHRpb24gJiYgdG9rZW4uaWQoKSA8PSBDU1NWYWx1ZVN0YXR1
c0JhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApp
bmRleCAxZGMwNWVmODhkYS4uM2ZjMTY2NTM1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTEwNyw2ICsxMDcsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGltcG9ydGFudCk7CiAgICAgYm9v
bCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogCisgICAgYm9vbCBj
b25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKKwogcHJp
dmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBtX3JhbmdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDZkMTQxZWFmZGFmLi42ZjUxMWI5
ZjViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjgzLDE1ICsyODMs
MTUgQEAgc3RhdGljIGlubGluZSBTY3JvbGxHcmFudWxhcml0eSB3aGVlbEdyYW51bGFyaXR5VG9T
Y3JvbGxHcmFudWxhcml0eSh1bnNpZ25lZCBkZWwKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxl
QXJlYSwgV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBkaWRTY3Jv
bGxJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSwgZG91Ymxl
IGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgdW5zaWduZWQgZGVsdGFNb2RlKQogewotICAgIFNjcm9s
bEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFudWxhcml0eVRvU2Nyb2xs
R3JhbnVsYXJpdHkod2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CisgICAgU2Nyb2xsR3JhbnVsYXJp
dHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0
eShkZWx0YU1vZGUpOwogICAgIGJvb2wgZGlkSGFuZGxlV2hlZWxFdmVudCA9IGZhbHNlOwotICAg
IGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVgoKSkp
Ci0gICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbCh3
aGVlbEV2ZW50LmRlbHRhWCgpID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xs
R3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRh
ID0gc3RkOjphYnMoZGVsdGFYKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3Jv
bGxhYmxlQXJlYS0+c2Nyb2xsKGRlbHRhWCA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQs
IHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKLSAgICBpZiAoZmxvYXQg
YWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFZKCkpKQotICAgICAgICBk
aWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGwod2hlZWxFdmVudC5k
ZWx0YVkoKSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNjcm9sbEdyYW51bGFyaXR5LCBh
YnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRl
bHRhWSkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNj
cm9sbChkZWx0YVkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0
eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZlbnQ7
CiB9CkBAIC0zMTAsMTggKzMxMCwyMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFuZGxlV2hlZWxF
dmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBXaAogCiAgICAg
UmVuZGVyQm94JiBpbml0aWFsRW5jbG9zaW5nQm94ID0gc3RhcnROb2RlLT5yZW5kZXJlcigpLT5l
bmNsb3NpbmdCb3goKTsKICAgICBpZiAoaW5pdGlhbEVuY2xvc2luZ0JveC5pc0xpc3RCb3goKSkK
LSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoc3RhdGljX2Nhc3Q8UmVu
ZGVyTGlzdEJveCo+KCZpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudCk7CisgICAgICAg
IHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKHN0YXRpY19jYXN0PFJlbmRlckxpc3RC
b3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQuZGVsdGFYKCksIHdoZWVsRXZl
bnQuZGVsdGFZKCksIHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOwogCiAgICAgUmVuZGVyQm94KiBj
dXJyZW50RW5jbG9zaW5nQm94ID0gJmluaXRpYWxFbmNsb3NpbmdCb3g7CisgICAgYm9vbCBpZ25v
cmVEZWx0YVggPSBmYWxzZTsKKyAgICBib29sIGlnbm9yZURlbHRhWSA9IGZhbHNlOwogICAgIHdo
aWxlIChjdXJyZW50RW5jbG9zaW5nQm94KSB7CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogYm94
TGF5ZXIgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5sYXllcigpKSB7CiAgICAgICAgICAgICBhdXRv
IHBsYXRmb3JtRXZlbnQgPSB3aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2ZW50KCk7CiAg
ICAgICAgICAgICBib29sIHNjcm9sbGluZ1dhc0hhbmRsZWQ7CiAgICAgICAgICAgICBpZiAocGxh
dGZvcm1FdmVudCkgewotICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9y
bUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53
aWR0aCgpLCBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkp
OworICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5
V2l0aERlbHRhc0FuZFZlbG9jaXR5KGlnbm9yZURlbHRhWCA/IDAgOiBmaWx0ZXJlZFBsYXRmb3Jt
RGVsdGEud2lkdGgoKSwgaWdub3JlRGVsdGFZID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5o
ZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2Fz
SGFuZGxlZCA9IGJveExheWVyLT5oYW5kbGVXaGVlbEV2ZW50KGNvcGllZEV2ZW50KTsKICAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRT
Y3JvbGxJblNjcm9sbGFibGVBcmVhKGJveExheWVyLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAg
ICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShib3hM
YXllciwgaWdub3JlRGVsdGFYID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFYKCksIGlnbm9yZURlbHRh
WSA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKIAog
ICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRsZWQpIHsKICAgICAgICAgICAgICAgICBp
ZiAoc3RvcEVsZW1lbnQpCkBAIC0zMzMsNiArMzM1LDE3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBo
YW5kbGVXaGVlbEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUs
IFdoCiAgICAgICAgIGlmIChzdG9wRWxlbWVudCAmJiAqc3RvcEVsZW1lbnQgJiYgKnN0b3BFbGVt
ZW50ID09IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogCisgICAgICAgIGlmICghaWdub3JlRGVsdGFYICYmIGN1cnJlbnRFbmNsb3NpbmdC
b3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6
QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWCA9IHRydWU7CisgICAgICAgIGlmICghaWdu
b3JlRGVsdGFZICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2
aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURl
bHRhWSA9IHRydWU7CisgICAgICAgIGlmIChpZ25vcmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKSB7
CisgICAgICAgICAgICAvLyBXZSBjbGFpbSB0aGF0IHRoZSBldmVudCB3YXMgaGFuZGxlZCBzbyB0
aGF0IGl0IGlzIG5vdCBwcm9wYWdhdGVkIHRvIHRoZSBhbmNlc3RvciBmcmFtZXMuCisgICAgICAg
ICAgICBpZiAoc3RvcEVsZW1lbnQpCisgICAgICAgICAgICAgICAgKnN0b3BFbGVtZW50ID0gY3Vy
cmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKwogICAgICAgICBjdXJyZW50RW5jbG9zaW5nQm94ID0gY3VycmVudEVuY2xvc2lu
Z0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghY3VycmVudEVuY2xvc2luZ0Jv
eCB8fCBjdXJyZW50RW5jbG9zaW5nQm94LT5pc1JlbmRlclZpZXcoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA2ZGFlYzJhZTViNy4u
N2Y2NzNiY2NjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTM3Miw2ICszNzIs
OCBAQCBmcmFtZUZsYXR0ZW5pbmc6CiBhc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZDoKICAgaW5p
dGlhbDogZmFsc2UKICAgb25DaGFuZ2U6IHNldE5lZWRzUmVsYXlvdXRBbGxGcmFtZXMKK292ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCiAKIGFzeW5jT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApp
bmRleCAyNjM4ODI2YjUwNy4uNTMwMDMyZTU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC01MjMsNiArNTIzLDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVG
cmFtZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwKICAgICBub2RlLT5zZXRJ
bnNldENsaXBMYXllcihpbnNldENsaXBMYXllcik7CiAgICAgbm9kZS0+c2V0U2Nyb2xsZWRDb250
ZW50c0xheWVyKHNjcm9sbGVkQ29udGVudHNMYXllcik7CiAgICAgbm9kZS0+c2V0Q291bnRlclNj
cm9sbGluZ0xheWVyKGNvdW50ZXJTY3JvbGxpbmdMYXllcik7CisgICAgbm9kZS0+c2V0SG9yaXpv
bnRhbE92ZXJzY3JvbGxCZWhhdmlvcihzY3JvbGxpbmdHZW9tZXRyeS5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKTsKKyAgICBub2RlLT5zZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcihz
Y3JvbGxpbmdHZW9tZXRyeS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CiAgICAgbm9kZS0+
c2V0UGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdChzY3JvbGxpbmdHZW9tZXRyeS5wYXJlbnRS
ZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKICAgICBub2RlLT5zZXRTY3JvbGxPcmlnaW4oc2Nyb2xs
aW5nR2VvbWV0cnkuc2Nyb2xsT3JpZ2luKTsKICAgICBub2RlLT5zZXRTY3JvbGxQb3NpdGlvbihz
Y3JvbGxpbmdHZW9tZXRyeS5zY3JvbGxQb3NpdGlvbik7CkBAIC01NDAsNiArNTQyLDggQEAgdm9p
ZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUo
U2Nyb2xsaW5nTm9kZUlEIG5vZGUKIAogICAgIG5vZGUtPnNldExheWVyKGxheWVyKTsKICAgICBu
b2RlLT5zZXRTY3JvbGxlZENvbnRlbnRzTGF5ZXIoc2Nyb2xsZWRDb250ZW50c0xheWVyKTsKKyAg
ICBub2RlLT5zZXRIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKHNjcm9sbGluZ0dlb21ldHJ5
Lmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgIG5vZGUtPnNldFZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yKHNjcm9sbGluZ0dlb21ldHJ5LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2
aW9yKTsKICAgICBub2RlLT5zZXRQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KHNjcm9sbGlu
Z0dlb21ldHJ5LnBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogICAgIG5vZGUtPnNldFNj
cm9sbE9yaWdpbihzY3JvbGxpbmdHZW9tZXRyeS5zY3JvbGxPcmlnaW4pOwogICAgIG5vZGUtPnNl
dFNjcm9sbFBvc2l0aW9uKHNjcm9sbGluZ0dlb21ldHJ5LnNjcm9sbFBvc2l0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
CmluZGV4IGY5MTcwODlhNWFmLi5iMjAyMDk5Nzg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xNzMsNiArMTcz
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVOb2RlVmlld3BvcnRDb25zdHJh
aW50cyhTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFZpZXdwb3J0Q29uc3RyYWludHMmKSB7IH0KIAog
ICAgIHN0cnVjdCBTY3JvbGxpbmdHZW9tZXRyeSB7CisgICAgICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0
byB9OworICAgICAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OiBBdXRvIH07CiAgICAgICAgIExheW91dFJlY3QgcGFy
ZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdDsKICAgICAgICAgRmxvYXRTaXplIHNjcm9sbGFibGVB
cmVhU2l6ZTsKICAgICAgICAgRmxvYXRTaXplIGNvbnRlbnRTaXplOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5jcHAKaW5kZXggMTUzMzYyYmIxOTguLjk3MjhjY2FiODI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5jcHAKQEAgLTUxLDYgKzUxLDggQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3IKICAg
ICAsIG1fc25hcE9mZnNldHNJbmZvKHN0YXRlTm9kZS5tX3NuYXBPZmZzZXRzSW5mbykKICNlbmRp
ZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVOb2RlLnNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycygpKQorICAgICwgbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKHN0
YXRlTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpCisgICAgLCBtX3ZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yKHN0YXRlTm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigp
KQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1t
YXRpY1Njcm9sbCgpKQogICAgICwgbV9leHBlY3RzV2hlZWxFdmVudFRlc3RUcmlnZ2VyKHN0YXRl
Tm9kZS5leHBlY3RzV2hlZWxFdmVudFRlc3RUcmlnZ2VyKCkpCiB7CkBAIC04Nyw2ICs4OSwyNCBA
QCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVhY2hhYmxlQ29udGVudHNT
aXplKGNvbnN0IEZsb2F0U2l6ZSYgcmVhYwogICAgIHNldFByb3BlcnR5Q2hhbmdlZChSZWFjaGFi
bGVDb250ZW50c1NpemUpOwogfQogCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
c2V0SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZpb3IgYmVoYXZp
b3IpCit7CisgICAgaWYgKG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBiZWhhdmlv
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9y
ID0gYmVoYXZpb3I7CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3IpOworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0VmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoT3ZlcnNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorewor
ICAgIGlmIChtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IGJlaGF2aW9yKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID0gYmVoYXZpb3I7
CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKK30K
Kwogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFBhcmVudFJlbGF0aXZlU2Ny
b2xsYWJsZVJlY3QoY29uc3QgTGF5b3V0UmVjdCYgcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVj
dCkKIHsKICAgICBpZiAobV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0ID09IHBhcmVudFJl
bGF0aXZlU2Nyb2xsYWJsZVJlY3QpCkBAIC0yNDEsNiArMjYxLDEyIEBAIHZvaWQgU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xs
aW5nU3RhdGVUCiAgICAgaWYgKG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJv
Z3JhbW1hdGljU2Nyb2xsKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlcXVlc3RlZCBzY3Jv
bGwgcG9zaXRpb24gcmVwcmVzZW50cyBwcm9ncmFtbWF0aWMgc2Nyb2xsIiwgbV9yZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogCisgICAgaWYgKG1f
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8p
CisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbCBvdmVyc2Nyb2xsIGJlaGF2aW9y
Iiwgc3RhdGljX2Nhc3Q8aW50PihtX2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKTsKKwor
ICAgIGlmIChtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yICE9IE92ZXJzY3JvbGxCZWhhdmlv
cjo6QXV0bykKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJ2ZXJ0aWNhbCBvdmVyc2Nyb2xsIGJl
aGF2aW9yIiwgc3RhdGljX2Nhc3Q8aW50PihtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSk7
CisKICAgICBpZiAoIW1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicGFyZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIs
IG1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgK
aW5kZXggN2RlNzM3YjY0ODcuLjhhMTFhYjBhNTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApA
QCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNjcm9sbGFibGVBcmVhU2l6ZSA9IE51
bVN0YXRlTm9kZUJpdHMsCiAgICAgICAgIFRvdGFsQ29udGVudHNTaXplLAogICAgICAgICBSZWFj
aGFibGVDb250ZW50c1NpemUsCisgICAgICAgIEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Is
CisgICAgICAgIFZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yLAogICAgICAgICBQYXJlbnRSZWxh
dGl2ZVNjcm9sbGFibGVSZWN0LAogICAgICAgICBTY3JvbGxQb3NpdGlvbiwKICAgICAgICAgU2Ny
b2xsT3JpZ2luLApAQCAtNjksNiArNzEsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IEZsb2F0U2l6
ZSYgcmVhY2hhYmxlQ29udGVudHNTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWFjaGFibGVDb250
ZW50c1NpemU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlYWNoYWJsZUNvbnRlbnRz
U2l6ZShjb25zdCBGbG9hdFNpemUmKTsKIAorICAgIGNvbnN0IE92ZXJzY3JvbGxCZWhhdmlvciYg
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SG9yaXpv
bnRhbE92ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZpb3IpOworCisgICAgY29uc3Qg
T3ZlcnNjcm9sbEJlaGF2aW9yJiB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldFZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlvcik7
CisKICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0OyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KGNvbnN0IExh
eW91dFJlY3QmKTsKIApAQCAtMTMzLDYgKzE0MSw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7CiAgICAg
TGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJl
aGF2aW9yOjpBdXRvIH07CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG1fdmVydGljYWxPdmVyc2Ny
b2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8gfTsKICAgICBib29sIG1fcmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZXhwZWN0c1doZWVsRXZlbnRUZXN0VHJpZ2dlciB7IGZhbHNlIH07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDc0YTg3M2RkZTQwLi40MzE1OGY1ZDU0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKIAorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KQEAgLTYzLDYgKzY0LDEyIEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4o
Y29uc3QgU2Nyb2xsaW5nU3RhdGVOCiAgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbFBvc2l0aW9uKSkKICAgICAgICAgbV9s
YXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gPSBzdGF0ZS5zY3JvbGxQb3NpdGlvbigpOwogCisg
ICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICBtX2hvcml6b250YWxP
dmVyc2Nyb2xsQmVoYXZpb3IgPSBzdGF0ZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7
CisKKyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICBtX3ZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yID0gc3RhdGUudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsK
KwogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpQYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KSkKICAgICAgICAgbV9wYXJlbnRS
ZWxhdGl2ZVNjcm9sbGFibGVSZWN0ID0gc3RhdGUucGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVj
dCgpOwogCkBAIC0xNDMsNiArMTUwLDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVRyCiAgICAg
ICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVhY2hhYmxlIGNvbnRlbnQgc2l6ZSIsIG1fcmVhY2hhYmxl
Q29udGVudHNTaXplKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImxhc3QgY29tbWl0dGVkIHNjcm9s
bCBwb3NpdGlvbiIsIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKTsKIAorICAgIGlmICht
X2hvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
KQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6b250YWwgb3ZlcnNjcm9sbCBiZWhhdmlv
ciIsIHN0YXRpY19jYXN0PGludD4obV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSk7CisK
KyAgICBpZiAobV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciAhPSBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkF1dG8pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWwgb3ZlcnNjcm9sbCBi
ZWhhdmlvciIsIHN0YXRpY19jYXN0PGludD4obV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcikp
OworCiAgICAgaWYgKCFtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QuaXNFbXB0eSgpKQog
ICAgICAgICB0cy5kdW1wUHJvcGVydHkoInBhcmVudCByZWxhdGl2ZSBzY3JvbGxhYmxlIHJlY3Qi
LCBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApp
bmRleCBmNmRlNzgzMDM3NC4uODVmYjc1MWY4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAt
ODcsNiArODcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgRmxvYXRTaXplJiBzY3JvbGxhYmxl
QXJlYVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhU2l6ZTsgfQogICAgIGNv
bnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemUoKSBjb25zdCB7IHJldHVybiBtX3RvdGFs
Q29udGVudHNTaXplOyB9CiAgICAgY29uc3QgRmxvYXRTaXplJiByZWFjaGFibGVDb250ZW50c1Np
emUoKSBjb25zdCB7IHJldHVybiBtX3JlYWNoYWJsZUNvbnRlbnRzU2l6ZTsgfQorICAgIGNvbnN0
IE92ZXJzY3JvbGxCZWhhdmlvciYgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0
IHsgcmV0dXJuIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcjsgfQorICAgIGNvbnN0IE92
ZXJzY3JvbGxCZWhhdmlvciYgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJl
dHVybiBtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yOyB9CiAgICAgY29uc3QgTGF5b3V0UmVj
dCYgcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50
UmVsYXRpdmVTY3JvbGxhYmxlUmVjdDsgfQogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmln
aW4oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9yaWdpbjsgfQogCkBAIC0xMjAsNiArMTIyLDgg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4
IHsgMCB9OwogI2VuZGlmCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIG1fc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzOworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBtX2hvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8gfTsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhh
dmlvcjo6QXV0byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggMzNmMzhjMzExNjguLmNkZjJkY2RkNzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTMxLDYgKzMxLDEyIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50
OF90IHsKKyAgICBBdXRvID0gMCwKKyAgICBDb250YWluLAorICAgIE5vbmUKK307CisKIGVudW0g
U2Nyb2xsRGlyZWN0aW9uIDogdWludDhfdCB7CiAgICAgU2Nyb2xsVXAsCiAgICAgU2Nyb2xsRG93
biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKaW5kZXggZWMyZjVhMDUzOWQuLjM3Mzc4NWNiOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzg3NSw2ICsz
ODc1LDggQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5h
dGlvbkZvclRoaXNGcmFtZShTY3JvbGxpbmdOb2RlSUQKICAgICBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEID0gYXR0YWNoU2Nyb2xsaW5nTm9kZSgqbV9yZW5kZXJWaWV3LmxheWVyKCksIG1fcmVuZGVy
Vmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCkgPyBNYWluRnJhbWVTY3JvbGxpbmdOb2RlIDogU3Vi
ZnJhbWVTY3JvbGxpbmdOb2RlLCBwYXJlbnROb2RlSUQpOwogICAgIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpTY3JvbGxpbmdHZW9tZXRyeSBzY3JvbGxpbmdHZW9tZXRyeTsKICAgICAvLyBGSVhNRSho
dHRwczovL3dlYmtpdC5vcmcvYi8xNzI5MTcpOiBQYXNzIHBhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3Q/CisgICAgc2Nyb2xsaW5nR2VvbWV0cnkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
ciA9IG1fcmVuZGVyVmlldy5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKKyAgICBzY3Jv
bGxpbmdHZW9tZXRyeS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9IG1fcmVuZGVyVmlldy5z
dHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKICAgICBzY3JvbGxpbmdHZW9tZXRyeS5zY3Jv
bGxPcmlnaW4gPSBmcmFtZVZpZXcuc2Nyb2xsT3JpZ2luKCk7CiAgICAgc2Nyb2xsaW5nR2VvbWV0
cnkuc2Nyb2xsYWJsZUFyZWFTaXplID0gZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLnNp
emUoKTsKICAgICBzY3JvbGxpbmdHZW9tZXRyeS5jb250ZW50U2l6ZSA9IGZyYW1lVmlldy50b3Rh
bENvbnRlbnRzU2l6ZSgpOwpAQCAtMzk2OCw2ICszOTcwLDggQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5hdGVkTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVy
LCBPcHQKICAgICAgICAgICAgIHNjcm9sbGluZ0dlb21ldHJ5LnNjcm9sbGFibGVBcmVhU2l6ZSA9
IGxheWVyLnZpc2libGVTaXplKCk7CiAgICAgICAgICAgICBzY3JvbGxpbmdHZW9tZXRyeS5jb250
ZW50U2l6ZSA9IGxheWVyLmNvbnRlbnRzU2l6ZSgpOwogICAgICAgICAgICAgc2Nyb2xsaW5nR2Vv
bWV0cnkucmVhY2hhYmxlQ29udGVudFNpemUgPSBsYXllci5zY3JvbGxhYmxlQ29udGVudHNTaXpl
KCk7CisgICAgICAgICAgICBzY3JvbGxpbmdHZW9tZXRyeS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yID0gbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsK
KyAgICAgICAgICAgIHNjcm9sbGluZ0dlb21ldHJ5LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
ID0gbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgICAgICAgICAgaWYgKGNvbnN0IFZlY3RvcjxMYXlv
dXRVbml0Piogb2Zmc2V0cyA9IGxheWVyLmhvcml6b250YWxTbmFwT2Zmc2V0cygpKQogICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ0dlb21ldHJ5Lmhvcml6b250YWxTbmFwT2Zmc2V0cyA9ICpvZmZz
ZXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCBkYmFhZjBjNzYzZS4uYWJkOGNlYjQzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIlNW
R1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTaGFk
b3dEYXRhLmgiCiAjaW5jbHVkZSAiU2hhcGVWYWx1ZS5oIgogI2luY2x1ZGUgIlN0eWxlQmFja2dy
b3VuZERhdGEuaCIKQEAgLTMzOSw2ICszNDAsOSBAQCBwdWJsaWM6CiAgICAgT3ZlcmZsb3cgb3Zl
cmZsb3dJbmxpbmVEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gb3ZlcmZsb3dYKCkgOiBvdmVyZmxvd1koKTsgfQogICAgIE92ZXJmbG93IG92ZXJm
bG93QmxvY2tEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gb3ZlcmZsb3dZKCkgOiBvdmVyZmxvd1goKTsgfQogICAgIGJvb2wgaXNPdmVyZmxvd1Zp
c2libGUoKSBjb25zdCB7IHJldHVybiBvdmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSB8
fCBvdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6VmlzaWJsZTsgfQorCisgICAgT3ZlcnNjcm9sbEJl
aGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclgoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxP
dmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhh
dmlvclgpOyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclkoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbklu
aGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclkpOyB9CiAgICAgCiAgICAgVmlzaWJpbGl0
eSB2aXNpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlzaWJpbGl0eT4obV9p
bmhlcml0ZWRGbGFncy52aXNpYmlsaXR5KTsgfQogICAgIFZlcnRpY2FsQWxpZ24gdmVydGljYWxB
bGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZlcnRpY2FsQWxpZ24+KG1fbm9uSW5o
ZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbik7IH0KQEAgLTg5NSw2ICs4OTksOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldE92ZXJmbG93WChPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxh
Z3Mub3ZlcmZsb3dYID0gIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0
T3ZlcmZsb3dZKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy5vdmVyZmxvd1kgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlv
clgoT3ZlcnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCBvdmVyc2Nyb2xsQmVoYXZpb3JYLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CisgICAg
dm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JZKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHYpKTsgfQogICAgIHZvaWQgc2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5IHYp
IHsgbV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYp
OyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ24gdikgeyBtX25vbklu
aGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0K
ICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5ndGgoTGVuZ3RoJiYgbGVuZ3RoKSB7IHNldFZl
cnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbjo6TGVuZ3RoKTsgU0VUX1ZBUihtX2JveERhdGEsIG1f
dmVydGljYWxBbGlnbiwgV1RGTW92ZShsZW5ndGgpKTsgfQpAQCAtMTQ0OCw2ICsxNDU0LDkgQEAg
cHVibGljOgogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAg
ICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WCgpIHsgcmV0dXJuIE92ZXJmbG93OjpW
aXNpYmxlOyB9CiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1koKSB7IHJldHVy
biBPdmVyZmxvdzo6VmlzaWJsZTsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5p
dGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1
dG87IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVo
YXZpb3JZKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICBzdGF0
aWMgQ2xlYXIgaW5pdGlhbENsZWFyKCkgeyByZXR1cm4gQ2xlYXI6Ok5vbmU7IH0KICAgICBzdGF0
aWMgRGlzcGxheVR5cGUgaW5pdGlhbERpc3BsYXkoKSB7IHJldHVybiBEaXNwbGF5VHlwZTo6SW5s
aW5lOyB9CiAgICAgc3RhdGljIEVVbmljb2RlQmlkaSBpbml0aWFsVW5pY29kZUJpZGkoKSB7IHJl
dHVybiBVQk5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGEzMTJiZGFlYmQ1
Li5kYmI2ZWRhMmIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNjAsNiArNjAsOCBA
QCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkK
ICAgICAsIHNjcm9sbFNuYXBQb3J0KFN0eWxlU2Nyb2xsU25hcFBvcnQ6OmNyZWF0ZSgpKQogICAg
ICwgc2Nyb2xsU25hcEFyZWEoU3R5bGVTY3JvbGxTbmFwQXJlYTo6Y3JlYXRlKCkpCiAjZW5kaWYK
KyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0
eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpKSkKKyAgICAsIG92ZXJzY3JvbGxCZWhh
dmlvclkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9s
bEJlaGF2aW9yWSgpKSkKICAgICAsIHdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6OmluaXRpYWxXaWxs
Q2hhbmdlKCkpCiAgICAgLCBtYXNrKEZpbGxMYXllclR5cGU6Ok1hc2spCiAgICAgLCBvYmplY3RQ
b3NpdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbE9iamVjdFBvc2l0aW9uKCkpCkBAIC0xMzcsNiAr
MTM5LDggQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIHNjcm9sbFNuYXBQb3J0KG8u
c2Nyb2xsU25hcFBvcnQpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShvLnNjcm9sbFNuYXBBcmVhKQog
I2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWCkK
KyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZKQogICAgICwg
Y29udGVudChvLmNvbnRlbnQgPyBvLmNvbnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQogICAgICwg
Y291bnRlckRpcmVjdGl2ZXMoby5jb3VudGVyRGlyZWN0aXZlcyA/IHN0ZDo6bWFrZV91bmlxdWU8
Q291bnRlckRpcmVjdGl2ZU1hcD4oKm8uY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKICAg
ICAsIGFsdFRleHQoby5hbHRUZXh0KQpAQCAtMjQwLDYgKzI0NCw4IEBAIGJvb2wgU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhJiBvKSBjCiAgICAgICAgICYmIHNjcm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xsU25hcFBvcnQK
ICAgICAgICAgJiYgc2Nyb2xsU25hcEFyZWEgPT0gby5zY3JvbGxTbmFwQXJlYQogI2VuZGlmCisg
ICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JYCisg
ICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZCiAg
ICAgICAgICYmIGNvbnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBhcmVQb2ludGlu
Z1RvRXF1YWxEYXRhKGNvdW50ZXJEaXJlY3RpdmVzLCBvLmNvdW50ZXJEaXJlY3RpdmVzKQogICAg
ICAgICAmJiBhbHRUZXh0ID09IG8uYWx0VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZjli
YWExNDIzMDUuLjdjMTEyY2Q4MGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEyOCw2ICsx
MjgsOSBAQCBwdWJsaWM6CiAgICAgRGF0YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxT
bmFwQXJlYTsKICNlbmRpZgogCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7
IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkg
OiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50
RGF0YT4gY29udGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4g
Y291bnRlckRpcmVjdGl2ZXM7CiAgICAgU3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXggOGQyZDE4YzA5
NmUuLmM4N2FkMDM1M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xMTksNiArMTE5LDggQEAgdm9pZCBBcmd1bWVudENv
ZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdAogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgU2Nyb2xsaW5nU3Rh
dGVOb2RlJj4obm9kZSk7CiAgICAgCisgICAgU0NST0xMSU5HX05PREVfRU5DT0RFX0VOVU0oU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yLCBo
b3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERV9F
TlVNKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IsIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09E
RShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhU2l6ZSwgc2Nyb2xs
YWJsZUFyZWFTaXplKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplLCB0b3RhbENvbnRlbnRzU2l6ZSkKICAgICBT
Q1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFi
bGVDb250ZW50c1NpemUsIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSkKQEAgLTE5Myw2ICsxOTUsOCBA
QCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNjcm9sbAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlj
X2Nhc3Q8U2Nyb2xsaW5nU3RhdGVOb2RlJj4obm9kZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICBTQ1JPTExJTkdfTk9ERV9ERUNPREVfRU5VTShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IsIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvciwgc2V0SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgU0NST0xMSU5H
X05PREVfREVDT0RFX0VOVU0oU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvciwgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yLCBzZXRWZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvcik7CiAgICAgU0NST0xMSU5HX05PREVfREVDT0RFKFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFTaXplLCBGbG9hdFNpemUsIHNldFNj
cm9sbGFibGVBcmVhU2l6ZSk7CiAgICAgU0NST0xMSU5HX05PREVfREVDT0RFKFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUsIEZsb2F0U2l6ZSwgc2V0VG90YWxD
b250ZW50c1NpemUpOwogICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlJlYWNoYWJsZUNvbnRlbnRzU2l6ZSwgRmxvYXRTaXplLCBzZXRSZWFjaGFi
bGVDb250ZW50c1NpemUpOwpAQCAtNDU2LDYgKzQ2MCwxMiBAQCBib29sIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAK
IHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSYgbm9kZSwgYm9vbCBjaGFuZ2VkUHJvcGVydGllc09ubHkpCiB7CisgICAgaWYg
KCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsLW92ZXJzY3JvbGwtYmVoYXZpb3IiLCBz
dGF0aWNfY2FzdDxpbnQ+KG5vZGUuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpKSk7CisK
KyAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJ2ZXJ0aWNhbC1vdmVyc2Nyb2xsLWJlaGF2aW9y
Iiwgc3RhdGljX2Nhc3Q8aW50Pihub2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpKTsK
KwogICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFTaXplKSkKICAg
ICAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGxhYmxlLWFyZWEtc2l6ZSIsIG5vZGUuc2Nyb2xs
YWJsZUFyZWFTaXplKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDNhM2VhOTk0OTEwLi45NjRiYTAxNDBjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9m
ZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAt
NzQ3LDYgKzc0OCwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YT4gewogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhh
dmlvciwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8sCisgICAgV2ViQ29y
ZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvcjo6Tm9uZQorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAog
ICAgIFdlYkNvcmU6OkNvbG9yU3BhY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbAppbmRleCA2ZDI1ZTcxZjEzYy4uNDBjYjVjZTVhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTIzMyw2ICsxMjMzLDEzIEBAIFBvaW50ZXJF
dmVudHNFbmFibGVkOgogICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwog
ICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6Cisg
IHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTog
IkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJD
U1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisgIGNhdGVnb3J5OiBleHBlcmltZW50
YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZh
dWx0VmFsdWU6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggM2Q0MDYwZjgwMjYuLmE4MGJmZDhl
M2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLm1tCkBAIC0xNjMsNiArMTYzLDggQEAgdm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29u
c3QgU2Nyb2wKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiB1cGRhdGluZ0NoYW5nZShtX3VwZGF0
aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxMYXllcikK
KyAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpCisgICAg
ICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcikKICAgICAgICAgfHwg
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVhY2hh
YmxlQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRpb24pCkBA
IC0xNzEsNiArMTczLDI0IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgICAgIFVJU2Ny
b2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNjcm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIoKSBkZWxl
Z2F0ZV07CiAgICAgICAgIEFTU0VSVChbc2Nyb2xsVmlldyBpc0tpbmRPZkNsYXNzOltVSVNjcm9s
bFZpZXcgc2VsZl1dKTsKIAorICAgICAgICAvLyBGSVhNRShyZGFyOi8vcHJvYmxlbS8zNDMxNTk5
Nyk6IFVJU2Nyb2xsVmlldyBzaG91bGQgaGF2ZSBzb21lIGtpbmQgb2Ygc3VwcG9ydCBmb3Igb3Zl
cnNjcm9sbC1iZWhhdmlvciB0byBlbmFibGUvZGlzYWJsZToKKyAgICAgICAgLy8gLSBub24tbG9j
YWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIHNjcm9sbCBjaGFpbmluZykuCisgICAg
ICAgIC8vIC0gbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIGJvdW5jaW5nKS4K
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICAvLyBpZiAoc2Nyb2xsaW5nU3Rh
dGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Okhv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5v
dmVyc2Nyb2xsQmVoYXZpb3JIb3Jpem9udGFsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZy
b21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkpOworICAgICAgICAvLyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKSkKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJlaGF2aW9yVmVy
dGljYWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xs
aW5nU3RhdGVOb2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpOworI2VuZGlmCisgICAg
ICAgIC8vIEZvciBub3csIHdlIG9ubHkgZGlzYWJsZSBib3VuY2luZyB3aGVuIGJvdGggb3ZlcmZs
b3cteCBhbmQgb3ZlcmZsb3cteSBhcmUgbm9uZS4KKyAgICAgICAgLy8gVUlTY3JvbGxWaWV3Ojph
bHdheXNCb3VuY2UqIGZ1bmN0aW9ucyBjYW5ub3QgaGVscCBoZXJlLgorICAgICAgICBpZiAoc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpCisgICAgICAgICAgICB8fCBzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKSB7CisgICAgICAgICAgICBzY3JvbGxW
aWV3LmJvdW5jZXMgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAgJiYgc2Nyb2xs
aW5nU3RhdGVOb2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpOb25lCisgICAgICAgICAgICA/IE5PIDogWUVTOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxMYXllcikpIHsKICAgICAgICAgICAgIGlmICghbV9zY3Jv
bGxWaWV3RGVsZWdhdGUpCiAgICAgICAgICAgICAgICAgbV9zY3JvbGxWaWV3RGVsZWdhdGUgPSBh
ZG9wdE5TKFtbV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0
aFNjcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGU6dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5k
ZXggYjczZjZjYjY4MzAuLjQ3ODcwYzAwMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4
Miw2ICsxODIsNyBAQAogI2RlZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZp
c3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEVu
YWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRN
b2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U3VidGxlQ3J5cHRvRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggN2Ux
Y2ZjMWIxZTIuLmVjZTBjN2FjNTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY1Niw2ICs2NTYsNyBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0VmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKIAorICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5j
ZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0Q1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNR
dWlya0tleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0QWxs
b3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCkBAIC0zMDk3
LDYgKzMwOTgsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwog
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0VmlzdWFsVmlld3BvcnRB
UElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZh
bHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkCiB7CiAgICAg
cmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMjBiMzM0Mjk1MTAuLjE4
NjE1M2RiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTU4Nyw2ICs1ODcsNyBAQCBleHRlcm4gTlNT
dHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlv
biBXRUJLSVRfREVQUgogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9y
dEVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5n
RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0Rl
Y29kaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCA1ZWI5NTc1MjgyYy4uNzU4ODMxZDE5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5NTMsNiArMjk1Myw3IEBAIHN0YXRpYyBib29s
IG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZp
c3VhbFZpZXdwb3J0RW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRFbmFibGVkXSk7
CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyB2
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkXSk7CiAg
ICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMg
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmlkbAppbmRleCAxOTg4MmNkZDBmMC4uN2M4NjRiZGVhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmlkbApAQCAtMjIxLDYgKzIyMSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2
YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JB
ZGRpdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBv
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNV
TFQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAg
SFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCop
OwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wg
ZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0
dmFsXSBCT09MKiBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggOTQwZDVjZjU1ZDEuLjE0NGJlMDFkMTMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaApAQCAtMjA0LDUgKzIwNCw2IEBACiAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAKKyNkZWZpbmUg
V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
IgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNTli
ZTBjNDQzZjQuLmU1NWQxZjI3MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCkBAIC0zMjYsNiArMzI2LDggQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5p
dGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZh
dWx0cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZC
b29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RS
KFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9v
bGVhbkZhbHNlKTsKIAogICAgIGRlZmF1bHRTZXR0aW5ncyA9IGRlZmF1bHRzOwpAQCAtMjE4NCw2
ICsyMTg2LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2Vi
UHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxl
ZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisgICAg
KmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZl
cmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAg
ICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VL
ZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVu
Y2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7
CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmgKaW5kZXggM2NlNDQ4NWI4YTAuLmQ0YmU5MGY0MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2OSw2ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJs
ZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChf
T3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcAppbmRleCBlNGIyZTVmNWM1Ny4uYzVkMmM5YzliMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01Mjc4LDYgKzUyNzgsMTEgQEAgSFJFU1VMVCBXZWJW
aWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRB
UElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAg
IHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEh
ZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBo
cjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCA4MWIyNDg3YjIzMy4uZTEx
MWYyZDAyYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTEwOSw2ICsx
MDksOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhP
clVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAgICAgICAgICAganNjT3B0aW9ucyA9
IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFi
bGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkdQVSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJW
YWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2
aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgcGFpclN0
YXJ0ID0gcGFpckVuZCArIDE7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgK
aW5kZXggOGFlZGI5NDY0MTcuLjlmZGQwNTZhMGEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVu
YWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNlbGVjdGlvbkFjcm9z
c1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVXZWJHUFUgeyBmYWxz
ZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFsc2UgfTsKICAgICBz
dGQ6OnN0cmluZyBqc2NPcHRpb25zOwogCiAgICAgVGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdXRlUGF0aCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggNWRlNjEyYzU5ZjMuLmE3
MDFjZGNlMDU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CkBAIC0xMDExLDYgKzEwMTEsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRl
c3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLmNv
bG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXI7CiAgICAgcHJlZmVy
ZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQgPSBvcHRpb25zLmVu
YWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAgICAgcHJlZmVyZW5jZXMud2Vi
R1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOworICAgIHByZWZlcmVuY2VzLm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvcjsK
IH0KIAogLy8gQ2FsbGVkIG9uY2Ugb24gRHVtcFJlbmRlclRyZWUgc3RhcnR1cC4KLS0gCjIuMTku
MQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363094</attachid>
            <date>2019-02-27 09:20:01 -0800</date>
            <delta_ts>2019-08-30 10:08:18 -0700</delta_ts>
            <desc>tentative rebase (not tested)</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>53309</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBlYjBiMTM5Y2Y1YzNmM2JlMTM3YmQxYjE2YjI2Yzk4MGI1MDMxN2EzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDI5IE5vdiAyMDE4IDE1OjA5OjEzICswMTAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM3ICsrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gICAgICAgICB8
IDQwICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgICAgICAgIHwgIDYgKysrCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuY3BwICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuaCAgfCAgNCArLQogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAgIHwgNDQgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwICAgICAgICAgIHwgMzEgKysrKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sICAgICAgICAgICAgIHwgIDIgKwogLi4uL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCAgIHwgIDIgKwogLi4uL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmggICAgIHwgIDIgKwogLi4uL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuY3BwIHwgMjYgKysrKysrKysrKysKIC4uLi9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmggICB8IDEwICsrKysrCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcCAgfCAxMyArKysrKysKIC4uLi9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuaCAgICB8ICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oICAgICAgICAgfCAgNiArKysKIC4uLi9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCAgICAgICB8ICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCAgfCAgOSArKysrCiAuLi4vc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAgICAgICAgfCAgNiArKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmggICAgICAgICB8ICAzICsrCiAuLi4vUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAgfCAxMCArKysrKwogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggIHwgMTAgKysrKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwgICAgICB8ICA3ICsrKwogLi4uL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MubW0gIHwgMjAgKysrKysrKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmggICAgfCAgMSArCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0gICAgICAgICAgICAgfCAxMSArKysrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tICAgIHwgIDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaWRsIHwgIDIgKwogLi4uL3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aCAgICAgICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuY3BwICAgIHwgMTYgKysrKysrKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuaCAgICAgIHwgIDIgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAg
ICAgICAgICAgIHwgIDUgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAg
ICAgICAgICAgfCAgMiArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oICAgICAg
ICAgICAgfCAgMSArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0g
ICAgfCAgMSArCiAzOCBmaWxlcyBjaGFuZ2VkLCAzNDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAppbmRleCA5NzdlY2EzYTQxZS4uMWRmMWYxOTJjYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xOTEs
NiArMTkxLDggQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVz
W10gPSB7CiAgICAgQ1NTUHJvcGVydHlPdXRsaW5lV2lkdGgsCiAgICAgQ1NTUHJvcGVydHlPdmVy
Zmxvd1dyYXAsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1gsCisgICAgQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JYLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAg
ICBDU1NQcm9wZXJ0eU92ZXJmbG93WSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b20sCiAg
ICAgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwKQEAgLTMzMzIsNiArMzMzNCwxMiBAQCBSZWZQdHI8
Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxl
KGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVW
YWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxv
d1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92
ZXJmbG93WSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoK
KyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5
bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlv
clgoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xs
QmVoYXZpb3JZKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAg
ICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5k
ZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1Bh
ZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRk
aW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaAppbmRleCBkMDlmNDlmNDQzNy4uYTM3NjdkNGQxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMu
aCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZURlZnMuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBl
cy5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgIlRoZW1lVHlwZXMuaCIKICNp
bmNsdWRlICJUb3VjaEFjdGlvbi5oIgpAQCAtMjIwNSw2ICsyMjA2LDQyIEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAgICAg
cmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGUpCisgICAg
OiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2
aW9yOjpDb250YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigpIGNv
bnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAg
IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86
CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAg
IDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRp
ZXMuanNvbgppbmRleCBlOWY5NDVhN2IwMC4uMDM3ZTg4YTI3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzI3Niw2ICszMjc2LDQ2IEBACiAgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3BkZWYt
b3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3Jv
bGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAg
ICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Ny
b2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlv
ci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3Rh
dHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3By
b3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBb
CisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAg
ICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3RhdHVz
IjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAg
InVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3Bk
ZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAg
ICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsK
KyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAg
ICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0dXMi
OiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAi
dXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRl
Zi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAg
ICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAg
ICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgppbmRleCA3ZTBlMTcwNmVlYi4uMDhiNGEwNDkxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzc0LDYgKzEzNzQsOSBAQCBwYW4teQogcGluY2gt
em9vbQogI2VuZGlmCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8g
aGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCA4NGQ1MTI2MDRhYi4uNjNjYmNjMGZlYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yMzMsNiArMjMzLDggQEAgU3RyaW5n
IFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SUQpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZSh3ZWJraXRNYXJnaW5D
b2xsYXBzZVNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAg
ICAgIHJldHVybiBnZXRDb21tb25WYWx1ZShvdmVyZmxvd1Nob3J0aGFuZCgpKTsKKyAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICByZXR1cm4gZ2V0Q29tbW9u
VmFsdWUob3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlQYWRkaW5nOgogICAgICAgICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nQmxvY2s6CkBAIC0xMTM0LDYgKzExMzYsMTAg
QEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZsb3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNo
b3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9w
OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggMDZjNzAyYTBkYjQuLjIwNjVkMzA4Nzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAK
QEAgLTczLDYgKzczLDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICAgICBhdHRhY2htZW50
RW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNo
bWVudEVsZW1lbnRFbmFibGVkKCk7CiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJs
ZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOworICAg
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLm92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1lbnQu
cGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZTsK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQm
IGIpCiAgICAgICAgICYmIGEuYXR0YWNobWVudEVuYWJsZWQgPT0gYi5hdHRhY2htZW50RW5hYmxl
ZAogI2VuZGlmCiAgICAgICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVm
ZXJyZWRDU1NQYXJzZXJFbmFibGVkCisgICAgICAgICYmIGEub3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAgJiYgYS5oYXNEb2N1
bWVudFNlY3VyaXR5T3JpZ2luID09IGIuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbgogICAgICAg
ICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRleCA3NThi
NmVlYjNhZi4uOWU5N2IwZTcyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0dGFj
aG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJz
ZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQg
eyBmYWxzZSB9OwogICAgIAogICAgIC8vIFRoaXMgaXMgb25seSBuZWVkZWQgdG8gc3VwcG9ydCBn
ZXRNYXRjaGVkQ1NTUnVsZXMuCiAgICAgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsg
ZmFsc2UgfTsKQEAgLTEwNiw3ICsxMDcsOCBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4dEhhc2gg
ewogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgICAgICAgICAmIGtleS5hdHRh
Y2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMQogI2VuZGlmCi0gICAg
ICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAxMjsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAmIGtleS5vdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMgorICAgICAgICAgICAgJiBrZXkubW9k
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAgdGhp
cyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChiaXRzKTsKICAgICAgICAgcmV0
dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcAppbmRleCAzNGEyZDYzZDBkMy4uY2VhOTQyZDVmZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yMzQzLDYg
KzIzNDMsMTQgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNvbnN1bWVTY3JvbGxTbmFw
VHlwZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIAogI2VuZGlmCiAKK3N0YXRpYyBSZWZQ
dHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAg
aWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVOb25lICYm
IHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1
ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Q1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFy
c2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTQwMzgsNiArNDA0NiwxMSBAQCBS
ZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlw
ZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxTbmFwVHlwZShtX3JhbmdlKTsKICNlbmRp
ZgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBpZiAoIW1fY29udGV4dC5vdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlDbGlwOgogICAgICAgICByZXR1cm4gY29uc3VtZUNsaXAobV9yYW5nZSwgbV9j
b250ZXh0Lm1vZGUpOwogI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKQEAgLTU2OTMsNiArNTcw
NiwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lUGxhY2VTZWxmU2hvcnRoYW5k
KGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIENTU1Byb3BlcnR5
UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50
KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7CisgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fcmFu
Z2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVl
PiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3Jhbmdl
KTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhhdmlvclgpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWTsKKyAgICBtX3Jhbmdl
LmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAg
b3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJzY3JvbGxCZWhhdmlvclg7CisgICAgZWxzZSB7Cisg
ICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1f
cmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlm
ICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWCwgQ1NTUHJvcGVy
dHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVoYXZpb3JYLCBpbXBvcnRhbnQpOwor
ICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwgQ1NTUHJvcGVy
dHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVoYXZpb3JZLCBpbXBvcnRhbnQpOwor
ICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0
aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKIHsKICAgICBzd2l0
Y2ggKHByb3BlcnR5KSB7CkBAIC01NzMyLDYgKzU3NzQsOCBAQCBib29sIENTU1Byb3BlcnR5UGFy
c2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFu
dCkKICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyZmxvd1ksIENTU1Byb3BlcnR5
T3ZlcmZsb3csICpvdmVyZmxvd1lWYWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAg
ICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9r
ZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENT
U1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgpIDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCmluZGV4IGJjZDFiOTI3
ZmNjLi45Y2NkZTIyN2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuaApAQCAtMTA4LDYgKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb25z
dW1lVHJhbnNmb3JtT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIGNvbnN1bWVQZXJz
cGVjdGl2ZU9yaWdpbihib29sIGltcG9ydGFudCk7CiAKKyAgICBib29sIGNvbnN1bWVPdmVyc2Ny
b2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworCiBwcml2YXRlOgogICAgIC8v
IElucHV0czoKICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIG1fcmFuZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMGFhNGZiZGI1NzQuLjg5ZjNiNDhjOTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yODQsMTUgKzI4NCwxNSBAQCBzdGF0aWMg
aW5saW5lIFNjcm9sbEdyYW51bGFyaXR5IHdoZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdyYW51bGFy
aXR5KHVuc2lnbmVkIGRlbAogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIGRpZFNjcm9s
bEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBXaGVlbEV2
ZW50JiB3aGVlbEV2ZW50KQorc3RhdGljIGlubGluZSBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJs
ZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBkb3VibGUgZGVsdGFYLCBkb3Vi
bGUgZGVsdGFZLCB1bnNpZ25lZCBkZWx0YU1vZGUpCiB7Ci0gICAgU2Nyb2xsR3JhbnVsYXJpdHkg
c2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3
aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKKyAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFu
dWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KGRlbHRhTW9kZSk7
CiAgICAgYm9vbCBkaWRIYW5kbGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFi
c29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlk
SGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsKHdoZWVsRXZlbnQuZGVs
dGFYKCkgPiAwID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwg
YWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhk
ZWx0YVgpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5z
Y3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3JhbnVs
YXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRh
ID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdoZWVs
RXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/
IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEp
OworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAg
ICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsKGRlbHRhWSA+
IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURl
bHRhKTsKICAgICAKICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVudDsKIH0KQEAgLTMxMSwx
OCArMzExLDIwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3By
aWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIFdoCiAKICAgICBSZW5kZXJCb3gmIGlu
aXRpYWxFbmNsb3NpbmdCb3ggPSBzdGFydE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0JveCgp
OwogICAgIGlmIChpbml0aWFsRW5jbG9zaW5nQm94LmlzTGlzdEJveCgpKQotICAgICAgICByZXR1
cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94Kj4o
JmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoc3RhdGljX2Nhc3Q8UmVuZGVyTGlzdEJveCo+KCZpbml0aWFs
RW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSwg
d2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3Np
bmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0JveDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZh
bHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZID0gZmFsc2U7CiAgICAgd2hpbGUgKGN1cnJlbnRF
bmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBib3hMYXllciA9IGN1cnJl
bnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1FdmVu
dCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKICAgICAgICAgICAgIGJv
b2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlX
aXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRl
cmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAg
ICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5k
VmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgp
LCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0
ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94
TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwogICAgICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoYm94TGF5ZXIsIHdoZWVsRXZlbnQpOworICAgICAgICAgICAgICAgIHNjcm9sbGlu
Z1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGJveExheWVyLCBpZ25vcmVE
ZWx0YVggPyAwIDogd2hlZWxFdmVudC5kZWx0YVgoKSwgaWdub3JlRGVsdGFZID8gMCA6IHdoZWVs
RXZlbnQuZGVsdGFZKCksIHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOwogCiAgICAgICAgICAgICBp
ZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkgewogICAgICAgICAgICAgICAgIGlmIChzdG9wRWxlbWVu
dCkKQEAgLTMzNCw2ICszMzYsMTcgQEAgc3RhdGljIGlubGluZSBib29sIGhhbmRsZVdoZWVsRXZl
bnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwgV2gKICAgICAgICAg
aWYgKHN0b3BFbGVtZW50ICYmICpzdG9wRWxlbWVudCAmJiAqc3RvcEVsZW1lbnQgPT0gY3VycmVu
dEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAg
ICAgICAgaWYgKCFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5v
dmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAg
ICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVkgJiYg
Y3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFZID0gdHJ1ZTsK
KyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAmJiBpZ25vcmVEZWx0YVkpIHsKKyAgICAgICAgICAg
IC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50IHdhcyBoYW5kbGVkIHNvIHRoYXQgaXQgaXMgbm90
IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9yIGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChzdG9w
RWxlbWVudCkKKyAgICAgICAgICAgICAgICAqc3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5n
Qm94LT5lbGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAg
ICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250YWlu
aW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFjdXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJlbnRF
bmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3ZjgyZDRiLi5lZDI1NDExYTE2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtMzgzLDYgKzM4Myw4IEBAIGZyYW1lRmxh
dHRlbmluZzoKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQog
ICBvbkNoYW5nZTogc2V0TmVlZHNSZWxheW91dEFsbEZyYW1lcworb3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKIAogYXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ6CiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDA1ODVhYjZh
OWFiLi4wMzI4ZmU1MWE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTYyOSw2ICs2Mjks
OCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbGluZ05vZGVHZW9t
ZXRyeShTY3JvbGxpbmdOb2RlSUQgbm9kZUlELAogCiAgICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9
IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oKnN0YXRlTm9kZSk7CiAKKyAg
ICBzY3JvbGxpbmdOb2RlLnNldEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Ioc2Nyb2xsaW5n
R2VvbWV0cnkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgc2Nyb2xsaW5nTm9k
ZS5zZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcihzY3JvbGxpbmdHZW9tZXRyeS52ZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvcik7CiAgICAgc2Nyb2xsaW5nTm9kZS5zZXRQYXJlbnRSZWxhdGl2
ZVNjcm9sbGFibGVSZWN0KHNjcm9sbGluZ0dlb21ldHJ5LnBhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3QpOwogICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsT3JpZ2luKHNjcm9sbGluZ0dlb21l
dHJ5LnNjcm9sbE9yaWdpbik7CiAgICAgc2Nyb2xsaW5nTm9kZS5zZXRTY3JvbGxQb3NpdGlvbihz
Y3JvbGxpbmdHZW9tZXRyeS5zY3JvbGxQb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAyY2ExZGM5NTYx
OC4uZmIyOTUwYTJjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTQwLDYgKzE0MCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Tm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IE5vZGVM
YXllcnMmKSB7IH0KIAogICAgIHN0cnVjdCBTY3JvbGxpbmdHZW9tZXRyeSB7CisgICAgICAgIE92
ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9s
bEJlaGF2aW9yOjogQXV0byB9OworICAgICAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxP
dmVyc2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OiBBdXRvIH07CiAgICAgICAg
IExheW91dFJlY3QgcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdDsKICAgICAgICAgRmxvYXRT
aXplIHNjcm9sbGFibGVBcmVhU2l6ZTsKICAgICAgICAgRmxvYXRTaXplIGNvbnRlbnRTaXplOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggNjg1YjU2MjhhNWUuLjdkYjUwYjBmNmQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTUxLDYgKzUxLDggQEAgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xs
aW5nU3RhdGVTY3IKICAgICAsIG1fc25hcE9mZnNldHNJbmZvKHN0YXRlTm9kZS5tX3NuYXBPZmZz
ZXRzSW5mbykKICNlbmRpZgogICAgICwgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoc3RhdGVO
b2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpKQorICAgICwgbV9ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKHN0YXRlTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpCisg
ICAgLCBtX3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKHN0YXRlTm9kZS52ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpKQogICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2Vu
dHNQcm9ncmFtbWF0aWNTY3JvbGwoc3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpKQogICAgICwgbV9leHBlY3RzV2hlZWxFdmVudFRl
c3RUcmlnZ2VyKHN0YXRlTm9kZS5leHBlY3RzV2hlZWxFdmVudFRlc3RUcmlnZ2VyKCkpCiB7CkBA
IC0xMTQsNiArMTE2LDI0IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRS
ZWFjaGFibGVDb250ZW50c1NpemUoY29uc3QgRmxvYXRTaXplJiByZWFjCiAgICAgc2V0UHJvcGVy
dHlDaGFuZ2VkKFJlYWNoYWJsZUNvbnRlbnRzU2l6ZSk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKE92ZXJzY3Jv
bGxCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAobV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yID09IGJlaGF2aW9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hvcml6b250YWxP
dmVyc2Nyb2xsQmVoYXZpb3IgPSBiZWhhdmlvcjsKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoSG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcihPdmVyc2Nyb2xsQmVoYXZp
b3IgYmVoYXZpb3IpCit7CisgICAgaWYgKG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0g
YmVoYXZpb3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVo
YXZpb3IgPSBiZWhhdmlvcjsKKyAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoVmVydGljYWxPdmVyc2Ny
b2xsQmVoYXZpb3IpOworfQorCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0
UGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdChjb25zdCBMYXlvdXRSZWN0JiBwYXJlbnRSZWxh
dGl2ZVNjcm9sbGFibGVSZWN0KQogewogICAgIGlmIChtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3QgPT0gcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxlUmVjdCkKQEAgLTI3Nyw2ICsyOTcsMTIg
QEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRT
dHJlYW0mIHRzLCBTY3JvbGxpbmdTdGF0ZVQKICAgICBpZiAobV9yZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0
eSgicmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiByZXByZXNlbnRzIHByb2dyYW1tYXRpYyBzY3Jv
bGwiLCBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCk7CiAKKyAgICBpZiAobV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yICE9IE92ZXJzY3Jv
bGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsIG92
ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG1faG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvcikpOworCisgICAgaWYgKG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgIT0g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInZlcnRp
Y2FsIG92ZXJzY3JvbGwgYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fdmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IpKTsKKwogICAgIGlmICghbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJwYXJlbnQgcmVsYXRpdmUg
c2Nyb2xsYWJsZSByZWN0IiwgbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuaAppbmRleCA1ZmVhYTUxMTFiNi4uZmU0NGM1Zjk2NjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICAgICAgU2Nyb2xs
YWJsZUFyZWFTaXplID0gTnVtU3RhdGVOb2RlQml0cywKICAgICAgICAgVG90YWxDb250ZW50c1Np
emUsCiAgICAgICAgIFJlYWNoYWJsZUNvbnRlbnRzU2l6ZSwKKyAgICAgICAgSG9yaXpvbnRhbE92
ZXJzY3JvbGxCZWhhdmlvciwKKyAgICAgICAgVmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IsCiAg
ICAgICAgIFBhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QsCiAgICAgICAgIFNjcm9sbFBvc2l0
aW9uLAogICAgICAgICBTY3JvbGxPcmlnaW4sCkBAIC03MCw2ICs3MiwxMiBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgRmxvYXRTaXplJiByZWFjaGFibGVDb250ZW50c1NpemUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWNoYWJsZUNvbnRlbnRzU2l6ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UmVhY2hhYmxlQ29udGVudHNTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOwogCisgICAgY29uc3QgT3Zl
cnNjcm9sbEJlaGF2aW9yJiBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKE92ZXJzY3JvbGxCZWhhdmlv
cik7CisKKyAgICBjb25zdCBPdmVyc2Nyb2xsQmVoYXZpb3ImIHZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsgfQor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoT3Zl
cnNjcm9sbEJlaGF2aW9yKTsKKwogICAgIGNvbnN0IExheW91dFJlY3QmIHBhcmVudFJlbGF0aXZl
U2Nyb2xsYWJsZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJs
ZVJlY3Q7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBhcmVudFJlbGF0aXZlU2Nyb2xs
YWJsZVJlY3QoY29uc3QgTGF5b3V0UmVjdCYpOwogCkBAIC0xNDAsNiArMTQ4LDggQEAgcHJpdmF0
ZToKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnM7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbENvbnRhaW5lckxheWVyOwogICAg
IExheWVyUmVwcmVzZW50YXRpb24gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7CisgICAgT3ZlcnNj
cm9sbEJlaGF2aW9yIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBtX3ZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvIH07CiAgICAgYm9vbCBtX3Jl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2V4cGVjdHNXaGVlbEV2ZW50VGVzdFRyaWdnZXIgeyBmYWxzZSB9Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA1ODM0ODU0MDQwNi4uYWQ4ZDJmNjBmY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlbmRl
clN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5n
VHJlZS5oIgpAQCAtNjUsNiArNjYsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU4KICAgICBp
ZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
U2Nyb2xsUG9zaXRpb24pKQogICAgICAgICBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbiA9
IHN0YXRlLnNjcm9sbFBvc2l0aW9uKCk7CiAKKyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcikpCisgICAgICAgIG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHN0YXRlLmhv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKworICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92ZXJzY3JvbGxC
ZWhhdmlvcikpCisgICAgICAgIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzdGF0ZS52
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworCiAgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlBhcmVudFJlbGF0aXZlU2Nyb2xs
YWJsZVJlY3QpKQogICAgICAgICBtX3BhcmVudFJlbGF0aXZlU2Nyb2xsYWJsZVJlY3QgPSBzdGF0
ZS5wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCk7CiAKQEAgLTE5OCw2ICsyMDUsMTIgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVh
bSYgdHMsIFNjcm9sbGluZ1N0YXRlVHIKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZWFjaGFi
bGUgY29udGVudCBzaXplIiwgbV9yZWFjaGFibGVDb250ZW50c1NpemUpOwogICAgIHRzLmR1bXBQ
cm9wZXJ0eSgibGFzdCBjb21taXR0ZWQgc2Nyb2xsIHBvc2l0aW9uIiwgbV9sYXN0Q29tbWl0dGVk
U2Nyb2xsUG9zaXRpb24pOwogCisgICAgaWYgKG1faG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
ciAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgi
aG9yaXpvbnRhbCBvdmVyc2Nyb2xsIGJlaGF2aW9yIiwgc3RhdGljX2Nhc3Q8aW50PihtX2hvcml6
b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKTsKKworICAgIGlmIChtX3ZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJ2ZXJ0aWNhbCBvdmVyc2Nyb2xsIGJlaGF2aW9yIiwgc3RhdGljX2Nhc3Q8aW50Piht
X3ZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSk7CisKICAgICBpZiAoIW1fcGFyZW50UmVsYXRp
dmVTY3JvbGxhYmxlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgicGFy
ZW50IHJlbGF0aXZlIHNjcm9sbGFibGUgcmVjdCIsIG1fcGFyZW50UmVsYXRpdmVTY3JvbGxhYmxl
UmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDg2Nzk0Nzk0NTM3Li45YjQ4MTYyOTRl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC05Miw2ICs5Miw4IEBAIHByb3RlY3RlZDoKIAog
ICAgIEZsb2F0UG9pbnQgbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247IH0KICAgICBjb25zdCBGbG9hdFNpemUm
IHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxlQ29udGVu
dHNTaXplOyB9CisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2aW9yJiBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yOyB9CisgICAgY29uc3QgT3ZlcnNjcm9sbEJlaGF2aW9yJiB2ZXJ0aWNhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7IH0K
ICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0KCkgY29u
c3QgeyByZXR1cm4gbV9wYXJlbnRSZWxhdGl2ZVNjcm9sbGFibGVSZWN0OyB9CiAgICAgY29uc3Qg
SW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9
CiAKQEAgLTE0MSw2ICsxNDMsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVyPiBt
X3Njcm9sbENvbnRhaW5lckxheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbGVk
Q29udGVudHNMYXllcjsKICNlbmRpZgorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBtX2hvcml6b250
YWxPdmVyc2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8gfTsKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3IgbV92ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3Jv
bGxCZWhhdmlvcjo6QXV0byB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggN2Y0NTI5ODNkYWIuLmI1MzQ0MDEzNGVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTMwLDYgKzMwLDEyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xsQmVoYXZpb3Ig
OiB1aW50OF90IHsKKyAgICBBdXRvID0gMCwKKyAgICBDb250YWluLAorICAgIE5vbmUKK307CisK
IGVudW0gU2Nyb2xsRGlyZWN0aW9uIDogdWludDhfdCB7CiAgICAgU2Nyb2xsVXAsCiAgICAgU2Ny
b2xsRG93biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKaW5kZXggNWU4ZWM0ZWYyNWEuLmRmZDkzNjU2ZDNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzk1
MSw2ICszOTUxLDggQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVGcmFtZVNj
cm9sbGluZ0dlb21ldHJ5KFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjoKICAgICBzY3JvbGxpbmdHZW9t
ZXRyeS5zY3JvbGxhYmxlQXJlYVNpemUgPSBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCku
c2l6ZSgpOwogICAgIHNjcm9sbGluZ0dlb21ldHJ5LmNvbnRlbnRTaXplID0gZnJhbWVWaWV3LnRv
dGFsQ29udGVudHNTaXplKCk7CiAgICAgc2Nyb2xsaW5nR2VvbWV0cnkucmVhY2hhYmxlQ29udGVu
dFNpemUgPSBmcmFtZVZpZXcudG90YWxDb250ZW50c1NpemUoKTsKKyAgICBzY3JvbGxpbmdHZW9t
ZXRyeS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gbV9yZW5kZXJWaWV3LnN0eWxlKCku
b3ZlcnNjcm9sbEJlaGF2aW9yWCgpOworICAgIHNjcm9sbGluZ0dlb21ldHJ5LnZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yID0gbV9yZW5kZXJWaWV3LnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9y
WSgpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgZnJhbWVWaWV3LnVwZGF0ZVNu
YXBPZmZzZXRzKCk7CiAgICAgdXBkYXRlU2Nyb2xsU25hcFByb3BlcnRpZXNXaXRoRnJhbWVWaWV3
KGZyYW1lVmlldyk7CkBAIC0zOTg5LDYgKzM5OTEsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y29tcHV0ZU92ZXJmbG93U2Nyb2xsaW5nR2VvbWV0cnkoY29uc3QgUmVuZGVyTGF5ZXIm
CiAgICAgc2Nyb2xsaW5nR2VvbWV0cnkuc2Nyb2xsYWJsZUFyZWFTaXplID0gbGF5ZXIudmlzaWJs
ZVNpemUoKTsKICAgICBzY3JvbGxpbmdHZW9tZXRyeS5jb250ZW50U2l6ZSA9IGxheWVyLmNvbnRl
bnRzU2l6ZSgpOwogICAgIHNjcm9sbGluZ0dlb21ldHJ5LnJlYWNoYWJsZUNvbnRlbnRTaXplID0g
bGF5ZXIuc2Nyb2xsYWJsZUNvbnRlbnRzU2l6ZSgpOworICAgIHNjcm9sbGluZ0dlb21ldHJ5Lmhv
cml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBsYXllci5yZW5kZXJlcigpLnN0eWxlKCkub3Zl
cnNjcm9sbEJlaGF2aW9yWCgpOworICAgIHNjcm9sbGluZ0dlb21ldHJ5LnZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yID0gbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlv
clkoKTsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIGlmIChhdXRvKiBvZmZzZXRz
ID0gbGF5ZXIuaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkpCiAgICAgICAgIHNjcm9sbGluZ0dlb21l
dHJ5Lmhvcml6b250YWxTbmFwT2Zmc2V0cyA9ICpvZmZzZXRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA2OTY1MGRmMjBmMC4uYjY4MzE5YzQz
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNs
dWRlICJSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCiAjaW5jbHVkZSAiU2hh
cGVWYWx1ZS5oIgogI2luY2x1ZGUgIlN0eWxlQmFja2dyb3VuZERhdGEuaCIKQEAgLTM0MCw2ICsz
NDEsOSBAQCBwdWJsaWM6CiAgICAgT3ZlcmZsb3cgb3ZlcmZsb3dJbmxpbmVEaXJlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dYKCkgOiBv
dmVyZmxvd1koKTsgfQogICAgIE92ZXJmbG93IG92ZXJmbG93QmxvY2tEaXJlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dZKCkgOiBvdmVy
Zmxvd1goKTsgfQogICAgIGJvb2wgaXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdCB7IHJldHVybiBv
dmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSB8fCBvdmVyZmxvd1koKSA9PSBPdmVyZmxv
dzo6VmlzaWJsZTsgfQorCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlv
clgoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclgpOyB9CisgICAgT3ZlcnNjcm9s
bEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxC
ZWhhdmlvclkpOyB9CiAgICAgCiAgICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8VmlzaWJpbGl0eT4obV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5
KTsgfQogICAgIFZlcnRpY2FsQWxpZ24gdmVydGljYWxBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PFZlcnRpY2FsQWxpZ24+KG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGln
bik7IH0KQEAgLTg5Niw2ICs5MDAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE92ZXJmbG93
WChPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dYID0gIHN0YXRpY19j
YXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0T3ZlcmZsb3dZKE92ZXJmbG93IHYpIHsg
bV9ub25Jbmhlcml0ZWRGbGFncy5vdmVyZmxvd1kgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7
IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclgoT3ZlcnNjcm9sbEJlaGF2aW9yIHYp
IHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JYLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZp
b3JZKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0
YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQogICAg
IHZvaWQgc2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5IHYpIHsgbV9pbmhlcml0ZWRGbGFncy52aXNp
YmlsaXR5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNh
bEFsaWduKFZlcnRpY2FsQWxpZ24gdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxp
Z24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxp
Z25MZW5ndGgoTGVuZ3RoJiYgbGVuZ3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGln
bjo6TGVuZ3RoKTsgU0VUX1ZBUihtX2JveERhdGEsIG1fdmVydGljYWxBbGlnbiwgV1RGTW92ZShs
ZW5ndGgpKTsgfQpAQCAtMTQ0OSw2ICsxNDU1LDkgQEAgcHVibGljOgogICAgIC8vIEluaXRpYWwg
dmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlh
bE92ZXJmbG93WCgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CiAgICAgc3RhdGljIE92
ZXJmbG93IGluaXRpYWxPdmVyZmxvd1koKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQor
ICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgo
KSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICBzdGF0aWMgT3ZlcnNj
cm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkgeyByZXR1cm4gT3ZlcnNj
cm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICBzdGF0aWMgQ2xlYXIgaW5pdGlhbENsZWFyKCkg
eyByZXR1cm4gQ2xlYXI6Ok5vbmU7IH0KICAgICBzdGF0aWMgRGlzcGxheVR5cGUgaW5pdGlhbERp
c3BsYXkoKSB7IHJldHVybiBEaXNwbGF5VHlwZTo6SW5saW5lOyB9CiAgICAgc3RhdGljIEVVbmlj
b2RlQmlkaSBpbml0aWFsVW5pY29kZUJpZGkoKSB7IHJldHVybiBVQk5vcm1hbDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwCmluZGV4IDE5ZTMzNzJlMTNjLi5jYTU3YTFkMDM3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcApAQCAtNjAsNiArNjAsOCBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIHNjcm9sbFNuYXBQb3J0KFN0
eWxlU2Nyb2xsU25hcFBvcnQ6OmNyZWF0ZSgpKQogICAgICwgc2Nyb2xsU25hcEFyZWEoU3R5bGVT
Y3JvbGxTbmFwQXJlYTo6Y3JlYXRlKCkpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlv
clgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJl
aGF2aW9yWCgpKSkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpKSkKICAgICAsIHdp
bGxDaGFuZ2UoUmVuZGVyU3R5bGU6OmluaXRpYWxXaWxsQ2hhbmdlKCkpCiAgICAgLCBtYXNrKEZp
bGxMYXllclR5cGU6Ok1hc2spCiAgICAgLCBvYmplY3RQb3NpdGlvbihSZW5kZXJTdHlsZTo6aW5p
dGlhbE9iamVjdFBvc2l0aW9uKCkpCkBAIC0xMzcsNiArMTM5LDggQEAgaW5saW5lIFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVS
YXJlTm9uSW4KICAgICAsIHNjcm9sbFNuYXBQb3J0KG8uc2Nyb2xsU25hcFBvcnQpCiAgICAgLCBz
Y3JvbGxTbmFwQXJlYShvLnNjcm9sbFNuYXBBcmVhKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xs
QmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlv
clkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZKQogICAgICwgY29udGVudChvLmNvbnRlbnQgPyBvLmNv
bnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQogICAgICwgY291bnRlckRpcmVjdGl2ZXMoby5jb3Vu
dGVyRGlyZWN0aXZlcyA/IHN0ZDo6bWFrZV91bmlxdWU8Q291bnRlckRpcmVjdGl2ZU1hcD4oKm8u
Y291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKICAgICAsIGFsdFRleHQoby5hbHRUZXh0KQpA
QCAtMjQwLDYgKzI0NCw4IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0
b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIHNj
cm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xsU25hcFBvcnQKICAgICAgICAgJiYgc2Nyb2xsU25hcEFy
ZWEgPT0gby5zY3JvbGxTbmFwQXJlYQogI2VuZGlmCisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhh
dmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JYCisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhh
dmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZCiAgICAgICAgICYmIGNvbnRlbnREYXRhRXF1
aXZhbGVudChvKQogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKGNvdW50ZXJEaXJl
Y3RpdmVzLCBvLmNvdW50ZXJEaXJlY3RpdmVzKQogICAgICAgICAmJiBhbHRUZXh0ID09IG8uYWx0
VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMjEzM2I4ODVjMzIuLjY5OGE5MmNhNmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEyOCw2ICsxMjgsOSBAQCBwdWJsaWM6CiAgICAgRGF0
YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisgICAg
dW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgor
ICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZp
b3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY29udGVudDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291bnRlckRpcmVjdGl2ZXM7CiAgICAg
U3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXggMGIyZmFmMWYzNGUuLjZmMTUzYjhlYjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBA
IC0xMjQsNiArMTI0LDggQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogewogICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8Y29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJj4obm9kZSk7CiAgICAgCisg
ICAgU0NST0xMSU5HX05PREVfRU5DT0RFX0VOVU0oU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yLCBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yKQorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERV9FTlVNKFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IsIHZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGFibGVBcmVhU2l6ZSwgc2Nyb2xsYWJsZUFyZWFTaXplKQogICAgIFNDUk9M
TElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlRvdGFsQ29udGVu
dHNTaXplLCB0b3RhbENvbnRlbnRzU2l6ZSkKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUsIHJlYWNoYWJs
ZUNvbnRlbnRzU2l6ZSkKQEAgLTIxNSw2ICsyMTcsOCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9s
bAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGljX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVOb2Rl
Jj4obm9kZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTQ1JPTExJTkdfTk9ERV9E
RUNPREVfRU5VTShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Okhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3IsIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvciwgc2V0SG9yaXpvbnRhbE92
ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgU0NST0xMSU5HX05PREVfREVDT0RFX0VOVU0oU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciwgV2ViQ29y
ZTo6T3ZlcnNjcm9sbEJlaGF2aW9yLCBzZXRWZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CiAg
ICAgU0NST0xMSU5HX05PREVfREVDT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsYWJsZUFyZWFTaXplLCBGbG9hdFNpemUsIHNldFNjcm9sbGFibGVBcmVhU2l6ZSk7CiAgICAg
U0NST0xMSU5HX05PREVfREVDT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxD
b250ZW50c1NpemUsIEZsb2F0U2l6ZSwgc2V0VG90YWxDb250ZW50c1NpemUpOwogICAgIFNDUk9M
TElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlYWNoYWJsZUNv
bnRlbnRzU2l6ZSwgRmxvYXRTaXplLCBzZXRSZWFjaGFibGVDb250ZW50c1NpemUpOwpAQCAtNTEx
LDYgKzUxNSwxMiBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAKIHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgbm9kZSwgYm9vbCBj
aGFuZ2VkUHJvcGVydGllc09ubHkpCiB7CisgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkg
fHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpI
b3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJo
b3Jpem9udGFsLW92ZXJzY3JvbGwtYmVoYXZpb3IiLCBzdGF0aWNfY2FzdDxpbnQ+KG5vZGUuaG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpKSk7CisKKyAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0
aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJ2ZXJ0aWNhbC1vdmVyc2Nyb2xsLWJlaGF2aW9yIiwgc3RhdGljX2Nhc3Q8aW50Pihub2Rl
LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpKTsKKwogICAgIGlmICghY2hhbmdlZFByb3Bl
cnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFTaXplKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJz
Y3JvbGxhYmxlLWFyZWEtc2l6ZSIsIG5vZGUuc2Nyb2xsYWJsZUFyZWFTaXplKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDJlZjVlNDNh
ZGI0Li42MjViZTVkNzI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNh
dGlvbkRpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5
cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV29ya2VyVHlwZS5oPgpAQCAtNzU5LDYgKzc2MCwxNSBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRBdHRhY2htZW50RGF0
YT4gewogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvciwKKyAgICBXZWJDb3JlOjpPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG8sCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpD
b250YWluLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgID47Cit9
OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsK
ICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgIFdlYkNvcmU6OkNvbG9yU3BhY2Us
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBiOTA4NGJlYjkw
YS4uN2RiMjZjYTJhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFt
bApAQCAtMTIzMSw2ICsxMjMxLDEzIEBAIFBvaW50ZXJFdmVudHNFbmFibGVkOgogICB3ZWJjb3Jl
QmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjYXRlZ29yeTogZXhwZXJpbWVudGFs
CiAKK092ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZh
bHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9y
IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBw
cm90b3R5cGUiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlP
Uy5tbQppbmRleCBkN2M1NGE1ZWViOS4uZjJjNjM2NjQ2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAg
LTIyMyw2ICsyMjMsOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogewogICAgIFNldEZvclNj
b3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdlKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlLCB0cnVlKTsK
ICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKQorICAgICAgICB8fCBzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikKKyAgICAgICAgfHwgc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxD
b250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUp
CiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxQb3NpdGlvbikKQEAgLTIzMSw2ICsyMzMsMjQg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICAgICAgVUlTY3JvbGxWaWV3ICpzY3JvbGxW
aWV3ID0gKFVJU2Nyb2xsVmlldyAqKVtzY3JvbGxMYXllcigpIGRlbGVnYXRlXTsKICAgICAgICAg
QVNTRVJUKFtzY3JvbGxWaWV3IGlzS2luZE9mQ2xhc3M6W1VJU2Nyb2xsVmlldyBzZWxmXV0pOwog
CisgICAgICAgIC8vIEZJWE1FKHJkYXI6Ly9wcm9ibGVtLzM0MzE1OTk3KTogVUlTY3JvbGxWaWV3
IHNob3VsZCBoYXZlIHNvbWUga2luZCBvZiBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsLWJlaGF2aW9y
IHRvIGVuYWJsZS9kaXNhYmxlOgorICAgICAgICAvLyAtIG5vbi1sb2NhbCBib3VuZGFyeSBkZWZh
dWx0IGFjdGlvbnMgKGUuZy4gc2Nyb2xsIGNoYWluaW5nKS4KKyAgICAgICAgLy8gLSBsb2NhbCBi
b3VuZGFyeSBkZWZhdWx0IGFjdGlvbnMgKGUuZy4gYm91bmNpbmcpLgorI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisgICAgICAgIC8vIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvcikpCisgICAgICAgIC8vICAgICBzY3JvbGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlv
ckhvcml6b250YWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQo
c2Nyb2xsaW5nU3RhdGVOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSk7CisgICAg
ICAgIC8vIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAg
ICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JWZXJ0aWNhbCA9IGNvbnZlcnRP
dmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSk7CisjZW5kaWYKKyAgICAgICAgLy8gRm9yIG5vdywg
d2Ugb25seSBkaXNhYmxlIGJvdW5jaW5nIHdoZW4gYm90aCBvdmVyZmxvdy14IGFuZCBvdmVyZmxv
dy15IGFyZSBub25lLgorICAgICAgICAvLyBVSVNjcm9sbFZpZXc6OmFsd2F5c0JvdW5jZSogZnVu
Y3Rpb25zIGNhbm5vdCBoZWxwIGhlcmUuCisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcikKKyAgICAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcikpIHsKKyAgICAgICAgICAgIHNjcm9sbFZpZXcuYm91bmNlcyA9IHNj
cm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNj
cm9sbEJlaGF2aW9yOjpOb25lCisgICAgICAgICAgICAmJiBzY3JvbGxpbmdTdGF0ZU5vZGUudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAg
ICAgICAgICAgID8gTk8gOiBZRVM7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlNjcm9sbENvbnRhaW5lckxheWVyKSkgewogICAgICAgICAgICAgaWYgKCFtX3Njcm9sbFZpZXdE
ZWxlZ2F0ZSkKICAgICAgICAgICAgICAgICBtX3Njcm9sbFZpZXdEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xs
aW5nVHJlZU5vZGVEZWxlZ2F0ZTp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBjZWQz
MzU1ODZkYi4uM2Q3ZjkyNzViZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTgyLDYgKzE4
Miw3IEBACiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdERpcmVj
dG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1v
ZGVybk1lZGlhQ29udHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0bGVDcnlwdG9FbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA1OGQ3
OWI4MzUyZC4uNGQ1NTg3NDljZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNjU2LDYgKzY1Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgQFlFUywgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSwK
ICNlbmRpZgogCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJl
ZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktp
dE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrS2V5LAogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2Vz
VG9Bc2tGb3JDcmVkZW50aWFsc0tleSwKQEAgLTMxMjgsNiArMzEyOSwxNiBAQCBzdGF0aWMgTlNT
dHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
IH0KIAorLSAoQk9PTClvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkCit7CisgICAgcmV0dXJuIFtz
ZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZl
cmVuY2VLZXldOworfQorCistICh2b2lkKXNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6KEJP
T0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0T3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKUNTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZv
cktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaAppbmRleCA2YjlkN2E1MWJkZS4uMjA4OTZhZjJmZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aApAQCAtNTg5LDYgKzU4OSw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNo
ZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtICh2b2lkKXNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZzsKIAogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZjFhMmRiYWM4YzEuLmJmODgz
NjdiYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC0yOTcxLDYgKzI5NzEsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRp
bmdRdWlyaygpCiAgICAgc2V0dGluZ3Muc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShbcHJlZmVyZW5jZXMgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxs
eV0gfHwgc2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkpOwogCiAgICAg
c2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyB2aXN1YWxW
aWV3cG9ydEFQSUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkXSk7CiAgICAgc2V0
dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApp
bmRleCAxOTg4MmNkZDBmMC4uN2M4NjRiZGVhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlk
bApAQCAtMjIxLDYgKzIyMSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6
IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlv
bnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VM
VCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAg
IEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxl
ZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBC
T09MKiBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKaW5kZXggOTQwZDVjZjU1ZDEuLjE0NGJlMDFkMTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApA
QCAtMjA0LDUgKzIwNCw2IEBACiAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMDI1YzIwYmVh
MjMuLjBkNGRiMGE4MDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuY3BwCkBAIC0zMjcsNiArMzI3LDggQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6
ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJv
b2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIo
V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFu
RmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZh
bHNlKTsKIAogICAgIGRlZmF1bHRTZXR0aW5ncyA9IGRlZmF1bHRzOwpAQCAtMjE4NSw2ICsyMTg3
LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVy
ZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sK
KyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJs
ZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZl
cmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2Vz
OjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRC
b29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksIGVu
YWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAg
aWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5k
ZXggMjkwNmIzNmIxODguLjkxMzI3NzE1OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VzLmgKQEAgLTI2OSw2ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9P
TCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBC
T09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRj
aEFQSUtlZXBBbGl2ZUVuYWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAppbmRleCAzZmY4MWNmMjA4OS4uZjkxMmIyNmM3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCkBAIC01Mjk1LDYgKzUyOTUsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpu
b3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQog
ICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVy
biBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxl
ZCk7CisKICAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCBjOTI2NjEyYjFiMS4uZmNlZTZlMDhh
MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTExMSw2ICsxMTEsOCBA
QCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwg
Y29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNhbCA9
IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtl
eSA9PSAiaW50ZXJuYWw6QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCIpCiAgICAgICAgICAgICBh
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZh
bHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6b3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgPSBw
YXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBwYWlyU3RhcnQgPSBw
YWlyRW5kICsgMTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBj
MjdlODQyYTQ4Zi4uMzcwNDdlZDU1M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApA
QCAtNDYsNiArNDYsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZW5hYmxlV2Vi
R1BVIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAg
IGJvb2wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFi
bGVPdmVyc2Nyb2xsQmVoYXZpb3IgeyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGpzY09wdGlv
bnM7CiAKICAgICBUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25z
dCBzdGQ6OnN0cmluZyYgYWJzb2x1dGVQYXRoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQppbmRleCBiMDUyNDEyYjBmYy4uMGIyNjk4MzBlMDggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMTgsNiArMTAxOCw3
IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlv
bnMuZW5hYmxlV2ViR1BVOwogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlv
bkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CisgICAgcHJlZmVy
ZW5jZXMub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlT3ZlcnNjcm9s
bEJlaGF2aW9yOwogfQogCiAvLyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVw
LgotLSAKMi4yMC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377722</attachid>
            <date>2019-08-30 10:08:18 -0700</date>
            <delta_ts>2019-08-30 11:13:45 -0700</delta_ts>
            <desc>tentative rebase (not tested)</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>49403</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA3NmFkNGZkMDI0NTQ3MDlmNTIwMGMxNGQxNGM5MDliNTU2OWY2ZDRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBGcmksIDMwIEF1ZyAyMDE5IDE5OjA2OjQyICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM3ICsrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gICAgICAgICB8
IDQwICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgICAgICAgIHwgIDYgKysrCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuY3BwICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuaCAgfCAgNCArLQogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAgIHwgNDQgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwICAgICAgICAgIHwgMzEgKysrKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwICAgICAgICAgICAgIHwgMTQgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oICAgICAgICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sICAgICAgICAgICAgIHwgIDMgKysKIC4uLi9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAgICB8ICAyICsKIC4uLi9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUeXBlcy5oICAgICB8ICAzICsrCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmggICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxU
eXBlcy5oICAgICAgICAgfCAgNiArKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwICAgICAgfCAxMCArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmggICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oICB8ICA5ICsrKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcCAgICAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aCAgICAgICAgIHwgIDMgKysKIC4uLi9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uLmNwcCB8IDEwICsrKysrCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCAgfCAxMCArKysrKwogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbCAgICAgIHwgIDcgKysrCiAuLi4vU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbSAgfCAyMSArKysrKysrKysKIC4uLi9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaCAgICB8ICAxICsKIC4uLi9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICB8IDExICsrKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmggICAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gICAgfCAgMSArCiAuLi4vd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZS5pZGwgfCAgMiArCiAuLi4vd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAg
ICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAg
fCAxNiArKysrKysrCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAg
ICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCAgICAgICAgICAg
fCAgNSArKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCAgICAgICAgICB8
ICAyICsKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggICAgICAgICAgICB8ICAx
ICsKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSAgICB8ICAxICsK
IDM5IGZpbGVzIGNoYW5nZWQsIDMyNiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDYwYjZhNTI1Mjc4Li5lZThiZGM4Mjk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI2Niw2ICsyNjYsOCBA
QCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICAg
ICBDU1NQcm9wZXJ0eU92ZXJmbG93V3JhcCwKICAgICBDU1NQcm9wZXJ0eU92ZXJmbG93WCwKICAg
ICBDU1NQcm9wZXJ0eU92ZXJmbG93WSwKKyAgICBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clgsCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZLAogICAgIENTU1Byb3BlcnR5
UGFkZGluZ0JvdHRvbSwKICAgICBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0LAogICAgIENTU1Byb3Bl
cnR5UGFkZGluZ1JpZ2h0LApAQCAtMzM0Niw2ICszMzQ4LDEyIEBAIFJlZlB0cjxDU1NWYWx1ZT4g
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoY29uc3QgUmVu
ZGVyU3R5CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxl
Lm92ZXJmbG93WCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAg
ICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcmZsb3dZKCkp
OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdGQ6Om1heChzdHlsZS5vdmVyc2Ny
b2xsQmVoYXZpb3JYKCksIHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclkoKSkpOworICAgICAgICBj
YXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpKTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclko
KSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgcmV0
dXJuIHpvb21BZGp1c3RlZFBhZGRpbmdPck1hcmdpblBpeGVsVmFsdWU8JlJlbmRlclN0eWxlOjpw
YWRkaW5nVG9wLCAmUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ1RvcD4o
c3R5bGUsIHJlbmRlcmVyKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4
IDhmNjNlMGE3YTBjLi5lZTRjY2JkMjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTGlu
ZUNsYW1wVmFsdWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlRGVmcy5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5j
bHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVkZSAiVGhlbWVUeXBlcy5oIgogI2luY2x1ZGUgIlRv
dWNoQWN0aW9uLmgiCkBAIC0yMjEzLDYgKzIyMTQsNDIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93KCkgY29uc3QKICAgICByZXR1cm4gT3Zl
cmZsb3c6OlZpc2libGU7CiB9CiAKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyc2Nyb2xsQmVoYXZpb3IgZSkKKyAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQoreworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CisgICAgc3dpdGNoIChlKSB7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRh
aW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworCisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhh
dmlvcjo6Q29udGFpbjsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIE92
ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAg
cmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvOworfQorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQnJlYWtCZXR3ZWVuIGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmlu
ZGV4IGJjZjE2MWMwMWI0Li5mY2VkZDMxMzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dGllcy5qc29uCkBAIC0zMjc2LDYgKzMyNzYsNDYgQEAKICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJvcGRlZi1vdmVyZmxvdy15
IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlv
ciI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAg
ICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZp
b3IteCIsCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAg
ICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7Cisg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVy
c2Nyb2xsLWJlaGF2aW9yIgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvci14IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAg
ICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAg
ICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0
dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Ny
b2xsLWJlaGF2aW9yLXgiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJvdmVy
c2Nyb2xsLWJlaGF2aW9yLXkiOiB7CisgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAgICAg
ICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAgICAgICAgICAg
ICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAg
ICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJzY3Jv
bGwtYmVoYXZpb3IteSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgInBhZGRp
bmciOiB7CiAgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewogICAgICAgICAgICAg
ICAgICJsb25naGFuZHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmlu
ZGV4IGM0NzY3ZjVhNzMxLi45Zjc4NTg0MjZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KQEAgLTEzODQsNiArMTM4NCw5IEBAIHBhbi15CiBwaW5jaC16b29tCiAjZW5k
aWYKIAorLy8gb3ZlcnNjcm9sbC1iZWhhdmlvcgorLy8gY29udGFpbgorCiAvLyBoYW5naW5nLXB1
bmN0dWF0aW9uCiBhbGxvdy1lbmQKIGZpcnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwCmluZGV4IDE5Y2IwMzNkNzBiLi40ZjZiZjI2MmFkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTI0NCw2ICsyNDQsOCBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHdlYmtpdE1hcmdpbkNvbGxhcHNlU2hv
cnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJu
IGdldENvbW1vblZhbHVlKG92ZXJmbG93U2hvcnRoYW5kKCkpOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBnZXRDb21tb25WYWx1ZShvdmVy
c2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6
CiAgICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBhZGRpbmdTaG9ydGhhbmQoKSk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmdCbG9jazoKQEAgLTExNjUsNiArMTE2NywxMCBAQCBTdHJpbmcg
U3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAogICAgICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NT
UHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJv
cGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOworICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgogICAgICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcAppbmRleCA3NTM3MTg4Y2I5My4uN2MzNDY0NjgxMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtNzUsNiAr
NzUsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzaGVldEJhcwogICAgIGF0dGFjaG1lbnRFbmFibGVkID0g
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVu
dEVuYWJsZWQoKTsKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3Vt
ZW50LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CisgICAgb3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkub3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBkb2N1bWVudC5wYWdlKCkgPyBk
b2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSA6IGZhbHNlOwogfQogCkBAIC0x
MDAsNiArMTAxLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEs
IGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAjZW5kaWYKICAgICAgICAgJiYgYS5kZWZlcnJl
ZENTU1BhcnNlckVuYWJsZWQgPT0gYi5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQKICAgICAgICAg
JiYgYS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID09IGIuaGFzRG9jdW1lbnRTZWN1cml0eU9y
aWdpbgorICAgICAgICAmJiBhLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPT0gYi5vdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkCiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5jZSA9PSBi
LnVzZVN5c3RlbUFwcGVhcmFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJDb250ZXh0LmgKaW5kZXggYjI4ODZhOTg2YzMuLjAyNGNmYWMwZWM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaApAQCAtNjEsNiArNjEs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhdHRhY2htZW50RW5hYmxlZCB7IGZhbHNlIH07CiAjZW5k
aWYKICAgICBib29sIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlz
IGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wg
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMTIsNyArMTEzLDggQEAg
c3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogICAgICAgICAgICAgJiBrZXkuYXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgPDwgMTEKICNlbmRpZgotICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTI7IC8vIEtlZXAgdGhpcyBsYXN0LgorICAg
ICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
PDwgMTIKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFzaCBePSBXVEY6
OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggNzA4ZWM3Nzcz
YzEuLmM2NWE2YzQ3NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VyLmNwcApAQCAtMjMyMyw2ICsyMzIzLDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBjb25zdW1lU2Nyb2xsU25hcFR5cGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UpCiAKICNlbmRpZgogCitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJ
RCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAm
JiB2YWx1ZUlEICE9IENTU1ZhbHVlTm9uZSAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlQ29udGFpbikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7
Cit9CisKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkK
IHsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVM
ZW5ndGhPclBlcmNlbnQocmFuZ2UsIGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2
ZSk7CkBAIC0zOTIyLDYgKzM5MzAsMTEgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBh
cnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICBj
YXNlIENTU1Byb3BlcnR5U2Nyb2xsU25hcFR5cGU6CiAgICAgICAgIHJldHVybiBjb25zdW1lU2Ny
b2xsU25hcFR5cGUobV9yYW5nZSk7CiAjZW5kaWYKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToK
KyAgICAgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxC
ZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0
dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICNpZiBFTkFCTEUoUE9J
TlRFUl9FVkVOVFMpCkBAIC01NTY5LDYgKzU1ODIsMzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNl
cjo6Y29uc3VtZVBsYWNlU2VsZlNob3J0aGFuZChib29sIGltcG9ydGFudCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhh
dmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCkKK3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9y
UHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOwor
ICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1
bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZp
b3JYKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJz
Y3JvbGxCZWhhdmlvclk7CisgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlm
IChtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Ny
b2xsQmVoYXZpb3JYOworICAgIGVsc2UgeworICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0g
Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25z
dW1lV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAoIW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92
ZXJzY3JvbGxCZWhhdmlvclgsIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNj
cm9sbEJlaGF2aW9yWCwgaW1wb3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92
ZXJzY3JvbGxCZWhhdmlvclksIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNj
cm9sbEJlaGF2aW9yWSwgaW1wb3J0YW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBD
U1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwg
Ym9vbCBpbXBvcnRhbnQpCiB7CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewpAQCAtNTYwOCw2ICs1
NjUwLDggQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGFkZFByb3BlcnR5KENTU1By
b3BlcnR5T3ZlcmZsb3dZLCBDU1NQcm9wZXJ0eU92ZXJmbG93LCAqb3ZlcmZsb3dZVmFsdWUsIGlt
cG9ydGFudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICBjYXNlIENTU1Byb3Bl
cnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxC
ZWhhdmlvclNob3J0aGFuZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250OiB7
CiAgICAgICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IG1fcmFuZ2UucGVlaygpOwog
ICAgICAgICBpZiAodG9rZW4uaWQoKSA+PSBDU1NWYWx1ZUNhcHRpb24gJiYgdG9rZW4uaWQoKSA8
PSBDU1NWYWx1ZVN0YXR1c0JhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuaAppbmRleCBiY2QxYjkyN2ZjYy4uOWNjZGUyMjdhNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTEwOCw2ICsxMDgs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGltcG9y
dGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRhbnQp
OwogCisgICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1w
b3J0YW50KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9rZW5S
YW5nZSBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDEwNmM4
MGI3ZGJmLi5lOTA2NWNiNzVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMjkzLDE1ICsyOTMsMTUgQEAgc3RhdGljIGlubGluZSBTY3JvbGxHcmFudWxhcml0eSB3aGVl
bEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh1bnNpZ25lZCBkZWwKICAgICB9CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVB
cmVhKiBzY3JvbGxhYmxlQXJlYSwgV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxh
YmxlQXJlYSwgZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgdW5zaWduZWQgZGVsdGFNb2Rl
KQogewotICAgIFNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFu
dWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkod2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CisgICAg
U2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9T
Y3JvbGxHcmFudWxhcml0eShkZWx0YU1vZGUpOwogICAgIGJvb2wgZGlkSGFuZGxlV2hlZWxFdmVu
dCA9IGZhbHNlOwotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxF
dmVudC5kZWx0YVgoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJs
ZUFyZWEtPnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Ny
b2xsTGVmdCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9h
dCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFYKSkKKyAgICAgICAgZGlkSGFuZGxlV2hl
ZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsKGRlbHRhWCA+IDAgPyBTY3JvbGxSaWdo
dCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAK
LSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFZ
KCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3Jv
bGwod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNjcm9s
bEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0
YSA9IHN0ZDo6YWJzKGRlbHRhWSkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Ny
b2xsYWJsZUFyZWEtPnNjcm9sbChkZWx0YVkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBz
Y3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRpZEhh
bmRsZVdoZWVsRXZlbnQ7CiB9CkBAIC0zMjAsMTggKzMyMCwyMCBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnRO
b2RlLCBXaAogCiAgICAgUmVuZGVyQm94JiBpbml0aWFsRW5jbG9zaW5nQm94ID0gc3RhcnROb2Rl
LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdCb3goKTsKICAgICBpZiAoaW5pdGlhbEVuY2xvc2luZ0Jv
eC5pc0xpc3RCb3goKSkKLSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEo
c3RhdGljX2Nhc3Q8UmVuZGVyTGlzdEJveCo+KCZpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxF
dmVudCk7CisgICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKHN0YXRpY19j
YXN0PFJlbmRlckxpc3RCb3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQuZGVs
dGFYKCksIHdoZWVsRXZlbnQuZGVsdGFZKCksIHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOwogCiAg
ICAgUmVuZGVyQm94KiBjdXJyZW50RW5jbG9zaW5nQm94ID0gJmluaXRpYWxFbmNsb3NpbmdCb3g7
CisgICAgYm9vbCBpZ25vcmVEZWx0YVggPSBmYWxzZTsKKyAgICBib29sIGlnbm9yZURlbHRhWSA9
IGZhbHNlOwogICAgIHdoaWxlIChjdXJyZW50RW5jbG9zaW5nQm94KSB7CiAgICAgICAgIGlmIChS
ZW5kZXJMYXllciogYm94TGF5ZXIgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5sYXllcigpKSB7CiAg
ICAgICAgICAgICBhdXRvIHBsYXRmb3JtRXZlbnQgPSB3aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0
Zm9ybUV2ZW50KCk7CiAgICAgICAgICAgICBib29sIHNjcm9sbGluZ1dhc0hhbmRsZWQ7CiAgICAg
ICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewotICAgICAgICAgICAgICAgIGF1dG8gY29waWVk
RXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVk
UGxhdGZvcm1EZWx0YS53aWR0aCgpLCBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZp
bHRlcmVkVmVsb2NpdHkpOworICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0
Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGlnbm9yZURlbHRhWCA/IDAgOiBm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgaWdub3JlRGVsdGFZID8gMCA6IGZpbHRlcmVk
UGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CiAgICAgICAgICAgICAg
ICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGJveExheWVyLT5oYW5kbGVXaGVlbEV2ZW50KGNvcGll
ZEV2ZW50KTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dh
c0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGJveExheWVyLCB3aGVlbEV2ZW50
KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3Jv
bGxhYmxlQXJlYShib3hMYXllciwgaWdub3JlRGVsdGFYID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFY
KCksIGlnbm9yZURlbHRhWSA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRl
bHRhTW9kZSgpKTsKIAogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRsZWQpIHsKICAg
ICAgICAgICAgICAgICBpZiAoc3RvcEVsZW1lbnQpCkBAIC0zNDMsNiArMzQ1LDE3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChO
b2RlKiBzdGFydE5vZGUsIFdoCiAgICAgICAgIGlmIChzdG9wRWxlbWVudCAmJiAqc3RvcEVsZW1l
bnQgJiYgKnN0b3BFbGVtZW50ID09IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgICAgIGlmICghaWdub3JlRGVsdGFYICYmIGN1
cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpICE9IE92ZXJz
Y3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWCA9IHRydWU7Cisg
ICAgICAgIGlmICghaWdub3JlRGVsdGFZICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCku
b3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAg
ICAgICAgIGlnbm9yZURlbHRhWSA9IHRydWU7CisgICAgICAgIGlmIChpZ25vcmVEZWx0YVggJiYg
aWdub3JlRGVsdGFZKSB7CisgICAgICAgICAgICAvLyBXZSBjbGFpbSB0aGF0IHRoZSBldmVudCB3
YXMgaGFuZGxlZCBzbyB0aGF0IGl0IGlzIG5vdCBwcm9wYWdhdGVkIHRvIHRoZSBhbmNlc3RvciBm
cmFtZXMuCisgICAgICAgICAgICBpZiAoc3RvcEVsZW1lbnQpCisgICAgICAgICAgICAgICAgKnN0
b3BFbGVtZW50ID0gY3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBjdXJyZW50RW5jbG9zaW5nQm94ID0g
Y3VycmVudEVuY2xvc2luZ0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICghY3Vy
cmVudEVuY2xvc2luZ0JveCB8fCBjdXJyZW50RW5jbG9zaW5nQm94LT5pc1JlbmRlclZpZXcoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCBjYjRiODFhMzU2OC4uNmU1ZTBmY2JlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
QEAgLTQxNiw2ICs0MTYsMjAgQEAgYm9vbCBGcmFtZVZpZXc6OmRpZEZpcnN0TGF5b3V0KCkgY29u
c3QKICAgICByZXR1cm4gbGF5b3V0Q29udGV4dCgpLmRpZEZpcnN0TGF5b3V0KCk7CiB9CiAKK092
ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSBjb25zdAoreworICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVy
VmlldygpKQorICAgICAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVo
YXZpb3JYKCk7CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpob3Jpem9udGFsT3ZlcnNjcm9s
bEJlaGF2aW9yKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6OnZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJldHVybiByZW5kZXJWaWV3LT5z
dHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKKyAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6
OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7Cit9CisKIHZvaWQgRnJhbWVWaWV3OjppbnZh
bGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmICghcGFyZW50KCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDdjZDk1ZGZjODIzLi5hZmRjNmI3ZDM5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC03MjMsNiArNzIzLDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gU2Nyb2xs
YWJsZUFyZWEgaW50ZXJmYWNlCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgaW52YWxp
ZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwogICAg
IHZvaWQgc2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5hbDsKICAgICB2b2lkIHNl
dFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JikgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMzM1Yjc4YWVkNjMuLjk4Y2NiNzdiZjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC01OTksNiArNTk5LDkgQEAgdmlzdWFsVmlld3BvcnRB
UElFbmFibGVkOgogc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaW5pdGlhbDog
dHJ1ZQogCitvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDAwYWYzOTQ3OGRjLi44NmUyMWQwMDA2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKQEAgLTY5MSw2ICs2OTEsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnNldFNjcm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwog
ICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZp
c2libGVTaXplKCkpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFt
ZXRlcnM7CisgICAgc2Nyb2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9y
ID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNj
cm9sbFBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJl
YS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9y
aXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xs
RWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Ny
b2xsUGFyYW1ldGVycy5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxT
Y3JvbGxiYXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBl
cy5oCmluZGV4IDY5NGVmZGU2N2VlLi42MTE3Y2NiN2FjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApA
QCAtNTgsNiArNTgsOSBAQCBlbnVtIGNsYXNzIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24g
ewogfTsKIAogc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7CisgICAgT3ZlcnNjcm9s
bEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZp
b3I6OiBBdXRvIH07CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworCiAgICAgU2Nyb2xsRWxhc3Rp
Y2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07
CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxF
bGFzdGljaXR5Tm9uZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA3ZTVlNDVjYTMyOS4u
YTgyMDcxZjgwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtMTIyLDYgKzEyMiw4IEBAIHBy
b3RlY3RlZDoKICAgICBjb25zdCBGbG9hdFNpemUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVy
QmFuZCgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9
CiAgICAgdm9pZCBzZXRUb3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoY29uc3QgRmxvYXRT
aXplJiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQpIHsgbV90b3RhbENvbnRlbnRzU2l6
ZUZvclJ1YmJlckJhbmQgPSB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KIAorICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxC
ZWhhdmlvcjsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yOyB9CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSBob3Jpem9udGFsU2Ny
b2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
Lmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5OyB9CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0
aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFy
YW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFR5cGVzLmgKaW5kZXggODkxMTQ5MTAzZDMuLmVhMzY3NmY0ZGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTM1LDYgKzM1LDEyIEBAIGVudW0gY2xhc3Mg
U2Nyb2xsVHlwZSA6IHVpbnQ4X3QgewogICAgIFByb2dyYW1tYXRpYwogfTsKIAorZW51bSBjbGFz
cyBPdmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90IHsKKyAgICBBdXRvID0gMCwKKyAgICBDb250
YWluLAorICAgIE5vbmUKK307CisKIGVudW0gU2Nyb2xsRGlyZWN0aW9uIDogdWludDhfdCB7CiAg
ICAgU2Nyb2xsVXAsCiAgICAgU2Nyb2xsRG93biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IGQ3NDM4YzE1Y2Q1Li4xZTE4NzIxZjI0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMTIsNiArMTEyLDkgQEAgcHVibGlj
OgogICAgIGJvb2wgY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOyB9CiAgICAgdm9pZCBzZXRD
b25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdU
b0NvbnRlbnRFZGdlKSB7IG1fY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UgPSBjb25z
dHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQogCisgICAgdmlydHVhbCBPdmVyc2Nyb2xs
QmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIE92
ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9y
IHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpBdXRvOyB9CisKICAgICB2b2lkIHNldFZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShT
Y3JvbGxFbGFzdGljaXR5IHNjcm9sbEVsYXN0aWNpdHkpIHsgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0
aWNpdHkgPSBzY3JvbGxFbGFzdGljaXR5OyB9CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNh
bFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTY3JvbGxFbGFz
dGljaXR5PihtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggODg0NWJlZGFjOGEuLjVmY2Y0Yjc0NjFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTMyOTEsNiArMzI5
MSwxNiBAQCB2b2lkIFJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25z
dCBJbnRSZWN0JiByZWN0KQogICAgICAgICBtX3Jlc2l6ZXItPnJlcGFpbnRSZWN0YW5nbGUocmVj
dCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBSZW5kZXJMYXllcjo6aG9yaXpvbnRhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCkuc3R5bGUoKS5v
dmVyc2Nyb2xsQmVoYXZpb3JYKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBSZW5kZXJMYXll
cjo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAgY29uc3QKK3sKKyAgICByZXR1cm4gcmVu
ZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKK30KKwogc3RhdGljIGJvb2wg
c2Nyb2xsYmFySGlkZGVuQnlTdHlsZShTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKICAgICBpZiAo
IXNjcm9sbGJhciB8fCAhc2Nyb2xsYmFyLT5pc0N1c3RvbVNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBiYzk0YmQ2Mjk0NS4uODkwZGUzY2YzMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00NjIsNiArNDYyLDkg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0
dXJuIGhvcml6b250YWxTY3JvbGxiYXIoKTsgfQogICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxi
YXIoKSBjb25zdCB7IHJldHVybiB2ZXJ0aWNhbFNjcm9sbGJhcigpOyB9CiAKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOwor
ICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0
IGZpbmFsOworCiAgICAgYm9vbCBob3Jpem9udGFsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGJvb2wgdmVydGljYWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggYzM2MTIwN2RiZjAuLmZlZGFiODk1MDg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNDcsNiArNDcsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIK
ICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAj
aW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRl
ICJTdHlsZUJhY2tncm91bmREYXRhLmgiCkBAIC0zMzYsNiArMzM3LDkgQEAgcHVibGljOgogICAg
IE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBP
dmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29s
IGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZs
b3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5v
dmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xs
QmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9y
PihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAog
ICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZp
c2liaWxpdHk+KG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFs
aWduIHZlcnRpY2FsQWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFs
aWduPihtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTAsNiArODk0
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25v
bkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0K
ICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mu
b3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVy
c2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9u
SW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHYpKTsgfQorICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZp
b3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlv
clksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHko
VmlzaWJpbGl0eSB2KSB7IG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWdu
IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxl
bmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIo
bV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NDUs
NiArMTQ1MSw5IEBAIHB1YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBw
cm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVy
biBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZs
b3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9s
bEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9s
bEJlaGF2aW9yOjpBdXRvOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFs
T3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsg
fQorCiAgICAgc3RhdGljIENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25l
OyB9CiAgICAgc3RhdGljIERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlz
cGxheVR5cGU6OklubGluZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNv
ZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRl
eCBiZGQwMTkxNWFhMi4uYTZjOThjNjNjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAg
LTYxLDYgKzYxLDggQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSgpCiAgICAgLCBzY3JvbGxTbmFwUG9ydChTdHlsZVNjcm9sbFNuYXBQb3J0Ojpj
cmVhdGUoKSkKICAgICAsIHNjcm9sbFNuYXBBcmVhKFN0eWxlU2Nyb2xsU25hcEFyZWE6OmNyZWF0
ZSgpKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSkpCisgICAgLCBv
dmVyc2Nyb2xsQmVoYXZpb3JZKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5p
dGlhbE92ZXJzY3JvbGxCZWhhdmlvclkoKSkpCiAgICAgLCB3aWxsQ2hhbmdlKFJlbmRlclN0eWxl
Ojppbml0aWFsV2lsbENoYW5nZSgpKQogICAgICwgbWFzayhGaWxsTGF5ZXJUeXBlOjpNYXNrKQog
ICAgICwgb2JqZWN0UG9zaXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxPYmplY3RQb3NpdGlvbigp
KQpAQCAtMTM4LDYgKzE0MCw4IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBzY3Jv
bGxTbmFwUG9ydChvLnNjcm9sbFNuYXBQb3J0KQogICAgICwgc2Nyb2xsU25hcEFyZWEoby5zY3Jv
bGxTbmFwQXJlYSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChvLm92ZXJzY3Jv
bGxCZWhhdmlvclgpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKG8ub3ZlcnNjcm9sbEJlaGF2
aW9yWSkKICAgICAsIGNvbnRlbnQoby5jb250ZW50ID8gby5jb250ZW50LT5jbG9uZSgpIDogbnVs
bHB0cikKICAgICAsIGNvdW50ZXJEaXJlY3RpdmVzKG8uY291bnRlckRpcmVjdGl2ZXMgPyBtYWtl
VW5pcXVlPENvdW50ZXJEaXJlY3RpdmVNYXA+KCpvLmNvdW50ZXJEaXJlY3RpdmVzKSA6IG51bGxw
dHIpCiAgICAgLCBhbHRUZXh0KG8uYWx0VGV4dCkKQEAgLTIzOCw2ICsyNDIsOCBAQCBib29sIFN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBzY3JvbGxTbmFwUG9ydCA9PSBvLnNjcm9sbFNu
YXBQb3J0CiAgICAgICAgICYmIHNjcm9sbFNuYXBBcmVhID09IG8uc2Nyb2xsU25hcEFyZWEKICNl
bmRpZgorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JYID09IG8ub3ZlcnNjcm9sbEJlaGF2
aW9yWAorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JZID09IG8ub3ZlcnNjcm9sbEJlaGF2
aW9yWQogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgYXJl
UG9pbnRpbmdUb0VxdWFsRGF0YShjb3VudGVyRGlyZWN0aXZlcywgby5jb3VudGVyRGlyZWN0aXZl
cykKICAgICAgICAgJiYgYWx0VGV4dCA9PSBvLmFsdFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmlu
ZGV4IDE5YzU5MWIyZDEyLi45NTczYWQxYmRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0x
MjUsNiArMTI1LDkgQEAgcHVibGljOgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxTbmFwQXJlYT4g
c2Nyb2xsU25hcEFyZWE7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlv
clggOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVo
YXZpb3JZIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q29udGVudERhdGE+IGNvbnRlbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJEaXJlY3Rp
dmVNYXA+IGNvdW50ZXJEaXJlY3RpdmVzOwogICAgIFN0cmluZyBhbHRUZXh0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IGU4
MjZhMzBiMTJlLi42MWI1NmJhMTlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcApAQCAtMTM2LDYgKzEzNiw4IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGNvbnN0IFNjcm9s
bGluZ1N0YXRlTm9kZSY+KG5vZGUpOwogICAgIAorICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERV9F
TlVNKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvciwgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikKKyAgICBTQ1JPTExJTkdfTk9ERV9F
TkNPREVfRU5VTShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yLCB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcikKICAgICBTQ1JPTExJTkdfTk9E
RV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVNpemUs
IHNjcm9sbGFibGVBcmVhU2l6ZSkKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNPREUoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSwgdG90YWxDb250ZW50c1NpemUp
CiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
UmVhY2hhYmxlQ29udGVudHNTaXplLCByZWFjaGFibGVDb250ZW50c1NpemUpCkBAIC0yMzYsNiAr
MjM4LDggQEAgYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGwKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRpY19jYXN0PFNjcm9sbGluZ1N0YXRlTm9kZSY+KG5vZGUpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgU0NST0xMSU5HX05PREVfREVDT0RFX0VOVU0oU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpIb3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yLCBXZWJDb3JlOjpPdmVy
c2Nyb2xsQmVoYXZpb3IsIHNldEhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgIFND
Uk9MTElOR19OT0RFX0RFQ09ERV9FTlVNKFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IsIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvciwgc2V0
VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOwogICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhU2l6ZSwgRmxvYXRTaXpl
LCBzZXRTY3JvbGxhYmxlQXJlYVNpemUpOwogICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplLCBGbG9hdFNpemUsIHNl
dFRvdGFsQ29udGVudHNTaXplKTsKICAgICBTQ1JPTExJTkdfTk9ERV9ERUNPREUoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUsIEZsb2F0U2l6ZSwgc2V0
UmVhY2hhYmxlQ29udGVudHNTaXplKTsKQEAgLTU5MCw2ICs1OTQsMTIgQEAgYm9vbCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQogCiBzdGF0aWMgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUmIG5vZGUsIGJvb2wgY2hhbmdlZFByb3BlcnRpZXNPbmx5KQogewor
ICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
cikpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiaG9yaXpvbnRhbC1vdmVyc2Nyb2xsLWJlaGF2
aW9yIiwgc3RhdGljX2Nhc3Q8aW50Pihub2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSkpOworCisgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWZXJ0aWNhbE92ZXJzY3JvbGxC
ZWhhdmlvcikpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgidmVydGljYWwtb3ZlcnNjcm9sbC1i
ZWhhdmlvciIsIHN0YXRpY19jYXN0PGludD4obm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlv
cigpKSk7CisKICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhU2l6
ZSkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsYWJsZS1hcmVhLXNpemUiLCBub2Rl
LnNjcm9sbGFibGVBcmVhU2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAppbmRleCAzMTYzNDE3ZGJhMC4uODAzYjY0MmVkYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9s
bFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclR5cGUu
aD4KQEAgLTc3Myw2ICs3NzQsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAK
K3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9y
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Ny
b2xsQmVoYXZpb3IsCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAg
IFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVy
c2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpDb2xvclNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKICAgICBXZWJDb3JlOjpDb2xvclNwYWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKaW5kZXggYzZlYTYwOTI3ODEuLmVkZjhhZDRhYzlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyOTAsNiArMTI5MCwxMyBAQCBT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgU3ludGhldGljIEVkaXRpbmcgQ29tbWFuZHMiCiAgIGNhdGVnb3J5OiBleHBl
cmltZW50YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBk
ZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE92ZXJzY3JvbGwg
QmVoYXZpb3IiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkNTUyBPdmVyc2Nyb2xsIEJl
aGF2aW9yIHByb3RvdHlwZSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVs
dENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDdiM2Yx
MWJmZDZiLi4wODNjOWYwMmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMjM2LDEyICsyMzYsMzMg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0
ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICBTZXRGb3JTY29wZTxib29sPiB1cGRhdGlu
Z0NoYW5nZShtX3VwZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CiAKICAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKQorICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcikKKyAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUpCiAg
ICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNj
cm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpTY3JvbGxQb3NpdGlvbikKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbE9yaWdp
bikpIHsKICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIFVJU2Ny
b2xsVmlldyAqc2Nyb2xsVmlldyA9IHRoaXMtPnNjcm9sbFZpZXcoKTsKKworICAgICAgICAvLyBG
SVhNRShyZGFyOi8vcHJvYmxlbS8zNDMxNTk5Nyk6IFVJU2Nyb2xsVmlldyBzaG91bGQgaGF2ZSBz
b21lIGtpbmQgb2Ygc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbC1iZWhhdmlvciB0byBlbmFibGUvZGlz
YWJsZToKKyAgICAgICAgLy8gLSBub24tbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChl
LmcuIHNjcm9sbCBjaGFpbmluZykuCisgICAgICAgIC8vIC0gbG9jYWwgYm91bmRhcnkgZGVmYXVs
dCBhY3Rpb25zIChlLmcuIGJvdW5jaW5nKS4KKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
ICAgICAgICAvLyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQor
ICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JIb3Jpem9udGFsID0g
Y29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRl
Tm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpOworICAgICAgICAvLyBpZiAoc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgLy8gICAgIHNjcm9s
bFZpZXcub3ZlcnNjcm9sbEJlaGF2aW9yVmVydGljYWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2
aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkpOworI2VuZGlmCisgICAgICAgIC8vIEZvciBub3csIHdlIG9ubHkgZGlzYWJs
ZSBib3VuY2luZyB3aGVuIGJvdGggb3ZlcmZsb3cteCBhbmQgb3ZlcmZsb3cteSBhcmUgbm9uZS4K
KyAgICAgICAgLy8gVUlTY3JvbGxWaWV3OjphbHdheXNCb3VuY2UqIGZ1bmN0aW9ucyBjYW5ub3Qg
aGVscCBoZXJlLgorICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Okhvcml6b250YWxPdmVyc2Nyb2xsQmVo
YXZpb3IpCisgICAgICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IpKSB7CisgICAgICAgICAgICBzY3JvbGxWaWV3LmJvdW5jZXMgPSBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6
Tm9uZQorICAgICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgICAgICAgICA/IE5P
IDogWUVTOworICAgICAgICB9CisKICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWlu
ZXJMYXllcikpIHsKICAgICAgICAgICAgIGlmICghbV9zY3JvbGxWaWV3RGVsZWdhdGUpCiAgICAg
ICAgICAgICAgICAgbV9zY3JvbGxWaWV3RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tTY3JvbGxpbmdO
b2RlU2Nyb2xsVmlld0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGluZ1RyZWVOb2RlRGVs
ZWdhdGU6dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMTkwOWFkM2E0YjUuLmQ5YmIw
Njg2NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4NSw2ICsxODUsNyBAQAogI2RlZmlu
ZSBXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RG93
bmxvYWRBdHRyaWJ1dGVFbmFibGVkIgogI2RlZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1
YWxWaWV3cG9ydEFQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5N
ZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRy
b2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggM2QyMjdkMDBjZDYuLjQxYmY1
ZmY3NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0KQEAgLTY0OSw2ICs2NDksNyBAQCBwdWJsaWM6CiAgICAgICAgIEBZRVMsIFdl
YktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKIAorICAg
ICAgICBATk8sIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5j
ZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxz
UXVpcmtLZXksCiAgICAgICAgIEBOTywgV2ViS2l0QWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNl
c1RvQXNrRm9yQ3JlZGVudGlhbHNLZXksCkBAIC0zMTQ2LDYgKzMxNDcsMTYgQEAgc3RhdGljIE5T
U3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6
ZmxhZyBmb3JLZXk6V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07
CiB9CiAKKy0gKEJPT0wpb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBb
c2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihC
T09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVG
b3JLZXk6V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKaW5kZXggMmE0ZGY2ODI3MjUuLmI1ZTZlNmU3MDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgKQEAgLTYxNiw2ICs2MTYsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2Fj
aGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogLSAoQk9PTCls
aW5rUHJlbG9hZFJlc3BvbnNpdmVJbWFnZXNFbmFibGVkOwogCiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBkYjcwM2Q2OWQyMy4uYjUwMDhmODVi
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI5
ODUsNiArMjk4NSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1
aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVy
ZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhl
dGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0Nv
bW1hbmRzRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAgICBzZXR0aW5n
cy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4
IGZiYzdlMjM0NDhkLi5jYjcxZTEwMDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBA
IC0yMjEsNiArMjIxLDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldEluc3BlY3RvckFkZGl0aW9uc0Vu
YWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgdmlzdWFsVmlld3BvcnRBUElF
bmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIG92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJFU1VMVCBzZXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJF
U1VMVCBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsK
ICAgICBIUkVTVUxUIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wq
IGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAppbmRleCBiNDMyODM3ZWU1OC4uM2IxNGViMjljNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0x
ODgsNiArMTg4LDcgQEAKIAogI2RlZmluZSBXZWJLaXRXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRp
b25FbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9u
RW5hYmxlZCIKIAorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVy
ZW5jZUtleSAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
VXNlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIK
IAogI2RlZmluZSBXZWJLaXRSZXNvdXJjZVRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJL
aXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAKaW5kZXggZDYxNmExN2MwOGIuLmIxYzMxY2QxYzEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zMzcsNiArMzM3LDggQEAgdm9p
ZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3BvcnRBUElF
bmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25h
cnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRk
VmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQ
cmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNl
S2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKQEAgLTIyNTcsNiArMjI1OSwyMCBAQCBIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCBlbmFibGVkKQog
ICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAgaWYgKCFlbmFibGVk
KQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9y
S2V5KFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAgICBy
ZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKFdlYktpdE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1
cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQogewogICAgIGlmICghZW5hYmxlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IGE0MDFhODI2MWYwLi4w
YmQ2MjJiYTRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBA
IC0yNjksNiArMjY5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoX091dF8g
Qk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxW
aWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
KEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZmV0Y2hBUElLZWVwQWxpdmVFbmFi
bGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggZGIz
ZDA5NjQ3ODIuLjJlOGFkMDg5ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApA
QCAtNTI5Myw2ICs1MjkzLDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXND
aGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhy
OwogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCghIWVuYWJsZWQpOwog
CisgICAgaHIgPSBwcmVmc1ByaXZhdGUtPm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoJmVuYWJs
ZWQpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGlu
Z3Muc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBw
cmVmc1ByaXZhdGUtPkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoJmVuYWJsZWQpOwogICAg
IGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5jcHAKaW5kZXggNGFkNjg5NzVlYzEuLmI1Y2I4ZjE2ZDgwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC0xMTEsNiArMTExLDggQEAgVGVzdE9wdGlvbnM6OlRl
c3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5n
JiBhYnNvbHUKICAgICAgICAgICAgIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzID0gdmFs
dWU7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOldlYkdQVUVuYWJsZWQi
KQogICAgICAgICAgICAgZW5hYmxlV2ViR1BVID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVl
KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6b3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3Ig
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImludGVybmFsOkNTU0xvZ2ljYWxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNT
U0xvZ2ljYWwgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBl
bHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpBZENsaWNrQXR0cmlidXRpb25FbmFibGVkIikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IDNjYjkxNmFlNWEwLi4xZmRmMjc0MmUx
NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC00NSw2ICs0NSw3IEBAIHN0cnVj
dCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVDb2xvckZpbHRlciB7IGZhbHNlIH07CiAg
ICAgYm9vbCBlbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgZW5hYmxlV2ViR1BVIHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3Jv
bGxCZWhhdmlvciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2Ug
fTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGIxNmM0OWM5NTU4Li5kMzEyMTE2MzdjZiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAyMyw2ICsx
MDIzLDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJs
ZWQgPSBvcHRpb25zLmVuYWJsZUNvbG9yRmlsdGVyOwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlv
bkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25B
Y3Jvc3NTaGFkb3dCb3VuZGFyaWVzOwogICAgIHByZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBv
cHRpb25zLmVuYWJsZVdlYkdQVTsKKyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiAgICAgcHJlZmVyZW5j
ZXMuQ1NTTG9naWNhbEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJl
ZmVyZW5jZXMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRDbGlja0F0dHJp
YnV0aW9uRW5hYmxlZDsKICAgICBwcmVmZXJlbmNlcy5yZXNpemVPYnNlcnZlckVuYWJsZWQgPSBv
cHRpb25zLmVuYWJsZVJlc2l6ZU9ic2VydmVyOwotLSAKMi4yMC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377735</attachid>
            <date>2019-08-30 11:13:45 -0700</date>
            <delta_ts>2019-08-31 00:10:49 -0700</delta_ts>
            <desc>tentative rebase (not tested)</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>46227</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAwMTRlN2M4OGJkZmNjMTQxZjAzZDlhNDRmNzE1NGQ2NDVjMmU1YzJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBGcmksIDMwIEF1ZyAyMDE5IDE5OjA2OjQyICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM3ICsrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gICAgICAgICB8
IDQwICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgICAgICAgIHwgIDYgKysrCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuY3BwICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuaCAgfCAgNCArLQogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAgIHwgNDQgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwICAgICAgICAgIHwgMzEgKysrKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwICAgICAgICAgICAgIHwgMTQgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oICAgICAgICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sICAgICAgICAgICAgIHwgIDMgKysKIC4uLi9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAgICB8ICAyICsKIC4uLi9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUeXBlcy5oICAgICB8ICAzICsrCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmggICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxU
eXBlcy5oICAgICAgICAgfCAgNiArKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwICAgICAgfCAxMCArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmggICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oICB8ICA5ICsrKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcCAgICAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aCAgICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oICB8IDEwICsrKysrCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sICAgICAgfCAgNyArKysKIC4uLi9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tICB8IDE5ICsrKysrKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggICAgfCAgMSArCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAg
ICAgICAgICAgfCAxMSArKysrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tICAgIHwgIDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsIHwgIDIgKwogLi4uL3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAgICAg
IHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAgIHwg
MTYgKysrKysrKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCAgICAg
IHwgIDIgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgICAgICAgICAgIHwg
IDUgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgICAgICAgICAgfCAg
MiArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oICAgICAgICAgICAgfCAgMSAr
CiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgfCAgMSArCiAz
OCBmaWxlcyBjaGFuZ2VkLCAzMTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA2MGI2YTUyNTI3OC4uZWU4YmRjODI5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNjYsNiArMjY2LDggQEAg
c3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAg
Q1NTUHJvcGVydHlPdmVyZmxvd1dyYXAsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1gsCiAgICAg
Q1NTUHJvcGVydHlPdmVyZmxvd1ksCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
LAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAgICBDU1NQcm9wZXJ0eVBh
ZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwKICAgICBDU1NQcm9wZXJ0
eVBhZGRpbmdSaWdodCwKQEAgLTMzNDYsNiArMzM0OCwxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENv
bXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRl
clN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5v
dmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9s
bEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVy
biB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFk
ZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0
eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCA4
ZjYzZTBhN2EwYy4uZWU0Y2NiZDI5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkxpbmVD
bGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRl
ICJTVkdSZW5kZXJTdHlsZURlZnMuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgIlRoZW1lVHlwZXMuaCIKICNpbmNsdWRlICJUb3Vj
aEFjdGlvbi5oIgpAQCAtMjIxMyw2ICsyMjE0LDQyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIE92ZXJm
bG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGUpCisgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWlu
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNj
cm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1
dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBPdmVy
c2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJl
dHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE92ZXJz
Y3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRl
eCBiY2YxNjFjMDFiNC4uZmNlZGQzMTM5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRp
ZXMuanNvbgpAQCAtMzI3Niw2ICszMjc2LDQ2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3Ii
OiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAg
ICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9y
LXgiLAorICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJz
Y3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAg
ICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAg
ICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRw
czovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9s
bC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNj
cm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAg
ICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAg
ICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBz
Oi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xs
LWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5n
IjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAg
ICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRl
eCBjNDc2N2Y1YTczMS4uOWY3ODU4NDI2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCkBAIC0xMzg0LDYgKzEzODQsOSBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlm
CiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5j
dHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcAppbmRleCAxOWNiMDMzZDcwYi4uNGY2YmYyNjJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yNDQsNiArMjQ0LDggQEAgU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZSh3ZWJraXRNYXJnaW5Db2xsYXBzZVNob3J0
aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBn
ZXRDb21tb25WYWx1ZShvdmVyZmxvd1Nob3J0aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICByZXR1cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcnNj
cm9sbEJlaGF2aW9yU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgog
ICAgICAgICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nQmxvY2s6CkBAIC0xMTY1LDYgKzExNjcsMTAgQEAgU3RyaW5nIFN0
eWxlUHJvcGVydGllczo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyZmxvd1k6CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1By
b3BlcnR5T3ZlcmZsb3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3Bl
cnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nQm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOTMuLjdjMzQ2NDY4MTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTc1LDYgKzc1
LDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICAgICBhdHRhY2htZW50RW5hYmxlZCA9IFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVudEVsZW1lbnRF
bmFibGVkKCk7CiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgPSBkb2N1bWVu
dC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9j
dW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZTsKIH0KIApAQCAtMTAw
LDYgKzEwMSw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0JiBiKQogI2VuZGlmCiAgICAgICAgICYmIGEuZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCiAgICAgICAgICYm
IGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2VjdXJpdHlPcmln
aW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51
c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5oCmluZGV4IGIyODg2YTk4NmMzLi4wMjRjZmFjMGVjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTYxLDYgKzYxLDcg
QEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBp
cyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW4geyBmYWxzZSB9OwpAQCAtMTEyLDcgKzExMyw4IEBAIHN0
cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKICAgICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8IDExCiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAg
ICAgICAgICYga2V5Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8
IDEyCisgICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjpp
bnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDcwOGVjNzc3M2Mx
Li5jNjVhNmM0NzcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjMsNiArMjMyMywxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
KQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZU92ZXJzY3JvbGxC
ZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvIHZhbHVlSUQg
PSByYW5nZS5wZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAhPSBDU1NWYWx1ZUF1dG8gJiYg
dmFsdWVJRCAhPSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZUNvbnRhaW4pCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwor
fQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVyKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiB7
CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1lTGVu
Z3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUp
OwpAQCAtMzkyMiw2ICszOTMwLDExIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJz
ZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9s
bFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6Cisg
ICAgICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVy
biBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQpAQCAtNTU2OSw2ICs1NTgyLDM1IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6
OmNvbnN1bWVQbGFjZVNlbGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZp
b3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgQVNTRVJUKHNob3J0aGFuZEZvclBy
b3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5sZW5ndGgoKSA9PSAyKTsKKyAg
ICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclggPSBjb25zdW1l
T3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGlmICghb3ZlcnNjcm9sbEJlaGF2aW9y
WCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Ny
b2xsQmVoYXZpb3JZOworICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICBpZiAo
bV9yYW5nZS5hdEVuZCgpKQorICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gb3ZlcnNjcm9s
bEJlaGF2aW9yWDsKKyAgICBlbHNlIHsKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IGNv
bnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgICAgIG1fcmFuZ2UuY29uc3Vt
ZVdoaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKCFtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JYLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3Jv
bGxCZWhhdmlvclgsIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JZLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3Jv
bGxCZWhhdmlvclksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQ1NT
UHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJv
b2wgaW1wb3J0YW50KQogewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKQEAgLTU2MDgsNiArNTY1
MCw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5
SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eU92ZXJmbG93WSwgQ1NTUHJvcGVydHlPdmVyZmxvdywgKm92ZXJmbG93WVZhbHVlLCBpbXBv
cnRhbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3JTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udDogewog
ICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBtX3JhbmdlLnBlZWsoKTsKICAg
ICAgICAgaWYgKHRva2VuLmlkKCkgPj0gQ1NTVmFsdWVDYXB0aW9uICYmIHRva2VuLmlkKCkgPD0g
Q1NTVmFsdWVTdGF0dXNCYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmgKaW5kZXggYmNkMWI5MjdmY2MuLjljY2RlMjI3YTQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC0xMDgsNiArMTA4LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIGNvbnN1bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRh
bnQpOwogICAgIGJvb2wgY29uc3VtZVBlcnNwZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsK
IAorICAgIGJvb2wgY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9y
dGFudCk7CisKIHByaXZhdGU6CiAgICAgLy8gSW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFu
Z2UgbV9yYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxMDZjODBi
N2RiZi4uZTkwNjVjYjc1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTI5MywxNSArMjkzLDE1IEBAIHN0YXRpYyBpbmxpbmUgU2Nyb2xsR3JhbnVsYXJpdHkgd2hlZWxH
cmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkodW5zaWduZWQgZGVsCiAgICAgfQogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJl
YSogc2Nyb2xsYWJsZUFyZWEsIFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdGF0aWMgaW5saW5l
IGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJs
ZUFyZWEsIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIHVuc2lnbmVkIGRlbHRhTW9kZSkK
IHsKLSAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVs
YXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOworICAgIFNj
cm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFudWxhcml0eVRvU2Ny
b2xsR3JhbnVsYXJpdHkoZGVsdGFNb2RlKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQg
PSBmYWxzZTsKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZl
bnQuZGVsdGFYKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVB
cmVhLT5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9s
bExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQg
YWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVs
RXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbChkZWx0YVggPiAwID8gU2Nyb2xsUmlnaHQg
OiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCi0g
ICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWSgp
KSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xs
KHdoZWVsRXZlbnQuZGVsdGFZKCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxH
cmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEg
PSBzdGQ6OmFicyhkZWx0YVkpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9s
bGFibGVBcmVhLT5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Ny
b2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVybiBkaWRIYW5k
bGVXaGVlbEV2ZW50OwogfQpAQCAtMzIwLDE4ICszMjAsMjAgQEAgc3RhdGljIGlubGluZSBib29s
IGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9k
ZSwgV2gKIAogICAgIFJlbmRlckJveCYgaW5pdGlhbEVuY2xvc2luZ0JveCA9IHN0YXJ0Tm9kZS0+
cmVuZGVyZXIoKS0+ZW5jbG9zaW5nQm94KCk7CiAgICAgaWYgKGluaXRpYWxFbmNsb3NpbmdCb3gu
aXNMaXN0Qm94KCkpCi0gICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKHN0
YXRpY19jYXN0PFJlbmRlckxpc3RCb3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZl
bnQpOworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2Fz
dDxSZW5kZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50LmRlbHRh
WCgpLCB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKIAogICAg
IFJlbmRlckJveCogY3VycmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9zaW5nQm94Owor
ICAgIGJvb2wgaWdub3JlRGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVEZWx0YVkgPSBm
YWxzZTsKICAgICB3aGlsZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAgICBpZiAoUmVu
ZGVyTGF5ZXIqIGJveExheWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIoKSkgewogICAg
ICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZv
cm1FdmVudCgpOwogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVkOwogICAgICAg
ICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2
ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0
ZXJlZFZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZv
cm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVggPyAwIDogZmls
dGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgICAg
IHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVudChjb3BpZWRF
dmVudCk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNI
YW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShib3hMYXllciwgd2hlZWxFdmVudCk7
CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoYm94TGF5ZXIsIGlnbm9yZURlbHRhWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWCgp
LCBpZ25vcmVEZWx0YVkgPyAwIDogd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0
YU1vZGUoKSk7CiAKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdXYXNIYW5kbGVkKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKHN0b3BFbGVtZW50KQpAQCAtMzQzLDYgKzM0NSwxNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9k
ZSogc3RhcnROb2RlLCBXaAogICAgICAgICBpZiAoc3RvcEVsZW1lbnQgJiYgKnN0b3BFbGVtZW50
ICYmICpzdG9wRWxlbWVudCA9PSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgICAgICBpZiAoIWlnbm9yZURlbHRhWCAmJiBjdXJy
ZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Ny
b2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAg
ICAgICBpZiAoIWlnbm9yZURlbHRhWSAmJiBjdXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92
ZXJzY3JvbGxCZWhhdmlvclkoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAg
ICAgICBpZ25vcmVEZWx0YVkgPSB0cnVlOworICAgICAgICBpZiAoaWdub3JlRGVsdGFYICYmIGln
bm9yZURlbHRhWSkgeworICAgICAgICAgICAgLy8gV2UgY2xhaW0gdGhhdCB0aGUgZXZlbnQgd2Fz
IGhhbmRsZWQgc28gdGhhdCBpdCBpcyBub3QgcHJvcGFnYXRlZCB0byB0aGUgYW5jZXN0b3IgZnJh
bWVzLgorICAgICAgICAgICAgaWYgKHN0b3BFbGVtZW50KQorICAgICAgICAgICAgICAgICpzdG9w
RWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgY3VycmVudEVuY2xvc2luZ0JveCA9IGN1
cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICBpZiAoIWN1cnJl
bnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVuY2xvc2luZ0JveC0+aXNSZW5kZXJWaWV3KCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
Y2I0YjgxYTM1NjguLjZlNWUwZmNiZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC00MTYsNiArNDE2LDIwIEBAIGJvb2wgRnJhbWVWaWV3OjpkaWRGaXJzdExheW91dCgpIGNvbnN0
CiAgICAgcmV0dXJuIGxheW91dENvbnRleHQoKS5kaWRGaXJzdExheW91dCgpOwogfQogCitPdmVy
c2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
Y29uc3QKK3sKKyAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZp
ZXcoKSkKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXctPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2
aW9yWCgpOworICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojp2ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQorICAgICAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5
bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCk7CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjp2
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworfQorCiB2b2lkIEZyYW1lVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA3Y2Q5NWRmYzgyMy4uYWZkYzZiN2QzOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNzIzLDYgKzcyMyw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFi
bGVBcmVhIGludGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2
b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRW
aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCmluZGV4IDMzNWI3OGFlZDYzLi45OGNjYjc3YmYzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNTk5LDYgKzU5OSw5IEBAIHZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZDoKIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRy
dWUKIAorb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKwogQ1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAppbmRleCAwMGFmMzk0NzhkYy4uODZlMjFkMDAwNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC02OTEsNiArNjkxLDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3JvbGxpbmcKICAg
ICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbGFibGVBcmVhU2l6ZShzY3JvbGxhYmxlQXJlYS52aXNp
YmxlU2l6ZSgpKTsKIAogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0
ZXJzOworICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9
IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICBzY3Jv
bGxQYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEu
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6
b250YWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbEVs
YXN0aWNpdHkoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9s
bFBhcmFtZXRlcnMuaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Ny
b2xsYmFyICYmIGhvcml6b250YWxTY3JvbGxiYXItPmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMu
aAppbmRleCA2OTRlZmRlNjdlZS4uNjExN2NjYjdhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAg
LTU4LDYgKzU4LDkgQEAgZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsK
IH07CiAKIHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxC
ZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9y
OjogQXV0byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNp
dHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9Owog
ICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxh
c3RpY2l0eU5vbmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggN2U1ZTQ1Y2EzMjkuLmE4
MjA3MWY4MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgY29uc3QgRmxvYXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJh
bmQoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQog
ICAgIHZvaWQgc2V0VG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKGNvbnN0IEZsb2F0U2l6
ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKSB7IG1fdG90YWxDb250ZW50c1NpemVG
b3JSdWJiZXJCYW5kID0gdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVo
YXZpb3I7IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcjsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5o
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEwM2QzLi5lYTM2NzZmNGRmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC0zNSw2ICszNSwxMiBAQCBlbnVtIGNsYXNzIFNj
cm9sbFR5cGUgOiB1aW50OF90IHsKICAgICBQcm9ncmFtbWF0aWMKIH07CiAKK2VudW0gY2xhc3Mg
T3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAgQ29udGFp
biwKKyAgICBOb25lCit9OworCiBlbnVtIFNjcm9sbERpcmVjdGlvbiA6IHVpbnQ4X3QgewogICAg
IFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkNS4uMWUxODcyMWYyNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTEyLDYgKzExMiw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKCkgY29uc3QgeyByZXR1
cm4gbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQogICAgIHZvaWQgc2V0Q29u
c3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9D
b250ZW50RWRnZSkgeyBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlID0gY29uc3Ry
YWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KIAorICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJl
aGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICB2aXJ0dWFsIE92ZXJzY3JvbGxCZWhhdmlvciB2
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhh
dmlvcjo6QXV0bzsgfQorCiAgICAgdm9pZCBzZXRWZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Ny
b2xsRWxhc3RpY2l0eSBzY3JvbGxFbGFzdGljaXR5KSB7IG1fdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5ID0gc2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxT
Y3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsRWxhc3Rp
Y2l0eT4obV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDg4NDViZWRhYzhhLi41ZmNmNGI3NDYxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zMjkxLDYgKzMyOTEs
MTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKICAgICAgICAgbV9yZXNpemVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3Qp
OwogfQogCitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6Omhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkub3Zl
cnNjcm9sbEJlaGF2aW9yWCgpOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6
OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRl
cmVyKCkuc3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCk7Cit9CisKIHN0YXRpYyBib29sIHNj
cm9sbGJhckhpZGRlbkJ5U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7CiAgICAgaWYgKCFz
Y3JvbGxiYXIgfHwgIXNjcm9sbGJhci0+aXNDdXN0b21TY3JvbGxiYXIoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggYmM5NGJkNjI5NDUuLjg5MGRlM2NmMzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDYyLDYgKzQ2Miw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVy
biBob3Jpem9udGFsU2Nyb2xsYmFyKCk7IH0KICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gdmVydGljYWxTY3JvbGxiYXIoKTsgfQogCisgICAgT3ZlcnNjcm9s
bEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAg
ICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBm
aW5hbDsKKwogICAgIGJvb2wgaG9yaXpvbnRhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIHZlcnRpY2FsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IGMzNjEyMDdkYmYwLi5mZWRhYjg5NTA4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlJvdW5kZWRSZWN0LmgiCiAj
aW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2lu
Y2x1ZGUgIlNoYWRvd0RhdGEuaCIKICNpbmNsdWRlICJTaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAi
U3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgpAQCAtMzM2LDYgKzMzNyw5IEBAIHB1YmxpYzoKICAgICBP
dmVyZmxvdyBvdmVyZmxvd0lubGluZURpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1goKSA6IG92ZXJmbG93WSgpOyB9CiAgICAgT3Zl
cmZsb3cgb3ZlcmZsb3dCbG9ja0RpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1koKSA6IG92ZXJmbG93WCgpOyB9CiAgICAgYm9vbCBp
c092ZXJmbG93VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG92ZXJmbG93WCgpID09IE92ZXJmbG93
OjpWaXNpYmxlIHx8IG92ZXJmbG93WSgpID09IE92ZXJmbG93OjpWaXNpYmxlOyB9CisKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2aW9yWCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3Zl
cnNjcm9sbEJlaGF2aW9yWCk7IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJl
aGF2aW9yWSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4o
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWSk7IH0KICAgICAKICAg
ICBWaXNpYmlsaXR5IHZpc2liaWxpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaXNp
YmlsaXR5PihtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkpOyB9CiAgICAgVmVydGljYWxBbGln
biB2ZXJ0aWNhbEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmVydGljYWxBbGln
bj4obV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduKTsgfQpAQCAtODkwLDYgKzg5NCw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3ZlcmZsb3dYKE92ZXJmbG93IHYpIHsgbV9ub25J
bmhlcml0ZWRGbGFncy5vdmVyZmxvd1ggPSAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAg
ICAgdm9pZCBzZXRPdmVyZmxvd1koT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92
ZXJmbG93WSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQorICAgIHZvaWQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yWChPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2
KSk7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclkoT3ZlcnNjcm9sbEJlaGF2aW9y
IHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JZ
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZp
c2liaWxpdHkgdikgeyBtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbiB2
KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbkxlbmd0aChMZW5ndGgmJiBsZW5n
dGgpIHsgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduOjpMZW5ndGgpOyBTRVRfVkFSKG1f
Ym94RGF0YSwgbV92ZXJ0aWNhbEFsaWduLCBXVEZNb3ZlKGxlbmd0aCkpOyB9CkBAIC0xNDQ1LDYg
KzE0NTEsOSBAQCBwdWJsaWM6CiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJv
cGVydGllcwogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dYKCkgeyByZXR1cm4g
T3ZlcmZsb3c6OlZpc2libGU7IH0KICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93
WSgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxC
ZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpIHsgcmV0dXJuIE92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bzsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92
ZXJzY3JvbGxCZWhhdmlvclkoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0K
KwogICAgIHN0YXRpYyBDbGVhciBpbml0aWFsQ2xlYXIoKSB7IHJldHVybiBDbGVhcjo6Tm9uZTsg
fQogICAgIHN0YXRpYyBEaXNwbGF5VHlwZSBpbml0aWFsRGlzcGxheSgpIHsgcmV0dXJuIERpc3Bs
YXlUeXBlOjpJbmxpbmU7IH0KICAgICBzdGF0aWMgRVVuaWNvZGVCaWRpIGluaXRpYWxVbmljb2Rl
QmlkaSgpIHsgcmV0dXJuIFVCTm9ybWFsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXgg
YmRkMDE5MTVhYTIuLmE2Yzk4YzYzYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02
MSw2ICs2MSw4IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3Jl
YXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUo
KSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3Zl
cnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRp
YWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6
aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAg
ICAsIG9iamVjdFBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsT2JqZWN0UG9zaXRpb24oKSkK
QEAgLTEzOCw2ICsxNDAsOCBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xs
U25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAgICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xs
U25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xs
QmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlv
clkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxw
dHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVu
aXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRy
KQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBAIC0yMzgsNiArMjQyLDggQEAgYm9vbCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Nyb2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFw
UG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJlYSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5k
aWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlv
clgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlv
clkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBv
aW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVjdGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMp
CiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRl
eCAxOWM1OTFiMmQxMi4uOTU3M2FkMWJkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTI1
LDYgKzEyNSw5IEBAIHB1YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlU2Nyb2xsU25hcEFyZWE+IHNj
cm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JY
IDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2
aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPENv
bnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb3VudGVyRGlyZWN0aXZl
TWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBTdHJpbmcgYWx0VGV4dDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMzE2MzQxN2RiYTAuLjgw
M2I2NDJlZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGly
ZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Xb3JrZXJUeXBlLmg+CkBAIC03NzMsNiArNzc0LDE1IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPiB7CiAK
IG5hbWVzcGFjZSBXVEYgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
Ok92ZXJzY3JvbGxCZWhhdmlvcj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bywKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW4s
CisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgPjsKK307CisKIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JTcGFjZT4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGM2ZWE2MDkyNzgxLi5lZGY4
YWQ0YWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0x
MjkwLDYgKzEyOTAsMTMgQEAgU3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaHVt
YW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFN5bnRoZXRpYyBFZGl0aW5nIENvbW1hbmRz
IgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFt
ZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisgIGNhdGVnb3J5OiBleHBlcmlt
ZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBk
ZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbQppbmRleCA3YjNmMTFiZmQ2Yi4uNzFiNmI3OTE0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0K
QEAgLTIzNiwxMiArMjM2LDMxIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUp
OwogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikKKyAgICAgICAgfHwg
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0
ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90
YWxDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1Np
emUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxQb3NpdGlvbikKICAgICAgICAgfHwgc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbE9yaWdpbikpIHsKICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IHRoaXMtPnNjcm9sbFZpZXco
KTsKKworICAgICAgICAvLyBGSVhNRShyZGFyOi8vcHJvYmxlbS8zNDMxNTk5Nyk6IFVJU2Nyb2xs
VmlldyBzaG91bGQgaGF2ZSBzb21lIGtpbmQgb2Ygc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbC1iZWhh
dmlvciB0byBlbmFibGUvZGlzYWJsZToKKyAgICAgICAgLy8gLSBub24tbG9jYWwgYm91bmRhcnkg
ZGVmYXVsdCBhY3Rpb25zIChlLmcuIHNjcm9sbCBjaGFpbmluZykuCisgICAgICAgIC8vIC0gbG9j
YWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIGJvdW5jaW5nKS4KKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorICAgICAgICAvLyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVh
UGFyYW1zKSkgeworICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JI
b3Jpem9udGFsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNj
cm9sbGluZ1N0YXRlTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkpOworICAgICAg
ICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JWZXJ0aWNhbCA9IGNvbnZlcnRP
dmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSk7CisJLy8gfQorI2VuZGlmCisgICAgICAgIC8vIEZv
ciBub3csIHdlIG9ubHkgZGlzYWJsZSBib3VuY2luZyB3aGVuIGJvdGggb3ZlcmZsb3cteCBhbmQg
b3ZlcmZsb3cteSBhcmUgbm9uZS4KKyAgICAgICAgLy8gVUlTY3JvbGxWaWV3OjphbHdheXNCb3Vu
Y2UqIGZ1bmN0aW9ucyBjYW5ub3QgaGVscCBoZXJlLgorICAgICAgICBpZiAoc2Nyb2xsaW5nU3Rh
dGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNj
cm9sbGFibGVBcmVhUGFyYW1zKSkgeworICAgICAgICAgICAgc2Nyb2xsVmlldy5ib3VuY2VzID0g
c2Nyb2xsaW5nU3RhdGVOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSA9PSBPdmVy
c2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgICYmIHNjcm9sbGluZ1N0YXRlTm9kZS52
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQor
ICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChzY3JvbGxp
bmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xsVmll
d0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0gYWRvcHRO
UyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3Jv
bGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDE5
MDlhZDNhNGI1Li5kOWJiMDY4NjZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xODUsNiAr
MTg1LDcgQEAKICNkZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RGly
ZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDNk
MjI3ZDAwY2Q2Li40MWJmNWZmNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NDksNiArNjQ5LDcgQEAgcHVibGljOgog
ICAgICAgICBAWUVTLCBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
LAogI2VuZGlmCiAKKyAgICAgICAgQE5PLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
UHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdE5lZWRzU3RvcmFnZUFj
Y2Vzc0Zyb21GaWxlVVJMc1F1aXJrS2V5LAogICAgICAgICBATk8sIFdlYktpdEFsbG93Q3Jvc3NP
cmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzS2V5LApAQCAtMzE0Niw2ICszMTQ3
LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2Vs
ZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKW92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQK
K3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0T3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CisKIC0gKEJPT0wpQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZAogewogICAgIHJldHVybiBb
c2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDJhNGRmNjgyNzI1Li5iNWU2ZTZlNzAz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02MTYsNiArNjE2LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpX
ZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lU
X0RFUFIKIC0gKEJPT0wpbGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2VzRW5hYmxlZDsKIAogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZGI3MDNk
NjlkMjMuLmI1MDA4Zjg1YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC0yOTg1LDYgKzI5ODUsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRh
aW5XaGlsZUxvYWRpbmdRdWlyaygpCiAKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQ
SUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAgIHNl
dHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
XSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJlZmVy
ZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmlkbAppbmRleCBmYmM3ZTIzNDQ4ZC4uY2I3MWUxMDAwMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5p
ZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbApAQCAtMjIxLDYgKzIyMSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5j
ZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJbnNw
ZWN0b3JBZGRpdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxU
IHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJF
U1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAg
IEhSRVNVTFQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7
CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZhbF0g
Qk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291
dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYjQzMjgzN2VlNTguLjNiMTRlYjI5
YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtMTg4LDYgKzE4OCw3IEBACiAKICNkZWZpbmUgV2ViS2l0V2ViQW5pbWF0
aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYkFuaW1hdGlv
bnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdFVzZXJUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0VXNl
clRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGQ2MTZhMTdjMDhiLi5iMWMzMWNkMWMx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzM3
LDYgKzMzNyw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGlu
Z3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwog
CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAg
IENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBD
RkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJF
bmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0yMjU3LDYgKzIyNTks
MjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVk
KEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJl
bmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQorewor
ICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxl
ZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVy
ZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6
OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJv
b2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5h
YmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBp
ZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRl
eCBhNDAxYTgyNjFmMC4uMGJkNjIyYmE0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaApAQCAtMjY5LDYgKzI2OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChCT09M
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdmlzdWFsVmlld3BvcnRB
UElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKF9PdXRfIEJP
T0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0T3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGZldGNo
QVBJS2VlcEFsaXZlRW5hYmxlZChfT3V0XyBCT09MKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCmluZGV4IGRiM2QwOTY0NzgyLi4yZThhZDA4OTg5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAKQEAgLTUyOTMsNiArNTI5MywxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5v
dGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAg
ICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJs
ZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5vdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJu
IGhyOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoISFlbmFibGVk
KTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
KCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDRhZDY4OTc1ZWMxLi5iNWNiOGYxNmQ4
MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTExLDYgKzExMSw4IEBA
IFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBj
b25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRh
bDpXZWJHUFVFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkdQVSA9IHBhcnNlQm9vbGVh
blRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJp
bWVudGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlT3Zl
cnNjcm9sbEJlaGF2aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAg
ICAgICAgZWxzZSBpZiAoa2V5ID09ICJpbnRlcm5hbDpDU1NMb2dpY2FsRW5hYmxlZCIpCiAgICAg
ICAgICAgICBlbmFibGVDU1NMb2dpY2FsID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZh
bHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6QWRDbGlja0F0dHJp
YnV0aW9uRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCAzY2I5MTZh
ZTVhMC4uMWZkZjI3NDJlMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNDUs
NiArNDUsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0
ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRh
cmllcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07CisgICAgYm9v
bCBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ1NT
TG9naWNhbCB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVJlc2l6ZU9ic2VydmVyIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiMTZjNDljOTU1OC4u
ZDMxMjExNjM3Y2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KQEAgLTEwMjMsNiArMTAyMyw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9y
VGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMu
Y29sb3JGaWx0ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb2xvckZpbHRlcjsKICAgICBwcmVm
ZXJlbmNlcy5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCA9IG9wdGlvbnMu
ZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllczsKICAgICBwcmVmZXJlbmNlcy53
ZWJHUFVFbmFibGVkID0gb3B0aW9ucy5lbmFibGVXZWJHUFU7CisgICAgcHJlZmVyZW5jZXMub3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9y
OwogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDU1NM
b2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRp
b25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5jZXMucmVzaXplT2Jz
ZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZlcjsKLS0gCjIuMjAuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377789</attachid>
            <date>2019-08-31 00:10:49 -0700</date>
            <delta_ts>2019-09-05 11:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-176454-Implement-CSS-overscroll-behavior.patch</filename>
            <type>text/plain</type>
            <size>46327</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA3MDJiYWI2ODgxNThjNGQ5OTBkZTY2Y2E1YWMwOTYyNGVjNzIwZmJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBGcmksIDMwIEF1ZyAyMDE5IDE5OjA2OjQyICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVy
XSBCdWcgMTc2NDU0IC0gSW1wbGVtZW50IENTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yCgotLS0KIC4u
Li9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAgICAgICB8ICA4ICsrKysKIC4u
Li9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggICB8IDM3ICsrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gICAgICAgICB8
IDQwICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgICAgICAgIHwgIDYgKysrCiAuLi4vV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuY3BwICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRl
eHQuaCAgfCAgNCArLQogLi4uL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAgIHwgNDQgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwICAgICAgICAgIHwgMzEgKysrKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwICAgICAgICAgICAgIHwgMTQgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oICAgICAgICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sICAgICAgICAgICAgIHwgIDMgKysKIC4uLi9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAgICB8ICAyICsKIC4uLi9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUeXBlcy5oICAgICB8ICAzICsrCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmggICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxU
eXBlcy5oICAgICAgICAgfCAgNiArKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwICAgICAgfCAxMCArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmggICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oICB8ICA5ICsrKysKIC4uLi9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcCAgICAgICB8ICA2ICsrKwogLi4uL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aCAgICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oICB8IDEwICsrKysrCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sICAgICAgfCAgNyArKysKIC4uLi9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tICB8IDE5ICsrKysrKysrCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggICAgfCAgMSArCiAuLi4vbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAg
ICAgICAgICAgfCAxMSArKysrKwogLi4uL21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oICAgICAgIHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tICAgIHwgIDEgKwogLi4uL3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsIHwgIDIgKwogLi4uL3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAgICAg
IHwgIDEgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAgIHwg
MTYgKysrKysrKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCAgICAg
IHwgIDIgKwogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgICAgICAgICAgIHwg
IDUgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgICAgICAgICAgfCAg
MiArCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oICAgICAgICAgICAgfCAgMSAr
CiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgfCAgMSArCiAz
OCBmaWxlcyBjaGFuZ2VkLCAzMTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA2MGI2YTUyNTI3OC4uZWU4YmRjODI5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNjYsNiArMjY2LDggQEAg
c3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAg
Q1NTUHJvcGVydHlPdmVyZmxvd1dyYXAsCiAgICAgQ1NTUHJvcGVydHlPdmVyZmxvd1gsCiAgICAg
Q1NTUHJvcGVydHlPdmVyZmxvd1ksCisgICAgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
LAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWSwKICAgICBDU1NQcm9wZXJ0eVBh
ZGRpbmdCb3R0b20sCiAgICAgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCwKICAgICBDU1NQcm9wZXJ0
eVBhZGRpbmdSaWdodCwKQEAgLTMzNDYsNiArMzM0OCwxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENv
bXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRl
clN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5v
dmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9s
bEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVy
biB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFk
ZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0
eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCA4
ZjYzZTBhN2EwYy4uZWU0Y2NiZDI5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkxpbmVD
bGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRl
ICJTVkdSZW5kZXJTdHlsZURlZnMuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgIlRoZW1lVHlwZXMuaCIKICNpbmNsdWRlICJUb3Vj
aEFjdGlvbi5oIgpAQCAtMjIxMyw2ICsyMjE0LDQyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIE92ZXJm
bG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGUpCisgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWlu
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNj
cm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1
dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBPdmVy
c2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJl
dHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE92ZXJz
Y3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRl
eCBiY2YxNjFjMDFiNC4uZmNlZGQzMTM5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRp
ZXMuanNvbgpAQCAtMzI3Niw2ICszMjc2LDQ2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3d3dy53My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3Ii
OiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAg
ICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9y
LXgiLAorICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJz
Y3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAg
ICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAg
ICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRw
czovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9s
bC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNj
cm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAg
ICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAg
ICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBz
Oi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xs
LWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5n
IjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAg
ICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRl
eCBjNDc2N2Y1YTczMS4uOWY3ODU4NDI2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCkBAIC0xMzg0LDYgKzEzODQsOSBAQCBwYW4teQogcGluY2gtem9vbQogI2VuZGlm
CiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5j
dHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcAppbmRleCAxOWNiMDMzZDcwYi4uNGY2YmYyNjJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yNDQsNiArMjQ0LDggQEAgU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZSh3ZWJraXRNYXJnaW5Db2xsYXBzZVNob3J0
aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBn
ZXRDb21tb25WYWx1ZShvdmVyZmxvd1Nob3J0aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICByZXR1cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcnNj
cm9sbEJlaGF2aW9yU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgog
ICAgICAgICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nQmxvY2s6CkBAIC0xMTY1LDYgKzExNjcsMTAgQEAgU3RyaW5nIFN0
eWxlUHJvcGVydGllczo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyZmxvd1k6CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1By
b3BlcnR5T3ZlcmZsb3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3Bl
cnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nQm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5jcHAKaW5kZXggNzUzNzE4OGNiOTMuLjdjMzQ2NDY4MTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTc1LDYgKzc1
LDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICAgICBhdHRhY2htZW50RW5hYmxlZCA9IFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVudEVsZW1lbnRF
bmFibGVkKCk7CiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgPSBkb2N1bWVu
dC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoKTsKICAgICB1c2VTeXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9j
dW1lbnQucGFnZSgpLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZTsKIH0KIApAQCAtMTAw
LDYgKzEwMSw3IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0JiBiKQogI2VuZGlmCiAgICAgICAgICYmIGEuZGVmZXJyZWRD
U1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCiAgICAgICAgICYm
IGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2VjdXJpdHlPcmln
aW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51
c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyQ29udGV4dC5oCmluZGV4IGIyODg2YTk4NmMzLi4wMjRjZmFjMGVjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTYxLDYgKzYxLDcg
QEAgcHVibGljOgogICAgIGJvb2wgYXR0YWNobWVudEVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBp
cyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW4geyBmYWxzZSB9OwpAQCAtMTEyLDcgKzExMyw4IEBAIHN0
cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKICAgICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgICAgIDw8IDExCiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEyOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAg
ICAgICAgICYga2V5Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8
IDEyCisgICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjpp
bnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDcwOGVjNzc3M2Mx
Li5jNjVhNmM0NzcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKQEAgLTIzMjMsNiArMjMyMywxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gY29uc3VtZVNjcm9sbFNuYXBUeXBlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdl
KQogCiAjZW5kaWYKIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZU92ZXJzY3JvbGxC
ZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvIHZhbHVlSUQg
PSByYW5nZS5wZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAhPSBDU1NWYWx1ZUF1dG8gJiYg
dmFsdWVJRCAhPSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZUNvbnRhaW4pCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwor
fQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVyUmFkaXVzQ29ybmVyKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUpCiB7
CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1ZTEgPSBjb25zdW1lTGVu
Z3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUp
OwpAQCAtMzkyMiw2ICszOTMwLDExIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJz
ZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVNjcm9sbFNuYXBUeXBlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9s
bFNuYXBUeXBlKG1fcmFuZ2UpOwogI2VuZGlmCisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6Cisg
ICAgICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVy
biBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQpAQCAtNTU2OSw2ICs1NTgyLDM1IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6
OmNvbnN1bWVQbGFjZVNlbGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZp
b3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgQVNTRVJUKHNob3J0aGFuZEZvclBy
b3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5sZW5ndGgoKSA9PSAyKTsKKyAg
ICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclggPSBjb25zdW1l
T3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGlmICghb3ZlcnNjcm9sbEJlaGF2aW9y
WCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Ny
b2xsQmVoYXZpb3JZOworICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICBpZiAo
bV9yYW5nZS5hdEVuZCgpKQorICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gb3ZlcnNjcm9s
bEJlaGF2aW9yWDsKKyAgICBlbHNlIHsKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IGNv
bnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgICAgIG1fcmFuZ2UuY29uc3Vt
ZVdoaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKCFtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JYLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3Jv
bGxCZWhhdmlvclgsIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JZLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92ZXJzY3Jv
bGxCZWhhdmlvclksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQ1NT
UHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJv
b2wgaW1wb3J0YW50KQogewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKQEAgLTU2MDgsNiArNTY1
MCw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5
SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eU92ZXJmbG93WSwgQ1NTUHJvcGVydHlPdmVyZmxvdywgKm92ZXJmbG93WVZhbHVlLCBpbXBv
cnRhbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3JTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udDogewog
ICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSBtX3JhbmdlLnBlZWsoKTsKICAg
ICAgICAgaWYgKHRva2VuLmlkKCkgPj0gQ1NTVmFsdWVDYXB0aW9uICYmIHRva2VuLmlkKCkgPD0g
Q1NTVmFsdWVTdGF0dXNCYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmgKaW5kZXggYmNkMWI5MjdmY2MuLjljY2RlMjI3YTQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC0xMDgsNiArMTA4LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIGNvbnN1bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRh
bnQpOwogICAgIGJvb2wgY29uc3VtZVBlcnNwZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsK
IAorICAgIGJvb2wgY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9y
dGFudCk7CisKIHByaXZhdGU6CiAgICAgLy8gSW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFu
Z2UgbV9yYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxMDZjODBi
N2RiZi4uZTkwNjVjYjc1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTI5MywxNSArMjkzLDE1IEBAIHN0YXRpYyBpbmxpbmUgU2Nyb2xsR3JhbnVsYXJpdHkgd2hlZWxH
cmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkodW5zaWduZWQgZGVsCiAgICAgfQogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJl
YSogc2Nyb2xsYWJsZUFyZWEsIFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdGF0aWMgaW5saW5l
IGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJs
ZUFyZWEsIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIHVuc2lnbmVkIGRlbHRhTW9kZSkK
IHsKLSAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVs
YXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOworICAgIFNj
cm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFudWxhcml0eVRvU2Ny
b2xsR3JhbnVsYXJpdHkoZGVsdGFNb2RlKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQg
PSBmYWxzZTsKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZl
bnQuZGVsdGFYKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVB
cmVhLT5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9s
bExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQg
YWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVs
RXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbChkZWx0YVggPiAwID8gU2Nyb2xsUmlnaHQg
OiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCi0g
ICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWSgp
KSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xs
KHdoZWVsRXZlbnQuZGVsdGFZKCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxH
cmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEg
PSBzdGQ6OmFicyhkZWx0YVkpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9s
bGFibGVBcmVhLT5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Ny
b2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVybiBkaWRIYW5k
bGVXaGVlbEV2ZW50OwogfQpAQCAtMzIwLDE4ICszMjAsMjAgQEAgc3RhdGljIGlubGluZSBib29s
IGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9k
ZSwgV2gKIAogICAgIFJlbmRlckJveCYgaW5pdGlhbEVuY2xvc2luZ0JveCA9IHN0YXJ0Tm9kZS0+
cmVuZGVyZXIoKS0+ZW5jbG9zaW5nQm94KCk7CiAgICAgaWYgKGluaXRpYWxFbmNsb3NpbmdCb3gu
aXNMaXN0Qm94KCkpCi0gICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKHN0
YXRpY19jYXN0PFJlbmRlckxpc3RCb3gqPigmaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZl
bnQpOworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShzdGF0aWNfY2Fz
dDxSZW5kZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50LmRlbHRh
WCgpLCB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKIAogICAg
IFJlbmRlckJveCogY3VycmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9zaW5nQm94Owor
ICAgIGJvb2wgaWdub3JlRGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVEZWx0YVkgPSBm
YWxzZTsKICAgICB3aGlsZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAgICBpZiAoUmVu
ZGVyTGF5ZXIqIGJveExheWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIoKSkgewogICAg
ICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZv
cm1FdmVudCgpOwogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVkOwogICAgICAg
ICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2
ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0
ZXJlZFZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZv
cm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVggPyAwIDogZmls
dGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgICAg
IHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVudChjb3BpZWRF
dmVudCk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNI
YW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShib3hMYXllciwgd2hlZWxFdmVudCk7
CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoYm94TGF5ZXIsIGlnbm9yZURlbHRhWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWCgp
LCBpZ25vcmVEZWx0YVkgPyAwIDogd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0
YU1vZGUoKSk7CiAKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdXYXNIYW5kbGVkKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKHN0b3BFbGVtZW50KQpAQCAtMzQzLDYgKzM0NSwxNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9k
ZSogc3RhcnROb2RlLCBXaAogICAgICAgICBpZiAoc3RvcEVsZW1lbnQgJiYgKnN0b3BFbGVtZW50
ICYmICpzdG9wRWxlbWVudCA9PSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgICAgICBpZiAoIWlnbm9yZURlbHRhWCAmJiBjdXJy
ZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Ny
b2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAg
ICAgICBpZiAoIWlnbm9yZURlbHRhWSAmJiBjdXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92
ZXJzY3JvbGxCZWhhdmlvclkoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAg
ICAgICBpZ25vcmVEZWx0YVkgPSB0cnVlOworICAgICAgICBpZiAoaWdub3JlRGVsdGFYICYmIGln
bm9yZURlbHRhWSkgeworICAgICAgICAgICAgLy8gV2UgY2xhaW0gdGhhdCB0aGUgZXZlbnQgd2Fz
IGhhbmRsZWQgc28gdGhhdCBpdCBpcyBub3QgcHJvcGFnYXRlZCB0byB0aGUgYW5jZXN0b3IgZnJh
bWVzLgorICAgICAgICAgICAgaWYgKHN0b3BFbGVtZW50KQorICAgICAgICAgICAgICAgICpzdG9w
RWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgY3VycmVudEVuY2xvc2luZ0JveCA9IGN1
cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICBpZiAoIWN1cnJl
bnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVuY2xvc2luZ0JveC0+aXNSZW5kZXJWaWV3KCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
Y2I0YjgxYTM1NjguLjZlNWUwZmNiZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC00MTYsNiArNDE2LDIwIEBAIGJvb2wgRnJhbWVWaWV3OjpkaWRGaXJzdExheW91dCgpIGNvbnN0
CiAgICAgcmV0dXJuIGxheW91dENvbnRleHQoKS5kaWRGaXJzdExheW91dCgpOwogfQogCitPdmVy
c2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
Y29uc3QKK3sKKyAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZp
ZXcoKSkKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXctPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2
aW9yWCgpOworICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojp2ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQorICAgICAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5
bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCk7CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjp2
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworfQorCiB2b2lkIEZyYW1lVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA3Y2Q5NWRmYzgyMy4uYWZkYzZiN2QzOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNzIzLDYgKzcyMyw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFi
bGVBcmVhIGludGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2
b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRW
aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCmluZGV4IDMzNWI3OGFlZDYzLi45OGNjYjc3YmYzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNTk5LDYgKzU5OSw5IEBAIHZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZDoKIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRy
dWUKIAorb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKwogQ1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAppbmRleCAwMGFmMzk0NzhkYy4uODZlMjFkMDAwNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC02OTEsNiArNjkxLDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3JvbGxpbmcKICAg
ICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbGFibGVBcmVhU2l6ZShzY3JvbGxhYmxlQXJlYS52aXNp
YmxlU2l6ZSgpKTsKIAogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0
ZXJzOworICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9
IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICBzY3Jv
bGxQYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEu
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6
b250YWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbEVs
YXN0aWNpdHkoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9s
bFBhcmFtZXRlcnMuaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Ny
b2xsYmFyICYmIGhvcml6b250YWxTY3JvbGxiYXItPmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMu
aAppbmRleCA2OTRlZmRlNjdlZS4uNjExN2NjYjdhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAg
LTU4LDYgKzU4LDkgQEAgZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsK
IH07CiAKIHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxC
ZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9y
OjogQXV0byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNp
dHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9Owog
ICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxh
c3RpY2l0eU5vbmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggN2U1ZTQ1Y2EzMjkuLmE4
MjA3MWY4MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgY29uc3QgRmxvYXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJh
bmQoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQog
ICAgIHZvaWQgc2V0VG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKGNvbnN0IEZsb2F0U2l6
ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKSB7IG1fdG90YWxDb250ZW50c1NpemVG
b3JSdWJiZXJCYW5kID0gdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVo
YXZpb3I7IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcjsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5o
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEwM2QzLi5lYTM2NzZmNGRmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC0zNSw2ICszNSwxMiBAQCBlbnVtIGNsYXNzIFNj
cm9sbFR5cGUgOiB1aW50OF90IHsKICAgICBQcm9ncmFtbWF0aWMKIH07CiAKK2VudW0gY2xhc3Mg
T3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAgQ29udGFp
biwKKyAgICBOb25lCit9OworCiBlbnVtIFNjcm9sbERpcmVjdGlvbiA6IHVpbnQ4X3QgewogICAg
IFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNkNS4uMWUxODcyMWYyNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTEyLDYgKzExMiw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKCkgY29uc3QgeyByZXR1
cm4gbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQogICAgIHZvaWQgc2V0Q29u
c3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9D
b250ZW50RWRnZSkgeyBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlID0gY29uc3Ry
YWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KIAorICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJl
aGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICB2aXJ0dWFsIE92ZXJzY3JvbGxCZWhhdmlvciB2
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhh
dmlvcjo6QXV0bzsgfQorCiAgICAgdm9pZCBzZXRWZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Ny
b2xsRWxhc3RpY2l0eSBzY3JvbGxFbGFzdGljaXR5KSB7IG1fdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5ID0gc2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxT
Y3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsRWxhc3Rp
Y2l0eT4obV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDg4NDViZWRhYzhhLi41ZmNmNGI3NDYxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zMjkxLDYgKzMyOTEs
MTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKICAgICAgICAgbV9yZXNpemVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3Qp
OwogfQogCitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6Omhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkub3Zl
cnNjcm9sbEJlaGF2aW9yWCgpOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6
OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRl
cmVyKCkuc3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCk7Cit9CisKIHN0YXRpYyBib29sIHNj
cm9sbGJhckhpZGRlbkJ5U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7CiAgICAgaWYgKCFz
Y3JvbGxiYXIgfHwgIXNjcm9sbGJhci0+aXNDdXN0b21TY3JvbGxiYXIoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggYmM5NGJkNjI5NDUuLjg5MGRlM2NmMzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDYyLDYgKzQ2Miw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVy
biBob3Jpem9udGFsU2Nyb2xsYmFyKCk7IH0KICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gdmVydGljYWxTY3JvbGxiYXIoKTsgfQogCisgICAgT3ZlcnNjcm9s
bEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAg
ICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBm
aW5hbDsKKwogICAgIGJvb2wgaG9yaXpvbnRhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIHZlcnRpY2FsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IGMzNjEyMDdkYmYwLi5mZWRhYjg5NTA4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlJvdW5kZWRSZWN0LmgiCiAj
aW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2lu
Y2x1ZGUgIlNoYWRvd0RhdGEuaCIKICNpbmNsdWRlICJTaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAi
U3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgpAQCAtMzM2LDYgKzMzNyw5IEBAIHB1YmxpYzoKICAgICBP
dmVyZmxvdyBvdmVyZmxvd0lubGluZURpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1goKSA6IG92ZXJmbG93WSgpOyB9CiAgICAgT3Zl
cmZsb3cgb3ZlcmZsb3dCbG9ja0RpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1koKSA6IG92ZXJmbG93WCgpOyB9CiAgICAgYm9vbCBp
c092ZXJmbG93VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG92ZXJmbG93WCgpID09IE92ZXJmbG93
OjpWaXNpYmxlIHx8IG92ZXJmbG93WSgpID09IE92ZXJmbG93OjpWaXNpYmxlOyB9CisKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2aW9yWCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3Zl
cnNjcm9sbEJlaGF2aW9yWCk7IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJl
aGF2aW9yWSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4o
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWSk7IH0KICAgICAKICAg
ICBWaXNpYmlsaXR5IHZpc2liaWxpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaXNp
YmlsaXR5PihtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkpOyB9CiAgICAgVmVydGljYWxBbGln
biB2ZXJ0aWNhbEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmVydGljYWxBbGln
bj4obV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduKTsgfQpAQCAtODkwLDYgKzg5NCw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3ZlcmZsb3dYKE92ZXJmbG93IHYpIHsgbV9ub25J
bmhlcml0ZWRGbGFncy5vdmVyZmxvd1ggPSAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAg
ICAgdm9pZCBzZXRPdmVyZmxvd1koT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92
ZXJmbG93WSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQorICAgIHZvaWQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yWChPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2
KSk7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclkoT3ZlcnNjcm9sbEJlaGF2aW9y
IHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JZ
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZp
c2liaWxpdHkgdikgeyBtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbiB2
KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbkxlbmd0aChMZW5ndGgmJiBsZW5n
dGgpIHsgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduOjpMZW5ndGgpOyBTRVRfVkFSKG1f
Ym94RGF0YSwgbV92ZXJ0aWNhbEFsaWduLCBXVEZNb3ZlKGxlbmd0aCkpOyB9CkBAIC0xNDQ1LDYg
KzE0NTEsOSBAQCBwdWJsaWM6CiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJv
cGVydGllcwogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dYKCkgeyByZXR1cm4g
T3ZlcmZsb3c6OlZpc2libGU7IH0KICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93
WSgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxC
ZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpIHsgcmV0dXJuIE92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bzsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92
ZXJzY3JvbGxCZWhhdmlvclkoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0K
KwogICAgIHN0YXRpYyBDbGVhciBpbml0aWFsQ2xlYXIoKSB7IHJldHVybiBDbGVhcjo6Tm9uZTsg
fQogICAgIHN0YXRpYyBEaXNwbGF5VHlwZSBpbml0aWFsRGlzcGxheSgpIHsgcmV0dXJuIERpc3Bs
YXlUeXBlOjpJbmxpbmU7IH0KICAgICBzdGF0aWMgRVVuaWNvZGVCaWRpIGluaXRpYWxVbmljb2Rl
QmlkaSgpIHsgcmV0dXJuIFVCTm9ybWFsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXgg
YmRkMDE5MTVhYTIuLmE2Yzk4YzYzYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02
MSw2ICs2MSw4IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3Jl
YXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUo
KSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3Zl
cnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRp
YWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6
aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAg
ICAsIG9iamVjdFBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsT2JqZWN0UG9zaXRpb24oKSkK
QEAgLTEzOCw2ICsxNDAsOCBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xs
U25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAgICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xs
U25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xs
QmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlv
clkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxw
dHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVu
aXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRy
KQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBAIC0yMzgsNiArMjQyLDggQEAgYm9vbCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Nyb2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFw
UG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJlYSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5k
aWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlv
clgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlv
clkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBv
aW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVjdGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMp
CiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRl
eCAxOWM1OTFiMmQxMi4uOTU3M2FkMWJkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTI1
LDYgKzEyNSw5IEBAIHB1YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlU2Nyb2xsU25hcEFyZWE+IHNj
cm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JY
IDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2
aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPENv
bnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb3VudGVyRGlyZWN0aXZl
TWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBTdHJpbmcgYWx0VGV4dDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMzE2MzQxN2RiYTAuLjgw
M2I2NDJlZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGly
ZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Xb3JrZXJUeXBlLmg+CkBAIC03NzMsNiArNzc0LDE1IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPiB7CiAK
IG5hbWVzcGFjZSBXVEYgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
Ok92ZXJzY3JvbGxCZWhhdmlvcj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bywKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW4s
CisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgPjsKK307CisKIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JTcGFjZT4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGM2ZWE2MDkyNzgxLi5lZGY4
YWQ0YWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0x
MjkwLDYgKzEyOTAsMTMgQEAgU3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaHVt
YW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFN5bnRoZXRpYyBFZGl0aW5nIENvbW1hbmRz
IgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFt
ZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246
ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisgIGNhdGVnb3J5OiBleHBlcmlt
ZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBk
ZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbQppbmRleCA3YjNmMTFiZmQ2Yi4uYmIxYmY2ODU2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0K
QEAgLTIzNiwxMiArMjM2LDMxIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUp
OwogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikKKyAgICAgICAgfHwg
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0
ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90
YWxDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1Np
emUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxQb3NpdGlvbikKICAgICAgICAgfHwgc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbE9yaWdpbikpIHsKICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IHRoaXMtPnNjcm9sbFZpZXco
KTsKKworICAgICAgICAvLyBGSVhNRShyZGFyOi8vcHJvYmxlbS8zNDMxNTk5Nyk6IFVJU2Nyb2xs
VmlldyBzaG91bGQgaGF2ZSBzb21lIGtpbmQgb2Ygc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbC1iZWhh
dmlvciB0byBlbmFibGUvZGlzYWJsZToKKyAgICAgICAgLy8gLSBub24tbG9jYWwgYm91bmRhcnkg
ZGVmYXVsdCBhY3Rpb25zIChlLmcuIHNjcm9sbCBjaGFpbmluZykuCisgICAgICAgIC8vIC0gbG9j
YWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIGJvdW5jaW5nKS4KKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorICAgICAgICAvLyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVh
UGFyYW1zKSkgeworICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JI
b3Jpem9udGFsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNj
cm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJl
aGF2aW9yVmVydGljYWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlL
aXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yKTsKKwkvLyB9CisjZW5kaWYKKyAgICAgICAgLy8gRm9yIG5vdywg
d2Ugb25seSBkaXNhYmxlIGJvdW5jaW5nIHdoZW4gYm90aCBvdmVyZmxvdy14IGFuZCBvdmVyZmxv
dy15IGFyZSBub25lLgorICAgICAgICAvLyBVSVNjcm9sbFZpZXc6OmFsd2F5c0JvdW5jZSogZnVu
Y3Rpb25zIGNhbm5vdCBoZWxwIGhlcmUuCisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJs
ZUFyZWFQYXJhbXMpKSB7CisgICAgICAgICAgICBzY3JvbGxWaWV3LmJvdW5jZXMgPSBzY3JvbGxp
bmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkuaG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvciA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgICYmIHNj
cm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS52ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvciA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgID8g
Tk8gOiBZRVM7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRh
aW5lckxheWVyKSkgewogICAgICAgICAgICAgaWYgKCFtX3Njcm9sbFZpZXdEZWxlZ2F0ZSkKICAg
ICAgICAgICAgICAgICBtX3Njcm9sbFZpZXdEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1Njcm9sbGlu
Z05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZTp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAxOTA5YWQzYTRiNS4uZDli
YjA2ODY2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTg1LDYgKzE4NSw3IEBACiAjZGVm
aW5lIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRE
b3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgog
I2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVy
bk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29u
dHJvbHNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdWJ0bGVDcnlwdG9FbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAzZDIyN2QwMGNkNi4uNDFi
ZjVmZjc1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQpAQCAtNjQ5LDYgKzY0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgQFlFUywg
V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICNlbmRpZgogCisg
ICAgICAgIEBOTywgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIEBZRVMsIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJl
bmNlS2V5LAogICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVS
THNRdWlya0tleSwKICAgICAgICAgQE5PLCBXZWJLaXRBbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3Vy
Y2VzVG9Bc2tGb3JDcmVkZW50aWFsc0tleSwKQEAgLTMxNDYsNiArMzE0NywxNiBAQCBzdGF0aWMg
TlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTpmbGFnIGZvcktleTpXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
XTsKIH0KIAorLSAoQk9PTClvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkCit7CisgICAgcmV0dXJu
IFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFBy
ZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6
KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKUNT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1
ZUZvcktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAppbmRleCAyYTRkZjY4MjcyNS4uYjVlNmU2ZTcwMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaApAQCAtNjE2LDYgKzYxNiw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXND
YWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtIChCT09M
KWxpbmtQcmVsb2FkUmVzcG9uc2l2ZUltYWdlc0VuYWJsZWQ7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGRiNzAzZDY5ZDIzLi5iNTAwOGY4
NWI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
Mjk4NSw2ICsyOTg1LDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5n
UXVpcmsoKQogCiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtwcmVm
ZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkKFtwcmVmZXJlbmNlcyBzeW50aGV0aWNFZGl0aW5n
Q29tbWFuZHNFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZChbcHJlZmVyZW5jZXMgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZF0pOwogICAgIHNldHRp
bmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRNZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChbcHJlZmVyZW5jZXMgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRdKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5k
ZXggZmJjN2UyMzQ0OGQuLmNiNzFlMTAwMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwK
QEAgLTIyMSw2ICsyMjEsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTYgOiBJ
V2ViUHJlZmVyZW5jZXNQcml2YXRlNQogICAgIEhSRVNVTFQgc2V0SW5zcGVjdG9yQWRkaXRpb25z
RW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCB2aXN1YWxWaWV3cG9ydEFQ
SUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3
cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgb3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQg
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBI
UkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQp
OwogICAgIEhSRVNVTFQgZmV0Y2hBUElLZWVwQWxpdmVFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9P
TCogZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCmluZGV4IGI0MzI4MzdlZTU4Li4zYjE0ZWIyOWM2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAg
LTE4OCw2ICsxODgsNyBAQAogCiAjZGVmaW5lIFdlYktpdFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3Jh
dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRp
b25FbmFibGVkIgogCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVm
ZXJlbmNlS2V5ICJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJL
aXRVc2VyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFVzZXJUaW1pbmdFbmFibGVk
IgogCiAjZGVmaW5lIFdlYktpdFJlc291cmNlVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldl
YktpdFJlc291cmNlVGltaW5nRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcAppbmRleCBkNjE2YTE3YzA4Yi4uYjFjMzFjZDFjMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTMzNyw2ICszMzcsOCBAQCB2
b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRWaXN1YWxWaWV3cG9ydEFQ
SUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRk
VmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVu
Y2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwpAQCAtMjI1Nyw2ICsyMjU5LDIwIEBAIEhSRVNVTFQg
V2ViUHJlZmVyZW5jZXM6OnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQp
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJs
ZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVG
b3JLZXkoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAg
IHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJl
dHVybiBTX09LOworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggYTQwMWE4MjYxZjAu
LjBiZDYyMmJhNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgK
QEAgLTI2OSw2ICsyNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0
XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3Vh
bFZpZXdwb3J0QVBJRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBmZXRjaEFQSUtlZXBBbGl2ZUVu
YWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBk
YjNkMDk2NDc4Mi4uMmU4YWQwODk4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CkBAIC01MjkzLDYgKzUyOTMsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNl
c0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4g
aHI7CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7
CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5h
YmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0
aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9
IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAg
ICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcAppbmRleCA0YWQ2ODk3NWVjMS4uYjVjYjhmMTZkODAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTExMSw2ICsxMTEsOCBAQCBUZXN0T3B0aW9uczo6
VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJp
bmcmIGFic29sdQogICAgICAgICAgICAgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgPSB2
YWx1ZTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxl
ZCIpCiAgICAgICAgICAgICBlbmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFs
dWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlv
ciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAiaW50ZXJuYWw6Q1NTTG9naWNhbEVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxl
Q1NTTG9naWNhbCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAg
IGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOkFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQi
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggM2NiOTE2YWU1YTAuLjFmZGYyNzQy
ZTE0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgc3Ry
dWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsK
ICAgICBib29sIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07
CiAgICAgYm9vbCBlbmFibGVXZWJHUFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNj
cm9sbEJlaGF2aW9yIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxz
ZSB9OwogICAgIGJvb2wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBlbmFibGVSZXNpemVPYnNlcnZlciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggYjE2YzQ5Yzk1NTguLmQzMTIxMTYzN2NmIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDIzLDYg
KzEwMjMsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5h
YmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0
aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlv
bkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9
IG9wdGlvbnMuZW5hYmxlV2ViR1BVOworICAgIHByZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvcjsKICAgICBwcmVmZXJl
bmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBw
cmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0
cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVyRW5hYmxlZCA9
IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7Ci0tIAoyLjIwLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378100</attachid>
            <date>2019-09-05 11:17:49 -0700</date>
            <delta_ts>2019-09-06 09:15:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>176454.patch</filename>
            <type>text/plain</type>
            <size>45150</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggNjBiNmE1MjUyNzguLmVlOGJkYzgyOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjY2LDYgKzI2Niw4
IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewog
ICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwLAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dYLAog
ICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dZLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yWCwKKyAgICBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksCiAgICAgQ1NTUHJvcGVy
dHlQYWRkaW5nQm90dG9tLAogICAgIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsCiAgICAgQ1NTUHJv
cGVydHlQYWRkaW5nUmlnaHQsCkBAIC0zMzQ2LDYgKzMzNDgsMTIgQEAgUmVmUHRyPENTU1ZhbHVl
PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBS
ZW5kZXJTdHkKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5
bGUub3ZlcmZsb3dYKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgogICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1ko
KSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0ZDo6bWF4KHN0eWxlLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSwgc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWSgpKSk7CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9y
WSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBy
ZXR1cm4gem9vbUFkanVzdGVkUGFkZGluZ09yTWFyZ2luUGl4ZWxWYWx1ZTwmUmVuZGVyU3R5bGU6
OnBhZGRpbmdUb3AsICZSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQYWRkaW5nVG9w
PihzdHlsZSwgcmVuZGVyZXIpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5k
ZXggOGY2M2UwYTdhMGMuLmVlNGNjYmQyOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJM
aW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNp
bmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5cGVzLmgiCiAjaW5jbHVkZSAi
VG91Y2hBY3Rpb24uaCIKQEAgLTIyMTMsNiArMjIxNCw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBP
dmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBlKQorICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29u
dGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWluOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92
ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAorewor
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAg
ICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
aW5kZXggYmNmMTYxYzAxYjQuLmZjZWRkMzEzOTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KQEAgLTMyNzYsNiArMzI3Niw0NiBAQAogICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNwcm9wZGVmLW92ZXJmbG93
LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2
aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAg
ICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsK
KyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92
ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJv
dmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAg
ICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAgICAgICAg
ICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAg
ICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwiOiAi
aHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJz
Y3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAicGFk
ZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAg
ICAgICAgImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
aW5kZXggYzQ3NjdmNWE3MzEuLjlmNzg1ODQyNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgpAQCAtMTM4NCw2ICsxMzg0LDkgQEAgcGFuLXkKIHBpbmNoLXpvb20KICNl
bmRpZgogCisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisvLyBjb250YWluCisKIC8vIGhhbmdpbmct
cHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHAKaW5kZXggMTljYjAzM2Q3MGIuLjRmNmJmMjYyYWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjQ0LDYgKzI0NCw4IEBAIFN0cmluZyBTdHlsZVBy
b3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25z
dAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VT
aG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1
cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldENvbW1vblZhbHVlKG92
ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGlu
ZzoKICAgICAgICAgcmV0dXJuIGdldDRWYWx1ZXMocGFkZGluZ1Nob3J0aGFuZCgpKTsKICAgICBj
YXNlIENTU1Byb3BlcnR5UGFkZGluZ0Jsb2NrOgpAQCAtMTE2NSw2ICsxMTY3LDEwIEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dZOgogICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBD
U1NQcm9wZXJ0eU92ZXJmbG93OwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CiAgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5UGFkZGluZ0JvdHRvbToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkzLi43YzM0NjQ2ODEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC03NSw2
ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgYXR0YWNobWVudEVuYWJsZWQg
PSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmF0dGFjaG1lbnRFbGVt
ZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID0gZG9j
dW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQoKTsKKyAgICBvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/
IGRvY3VtZW50LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAg
LTEwMCw2ICsxMDEsNyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYg
YSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYikKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVy
cmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAogICAgICAg
ICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luCisgICAgICAgICYmIGEub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09
IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckNvbnRleHQuaAppbmRleCBiMjg4NmE5ODZjMy4uMDI0Y2ZhYzBlYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02MSw2ICs2
MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNl
bmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIAogICAgIC8vIFRo
aXMgaXMgb25seSBuZWVkZWQgdG8gc3VwcG9ydCBnZXRNYXRjaGVkQ1NTUnVsZXMuCiAgICAgYm9v
bCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgZmFsc2UgfTsKQEAgLTExMiw3ICsxMTMsOCBA
QCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4dEhhc2ggewogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCiAgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCAxMQogI2VuZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMjsgLy8gS2VlcCB0aGlzIGxhc3QuCisg
ICAgICAgICAgICAmIGtleS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAg
ICA8PCAxMgorICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdU
Rjo6aW50SGFzaChiaXRzKTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA3MDhlYzc3
NzNjMS4uYzY1YTZjNDc3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yMzIzLDYgKzIzMjMsMTQgQEAgc3RhdGljIFJlZlB0cjxD
U1NWYWx1ZUxpc3Q+IGNvbnN1bWVTY3JvbGxTbmFwVHlwZShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIAogI2VuZGlmCiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Ny
b2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1
ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRv
ICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWlu
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdl
KTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5l
cihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2Rl
KQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3Vt
ZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0
aXZlKTsKQEAgLTM5MjIsNiArMzkzMCwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5
UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAg
IGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVT
Y3JvbGxTbmFwVHlwZShtX3JhbmdlKTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZ
OgorICAgICAgICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yKG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICBy
ZXR1cm4gY29uc3VtZUNsaXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKQEAgLTU1NjksNiArNTU4MiwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFy
c2VyOjpjb25zdW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJl
aGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRG
b3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7
CisgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhh
dmlvclgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3Zl
cnNjcm9sbEJlaGF2aW9yWTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAg
aWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJz
Y3JvbGxCZWhhdmlvclg7CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkg
PSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNv
bnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVy
c2Nyb2xsQmVoYXZpb3JYLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVy
c2Nyb2xsQmVoYXZpb3JZLCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29s
IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
LCBib29sIGltcG9ydGFudCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01NjA4LDYg
KzU2NTAsOCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICAgICAgYWRkUHJvcGVydHkoQ1NT
UHJvcGVydHlPdmVyZmxvd1ksIENTU1Byb3BlcnR5T3ZlcmZsb3csICpvdmVyZmxvd1lWYWx1ZSwg
aW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6
IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7
CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgp
IDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5oCmluZGV4IGJjZDFiOTI3ZmNjLi45Y2NkZTIyN2E0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApAQCAtMTA4LDYgKzEw
OCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb25zdW1lVHJhbnNmb3JtT3JpZ2luKGJvb2wgaW1w
b3J0YW50KTsKICAgICBib29sIGNvbnN1bWVQZXJzcGVjdGl2ZU9yaWdpbihib29sIGltcG9ydGFu
dCk7CiAKKyAgICBib29sIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBp
bXBvcnRhbnQpOworCiBwcml2YXRlOgogICAgIC8vIElucHV0czoKICAgICBDU1NQYXJzZXJUb2tl
blJhbmdlIG1fcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMTA2
YzgwYjdkYmYuLmU5MDY1Y2I3NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0yOTMsMTUgKzI5MywxNSBAQCBzdGF0aWMgaW5saW5lIFNjcm9sbEdyYW51bGFyaXR5IHdo
ZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KHVuc2lnbmVkIGRlbAogICAgIH0KIH0K
IAotc3RhdGljIGlubGluZSBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJs
ZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorc3RhdGljIGlu
bGluZSBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhLCBkb3VibGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCB1bnNpZ25lZCBkZWx0YU1v
ZGUpCiB7Ci0gICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdy
YW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKKyAg
ICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlU
b1Njcm9sbEdyYW51bGFyaXR5KGRlbHRhTW9kZSk7CiAgICAgYm9vbCBkaWRIYW5kbGVXaGVlbEV2
ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVl
bEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxh
YmxlQXJlYS0+c2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwID8gU2Nyb2xsUmlnaHQgOiBT
Y3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZs
b2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVgpKQorICAgICAgICBkaWRIYW5kbGVX
aGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJp
Z2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAg
IAotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0
YVkoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNj
cm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Ny
b2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURl
bHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBz
Y3JvbGxhYmxlQXJlYS0+c2Nyb2xsKGRlbHRhWSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAs
IHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKICAgICByZXR1cm4gZGlk
SGFuZGxlV2hlZWxFdmVudDsKIH0KQEAgLTMyMCwxOCArMzIwLDIwIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFy
dE5vZGUsIFdoCiAKICAgICBSZW5kZXJCb3gmIGluaXRpYWxFbmNsb3NpbmdCb3ggPSBzdGFydE5v
ZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0JveCgpOwogICAgIGlmIChpbml0aWFsRW5jbG9zaW5n
Qm94LmlzTGlzdEJveCgpKQotICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJl
YShzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVl
bEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoc3RhdGlj
X2Nhc3Q8UmVuZGVyTGlzdEJveCo+KCZpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudC5k
ZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAK
ICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0Jv
eDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZ
ID0gZmFsc2U7CiAgICAgd2hpbGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYg
KFJlbmRlckxheWVyKiBib3hMYXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsK
ICAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1Bs
YXRmb3JtRXZlbnQoKTsKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAg
ICAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3Bp
ZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVy
ZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwg
ZmlsdGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBs
YXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6
IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVy
ZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAg
ICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29w
aWVkRXZlbnQpOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5n
V2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoYm94TGF5ZXIsIHdoZWVsRXZl
bnQpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNj
cm9sbGFibGVBcmVhKGJveExheWVyLCBpZ25vcmVEZWx0YVggPyAwIDogd2hlZWxFdmVudC5kZWx0
YVgoKSwgaWdub3JlRGVsdGFZID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFZKCksIHdoZWVsRXZlbnQu
ZGVsdGFNb2RlKCkpOwogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkgewog
ICAgICAgICAgICAgICAgIGlmIChzdG9wRWxlbWVudCkKQEAgLTM0Myw2ICszNDUsMTcgQEAgc3Rh
dGljIGlubGluZSBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94
KE5vZGUqIHN0YXJ0Tm9kZSwgV2gKICAgICAgICAgaWYgKHN0b3BFbGVtZW50ICYmICpzdG9wRWxl
bWVudCAmJiAqc3RvcEVsZW1lbnQgPT0gY3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVggJiYg
Y3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsK
KyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVkgJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUo
KS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAg
ICAgICAgICAgaWdub3JlRGVsdGFZID0gdHJ1ZTsKKyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAm
JiBpZ25vcmVEZWx0YVkpIHsKKyAgICAgICAgICAgIC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50
IHdhcyBoYW5kbGVkIHNvIHRoYXQgaXQgaXMgbm90IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9y
IGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChzdG9wRWxlbWVudCkKKyAgICAgICAgICAgICAgICAq
c3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3gg
PSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFj
dXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmlu
ZGV4IGNiNGI4MWEzNTY4Li43YzEzN2QwMmM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtNDE2LDYgKzQxNiwyMCBAQCBib29sIEZyYW1lVmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBj
b25zdAogICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCkuZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAor
T3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
cigpIGNvbnN0Cit7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5k
ZXJWaWV3KCkpCisgICAgICAgIHJldHVybiByZW5kZXJWaWV3LT5zdHlsZSgpLm92ZXJzY3JvbGxC
ZWhhdmlvclgoKTsKKyAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6Omhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6dmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAgY29uc3QKK3sKKyAgICBpZiAoUmVuZGVyVmlldyogcmVu
ZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKKyAgICAgICAgcmV0dXJuIHJlbmRlclZpZXct
PnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworICAgIHJldHVybiBTY3JvbGxhYmxlQXJl
YTo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6Omlu
dmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggN2NkOTVkZmM4MjMuLmFmZGM2YjdkMzlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTcyMyw2ICs3MjMsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGVsZWdhdGVzU2Nyb2xsaW5nRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICAvLyBTY3Jv
bGxhYmxlQXJlYSBpbnRlcmZhY2UKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92
ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBpbnZh
bGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAg
ICAgdm9pZCBzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOwogICAgIHZvaWQg
c2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMzViNzhhZWQ2My4uOThjY2I3N2JmMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTU5OSw2ICs1OTksOSBAQCB2aXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWQ6CiBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFs
OiB0cnVlCiAKK292ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisK
IENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5jcHAKaW5kZXggMDBhZjM5NDc4ZGMuLjg2ZTIxZDAwMDY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcApAQCAtNjkxLDYgKzY5MSw4IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6c2V0U2Nyb2xsaW5nTm9kZVNjcm9sbGFibGVBcmVhR2VvbWV0cnkoU2Nyb2xsaW5n
CiAgICAgc2Nyb2xsaW5nTm9kZS5zZXRTY3JvbGxhYmxlQXJlYVNpemUoc2Nyb2xsYWJsZUFyZWEu
dmlzaWJsZVNpemUoKSk7CiAKICAgICBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgc2Nyb2xsUGFy
YW1ldGVyczsKKyAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3IgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7CisgICAg
c2Nyb2xsUGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHNjcm9sbGFibGVB
cmVhLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7CiAgICAgc2Nyb2xsUGFyYW1ldGVycy5o
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3Jv
bGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFyYW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVsYXN0
aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKTsKICAgICBz
Y3JvbGxQYXJhbWV0ZXJzLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyID0gaG9yaXpvbnRh
bFNjcm9sbGJhciAmJiBob3Jpem9udGFsU2Nyb2xsYmFyLT5lbmFibGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5
cGVzLmgKaW5kZXggNjk0ZWZkZTY3ZWUuLjYxMTdjY2I3YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5o
CkBAIC01OCw2ICs1OCw5IEBAIGVudW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biB7CiB9OwogCiBzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhh
dmlvcjo6IEF1dG8gfTsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xs
QmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OiBBdXRvIH07CisKICAgICBTY3JvbGxFbGFz
dGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUg
fTsKICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9s
bEVsYXN0aWNpdHlOb25lIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDdlNWU0NWNhMzI5
Li5hODIwNzFmODBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMjIsNiArMTIyLDggQEAg
cHJvdGVjdGVkOgogICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJi
ZXJCYW5kKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7
IH0KICAgICB2b2lkIHNldFRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9h
dFNpemUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNT
aXplRm9yUnViYmVyQmFuZCA9IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisg
ICAgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9s
bEJlaGF2aW9yOyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMudmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3I7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZl
cnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVHlwZXMuaAppbmRleCA4OTExNDkxMDNkMy4uZWEzNjc2ZjRkZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtMzUsNiArMzUsMTIgQEAgZW51bSBjbGFz
cyBTY3JvbGxUeXBlIDogdWludDhfdCB7CiAgICAgUHJvZ3JhbW1hdGljCiB9OwogCitlbnVtIGNs
YXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAgIEF1dG8gPSAwLAorICAgIENv
bnRhaW4sCisgICAgTm9uZQorfTsKKwogZW51bSBTY3JvbGxEaXJlY3Rpb24gOiB1aW50OF90IHsK
ICAgICBTY3JvbGxVcCwKICAgICBTY3JvbGxEb3duLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmgKaW5kZXggZDc0MzhjMTVjZDUuLjFlMTg3MjFmMjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTExMiw2ICsxMTIsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KICAgICB2b2lkIHNl
dENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGJvb2wgY29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UpIHsgbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSA9IGNv
bnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOyB9CiAKKyAgICB2aXJ0dWFsIE92ZXJzY3Jv
bGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgdmlydHVhbCBPdmVyc2Nyb2xsQmVoYXZp
b3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBPdmVyc2Nyb2xs
QmVoYXZpb3I6OkF1dG87IH0KKwogICAgIHZvaWQgc2V0VmVydGljYWxTY3JvbGxFbGFzdGljaXR5
KFNjcm9sbEVsYXN0aWNpdHkgc2Nyb2xsRWxhc3RpY2l0eSkgeyBtX3ZlcnRpY2FsU2Nyb2xsRWxh
c3RpY2l0eSA9IHNjcm9sbEVsYXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRp
Y2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbEVs
YXN0aWNpdHk+KG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA4ODQ1YmVkYWM4YS4uNWZjZjRiNzQ2MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzI5MSw2ICsz
MjkxLDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShy
ZWN0KTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgp
Lm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxh
eWVyOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiBy
ZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9v
bCBzY3JvbGxiYXJIaWRkZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIGlm
ICghc2Nyb2xsYmFyIHx8ICFzY3JvbGxiYXItPmlzQ3VzdG9tU2Nyb2xsYmFyKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGJjOTRiZDYyOTQ1Li44OTBkZTNjZjMx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ2Miw2ICs0NjIs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyBy
ZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9s
bGJhcigpIGNvbnN0IHsgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJz
Y3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7
CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3QgZmluYWw7CisKICAgICBib29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUo
KSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAppbmRleCBjMzYxMjA3ZGJmMC4uZmVkYWI4OTUwODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC00Nyw2ICs0Nyw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJSb3VuZGVkUmVjdC5o
IgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIK
ICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCiAjaW5jbHVkZSAiU2hhcGVWYWx1ZS5oIgogI2luY2x1
ZGUgIlN0eWxlQmFja2dyb3VuZERhdGEuaCIKQEAgLTMzNiw2ICszMzcsOSBAQCBwdWJsaWM6CiAg
ICAgT3ZlcmZsb3cgb3ZlcmZsb3dJbmxpbmVEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dYKCkgOiBvdmVyZmxvd1koKTsgfQogICAg
IE92ZXJmbG93IG92ZXJmbG93QmxvY2tEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dZKCkgOiBvdmVyZmxvd1goKTsgfQogICAgIGJv
b2wgaXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdCB7IHJldHVybiBvdmVyZmxvd1goKSA9PSBPdmVy
Zmxvdzo6VmlzaWJsZSB8fCBvdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6VmlzaWJsZTsgfQorCisg
ICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclgoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm92ZXJzY3JvbGxCZWhhdmlvclgpOyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3Jv
bGxCZWhhdmlvclkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZp
b3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclkpOyB9CiAgICAg
CiAgICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VmlzaWJpbGl0eT4obV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5KTsgfQogICAgIFZlcnRpY2Fs
QWxpZ24gdmVydGljYWxBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZlcnRpY2Fs
QWxpZ24+KG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbik7IH0KQEAgLTg5MCw2ICs4
OTQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE92ZXJmbG93WChPdmVyZmxvdyB2KSB7IG1f
bm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dYID0gIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsg
fQogICAgIHZvaWQgc2V0T3ZlcmZsb3dZKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFn
cy5vdmVyZmxvd1kgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KKyAgICB2b2lkIHNldE92
ZXJzY3JvbGxCZWhhdmlvclgoT3ZlcnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VUX1ZBUihtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JYLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4odikpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JZKE92ZXJzY3JvbGxCZWhh
dmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2
aW9yWSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQogICAgIHZvaWQgc2V0VmlzaWJpbGl0
eShWaXNpYmlsaXR5IHYpIHsgbV9pbmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxp
Z24gdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24gPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5ndGgoTGVuZ3RoJiYg
bGVuZ3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbjo6TGVuZ3RoKTsgU0VUX1ZB
UihtX2JveERhdGEsIG1fdmVydGljYWxBbGlnbiwgV1RGTW92ZShsZW5ndGgpKTsgfQpAQCAtMTQ0
NSw2ICsxNDUxLDkgQEAgcHVibGljOgogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhl
IHByb3BlcnRpZXMKICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WCgpIHsgcmV0
dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVy
Zmxvd1koKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQorICAgIHN0YXRpYyBPdmVyc2Ny
b2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSB7IHJldHVybiBPdmVyc2Ny
b2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRp
YWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
OyB9CisKICAgICBzdGF0aWMgQ2xlYXIgaW5pdGlhbENsZWFyKCkgeyByZXR1cm4gQ2xlYXI6Ok5v
bmU7IH0KICAgICBzdGF0aWMgRGlzcGxheVR5cGUgaW5pdGlhbERpc3BsYXkoKSB7IHJldHVybiBE
aXNwbGF5VHlwZTo6SW5saW5lOyB9CiAgICAgc3RhdGljIEVVbmljb2RlQmlkaSBpbml0aWFsVW5p
Y29kZUJpZGkoKSB7IHJldHVybiBVQk5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmlu
ZGV4IGJkZDAxOTE1YWEyLi5hNmM5OGM2M2M3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApA
QCAtNjEsNiArNjEsOCBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhKCkKICAgICAsIHNjcm9sbFNuYXBQb3J0KFN0eWxlU2Nyb2xsU25hcFBvcnQ6
OmNyZWF0ZSgpKQogICAgICwgc2Nyb2xsU25hcEFyZWEoU3R5bGVTY3JvbGxTbmFwQXJlYTo6Y3Jl
YXRlKCkpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpKSkKKyAgICAs
IG92ZXJzY3JvbGxCZWhhdmlvclkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjpp
bml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpKSkKICAgICAsIHdpbGxDaGFuZ2UoUmVuZGVyU3R5
bGU6OmluaXRpYWxXaWxsQ2hhbmdlKCkpCiAgICAgLCBtYXNrKEZpbGxMYXllclR5cGU6Ok1hc2sp
CiAgICAgLCBvYmplY3RQb3NpdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbE9iamVjdFBvc2l0aW9u
KCkpCkBAIC0xMzgsNiArMTQwLDggQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIHNj
cm9sbFNuYXBQb3J0KG8uc2Nyb2xsU25hcFBvcnQpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShvLnNj
cm9sbFNuYXBBcmVhKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNj
cm9sbEJlaGF2aW9yWCkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVo
YXZpb3JZKQogICAgICwgY29udGVudChvLmNvbnRlbnQgPyBvLmNvbnRlbnQtPmNsb25lKCkgOiBu
dWxscHRyKQogICAgICwgY291bnRlckRpcmVjdGl2ZXMoby5jb3VudGVyRGlyZWN0aXZlcyA/IG1h
a2VVbmlxdWU8Q291bnRlckRpcmVjdGl2ZU1hcD4oKm8uY291bnRlckRpcmVjdGl2ZXMpIDogbnVs
bHB0cikKICAgICAsIGFsdFRleHQoby5hbHRUZXh0KQpAQCAtMjM4LDYgKzI0Miw4IEBAIGJvb2wg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIHNjcm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xs
U25hcFBvcnQKICAgICAgICAgJiYgc2Nyb2xsU25hcEFyZWEgPT0gby5zY3JvbGxTbmFwQXJlYQog
I2VuZGlmCisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVo
YXZpb3JYCisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVo
YXZpb3JZCiAgICAgICAgICYmIGNvbnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBh
cmVQb2ludGluZ1RvRXF1YWxEYXRhKGNvdW50ZXJEaXJlY3RpdmVzLCBvLmNvdW50ZXJEaXJlY3Rp
dmVzKQogICAgICAgICAmJiBhbHRUZXh0ID09IG8uYWx0VGV4dApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgK
aW5kZXggMTljNTkxYjJkMTIuLjk1NzNhZDFiZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAg
LTEyNSw2ICsxMjUsOSBAQCBwdWJsaWM6CiAgICAgRGF0YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVh
PiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2
aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxC
ZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb250ZW50RGF0YT4gY29udGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVj
dGl2ZU1hcD4gY291bnRlckRpcmVjdGl2ZXM7CiAgICAgU3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA5NzRiNTJi
NTc1MC4uMDA2NjIzN2MzMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcApAQCAtMjA4NSw2ICsyMDg1LDkgQEAgYm9vbCBBcmd1bWVudENvZGVy
PE1lZGlhU2Vzc2lvbk1ldGFkYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE1lZGlhU2Vz
c2lvbk0KIAogdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiB7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBhcmFtZXRlcnMuaG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBhcmFtZXRlcnMu
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworCiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBh
cmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkpOwogICAgIGVuY29kZXIuZW5jb2Rl
RW51bShwYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSk7CiAKQEAgLTIxMDIsNiAr
MjEwNSwxMSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcgogCiBib29sIEFyZ3VtZW50Q29kZXI8
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1zKQogeworICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHBhcmFtcy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtcy52ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVFbnVtKHBhcmFtcy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwYXJhbXMudmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggMzE2MzQxN2RiYTAuLjgwM2I2NDJlZGExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFw
T2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJUeXBlLmg+CkBA
IC03NzMsNiArNzc0LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhPiB7CiAKIG5hbWVzcGFjZSBXVEYgewogCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcj4gewor
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJl
aGF2aW9yLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bywKKyAgICBXZWJD
b3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW4sCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9s
bEJlaGF2aW9yOjpOb25lCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6Q29sb3JTcGFjZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CiAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCmluZGV4IGM2ZWE2MDkyNzgxLi43MWRiNDU0YTNkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMjkwLDYgKzEyOTAsMTMgQEAgU3ludGhl
dGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIFN5bnRoZXRpYyBFZGl0aW5nIENvbW1hbmRzIgogICBjYXRlZ29yeTogZXhwZXJpbWVu
dGFsCiAKK092ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVs
dFZhbHVlOiB0cnVlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZp
b3IiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9y
IHByb3RvdHlwZSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDdiM2YxMWJmZDZi
Li5iYjFiZjY4NTY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMjM2LDEyICsyMzYsMzEgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVy
Q2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICBTZXRGb3JTY29wZTxib29sPiB1cGRhdGluZ0NoYW5n
ZShtX3VwZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CiAKICAgICBpZiAoc2Nyb2xsaW5nU3Rh
dGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNj
cm9sbENvbnRhaW5lckxheWVyKQorICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQ
YXJhbXMpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkKICAgICAgICAg
fHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlJlYWNoYWJsZUNvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlNjcm9sbFBvc2l0aW9uKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsT3JpZ2luKSkgewog
ICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAgICAgVUlTY3JvbGxWaWV3
ICpzY3JvbGxWaWV3ID0gdGhpcy0+c2Nyb2xsVmlldygpOworCisgICAgICAgIC8vIEZJWE1FKHJk
YXI6Ly9wcm9ibGVtLzM0MzE1OTk3KTogVUlTY3JvbGxWaWV3IHNob3VsZCBoYXZlIHNvbWUga2lu
ZCBvZiBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsLWJlaGF2aW9yIHRvIGVuYWJsZS9kaXNhYmxlOgor
ICAgICAgICAvLyAtIG5vbi1sb2NhbCBib3VuZGFyeSBkZWZhdWx0IGFjdGlvbnMgKGUuZy4gc2Ny
b2xsIGNoYWluaW5nKS4KKyAgICAgICAgLy8gLSBsb2NhbCBib3VuZGFyeSBkZWZhdWx0IGFjdGlv
bnMgKGUuZy4gYm91bmNpbmcpLgorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgICAg
IC8vIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMpKSB7CisgICAgICAgIC8vICAg
ICBzY3JvbGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlvckhvcml6b250YWwgPSBjb252ZXJ0T3ZlcnNj
cm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFi
bGVBcmVhUGFyYW1ldGVycygpLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgICAg
ICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JWZXJ0aWNhbCA9IGNvbnZlcnRP
dmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworCS8v
IH0KKyNlbmRpZgorICAgICAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcg
d2hlbiBib3RoIG92ZXJmbG93LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8v
IFVJU2Nyb2xsVmlldzo6YWx3YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4K
KyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAg
ICAgIHNjcm9sbFZpZXcuYm91bmNlcyA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxC
ZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFi
bGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3Jv
bGxCZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAg
ICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAg
ICBpZiAoIW1fc2Nyb2xsVmlld0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmll
d0RlbGVnYXRlID0gYWRvcHROUyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBh
bGxvY10gaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCmluZGV4IDE5MDlhZDNhNGI1Li5kOWJiMDY4NjZjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oCkBAIC0xODUsNiArMTg1LDcgQEAKICNkZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRyaWJ1
dGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIK
ICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJL
aXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQ
SUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgor
I2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U3VidGxlQ3J5cHRv
RW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCmluZGV4IDNkMjI3ZDAwY2Q2Li40MWJmNWZmNzUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NDksNiAr
NjQ5LDcgQEAgcHVibGljOgogICAgICAgICBAWUVTLCBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCiAKKyAgICAgICAgQE5PLCBXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdl
YktpdE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrS2V5LAogICAgICAgICBATk8s
IFdlYktpdEFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzS2V5
LApAQCAtMzE0Niw2ICszMTQ3LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJ
RCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFZpc3Vh
bFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKW92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpX
ZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZv
aWQpc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYg
X3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
UHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxl
ZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDJhNGRm
NjgyNzI1Li5iNWU2ZTZlNzAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02MTYsNiArNjE2LDcgQEAg
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxO
b3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIC0gKEJPT0wpbGlua1ByZWxvYWRSZXNwb25zaXZlSW1h
Z2VzRW5hYmxlZDsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRB
UElFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNv
ZGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5
bmNEZWNvZGluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggZGI3MDNkNjlkMjMuLmI1MDA4Zjg1YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yOTg1LDYgKzI5ODUsNyBAQCBzdGF0aWMg
Ym9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAKICAgICBzZXR0aW5ncy5z
ZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJs
ZWQoW3ByZWZlcmVuY2VzIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKKyAgICBz
ZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCBmYmM3ZTIzNDQ4ZC4uY2I3MWUxMDAw
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjIxLDYgKzIyMSw4IEBAIGludGVy
ZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAg
ICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVk
KTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJP
T0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJPT0wg
ZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtvdXQsIHJl
dHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChb
aW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtl
ZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYjQz
MjgzN2VlNTguLjNiMTRlYjI5YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTg4LDYgKzE4OCw3IEBACiAKICNkZWZp
bmUgV2ViS2l0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkg
IldlYktpdFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQiCiAKKyNkZWZpbmUgV2Vi
S2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFVzZXJUaW1pbmdFbmFibGVkUHJlZmVy
ZW5jZUtleSAiV2ViS2l0VXNlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzb3Vy
Y2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVk
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGQ2MTZh
MTdjMDhiLi5iMWMzMWNkMWMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZl
cmVuY2VzLmNwcApAQCAtMzM3LDYgKzMzNyw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRp
YWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVs
dHMsIENGU1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBr
Q0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENG
U1RSKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9v
bGVhbkZhbHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5GYWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2Vi
S2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7
CkBAIC0yMjU3LDYgKzIyNTksMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0VmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAor
SFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBC
T09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9J
TlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNV
TFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCBlbmFi
bGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
UHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQg
V2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCog
ZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuaAppbmRleCBhNDAxYTgyNjFmMC4uMGJkNjIyYmE0YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjY5LDYgKzI2OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SW5zcGVjdG9yQWRk
aXRpb25zRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wp
OworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBvdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0
XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZChfT3V0XyBCT09MKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGRiM2QwOTY0NzgyLi4yZThhZDA4OTg5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUyOTMsNiArNTI5MywxMSBAQCBI
UkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9u
KiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRWaXN1
YWxWaWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRl
LT5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhy
KSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAg
ICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDRhZDY4
OTc1ZWMxLi5iNWNiOGYxNmQ4MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApA
QCAtMTExLDYgKzExMSw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBh
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdl
YkdQVSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2Ug
aWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAg
ICAgICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRl
clZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJpbnRlcm5hbDpDU1NMb2dp
Y2FsRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDU1NMb2dpY2FsID0gcGFyc2VCb29sZWFu
VGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmlt
ZW50YWw6QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuaAppbmRleCAzY2I5MTZhZTVhMC4uMWZkZjI3NDJlMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaApAQCAtNDUsNiArNDUsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJv
b2wgZW5hYmxlQ29sb3JGaWx0ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9u
QWNyb3NzU2hhZG93Qm91bmRhcmllcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7
IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlQ1NTTG9naWNhbCB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0
cmlidXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVJlc2l6ZU9ic2VydmVy
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCBiMTZjNDljOTU1OC4uZDMxMjExNjM3Y2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMjMsNiArMTAyMyw3IEBAIHN0YXRpYyB2b2lkIHNl
dFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMp
CiAgICAgcHJlZmVyZW5jZXMuY29sb3JGaWx0ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb2xv
ckZpbHRlcjsKICAgICBwcmVmZXJlbmNlcy5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVz
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllczsK
ICAgICBwcmVmZXJlbmNlcy53ZWJHUFVFbmFibGVkID0gb3B0aW9ucy5lbmFibGVXZWJHUFU7Cisg
ICAgcHJlZmVyZW5jZXMub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxl
T3ZlcnNjcm9sbEJlaGF2aW9yOwogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0g
b3B0aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1
dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJl
ZmVyZW5jZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNl
cnZlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378196</attachid>
            <date>2019-09-06 09:15:37 -0700</date>
            <delta_ts>2020-05-14 04:29:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>176454.patch</filename>
            <type>text/plain</type>
            <size>45177</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggNjBiNmE1MjUyNzguLmVlOGJkYzgyOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjY2LDYgKzI2Niw4
IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewog
ICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwLAogICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dYLAog
ICAgIENTU1Byb3BlcnR5T3ZlcmZsb3dZLAorICAgIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yWCwKKyAgICBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksCiAgICAgQ1NTUHJvcGVy
dHlQYWRkaW5nQm90dG9tLAogICAgIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQsCiAgICAgQ1NTUHJv
cGVydHlQYWRkaW5nUmlnaHQsCkBAIC0zMzQ2LDYgKzMzNDgsMTIgQEAgUmVmUHRyPENTU1ZhbHVl
PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBS
ZW5kZXJTdHkKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5
bGUub3ZlcmZsb3dYKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgogICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1ko
KSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0ZDo6bWF4KHN0eWxlLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSwgc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWSgpKSk7CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9y
WSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBy
ZXR1cm4gem9vbUFkanVzdGVkUGFkZGluZ09yTWFyZ2luUGl4ZWxWYWx1ZTwmUmVuZGVyU3R5bGU6
OnBhZGRpbmdUb3AsICZSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQYWRkaW5nVG9w
PihzdHlsZSwgcmVuZGVyZXIpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5k
ZXggOGY2M2UwYTdhMGMuLmVlNGNjYmQyOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJM
aW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNp
bmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5cGVzLmgiCiAjaW5jbHVkZSAi
VG91Y2hBY3Rpb24uaCIKQEAgLTIyMTMsNiArMjIxNCw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBP
dmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBlKQorICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29u
dGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWluOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92
ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAorewor
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAg
ICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
aW5kZXggYmNmMTYxYzAxYjQuLmZjZWRkMzEzOTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KQEAgLTMyNzYsNiArMzI3Niw0NiBAQAogICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNwcm9wZGVmLW92ZXJmbG93
LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2
aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAg
ICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsK
KyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92
ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJv
dmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAg
ICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAgICAgICAg
ICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAg
ICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwiOiAi
aHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJz
Y3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAicGFk
ZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAg
ICAgICAgImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
aW5kZXggYzQ3NjdmNWE3MzEuLjlmNzg1ODQyNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgpAQCAtMTM4NCw2ICsxMzg0LDkgQEAgcGFuLXkKIHBpbmNoLXpvb20KICNl
bmRpZgogCisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisvLyBjb250YWluCisKIC8vIGhhbmdpbmct
cHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHAKaW5kZXggMTljYjAzM2Q3MGIuLjRmNmJmMjYyYWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjQ0LDYgKzI0NCw4IEBAIFN0cmluZyBTdHlsZVBy
b3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25z
dAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VT
aG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1
cm4gZ2V0Q29tbW9uVmFsdWUob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldENvbW1vblZhbHVlKG92
ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGlu
ZzoKICAgICAgICAgcmV0dXJuIGdldDRWYWx1ZXMocGFkZGluZ1Nob3J0aGFuZCgpKTsKICAgICBj
YXNlIENTU1Byb3BlcnR5UGFkZGluZ0Jsb2NrOgpAQCAtMTE2NSw2ICsxMTY3LDEwIEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dZOgogICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBD
U1NQcm9wZXJ0eU92ZXJmbG93OwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CiAgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5UGFkZGluZ0JvdHRvbToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuY3BwCmluZGV4IDc1MzcxODhjYjkzLi43YzM0NjQ2ODEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC03NSw2
ICs3NSw3IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgYXR0YWNobWVudEVuYWJsZWQg
PSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmF0dGFjaG1lbnRFbGVt
ZW50RW5hYmxlZCgpOwogI2VuZGlmCiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID0gZG9j
dW1lbnQuc2V0dGluZ3MoKS5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQoKTsKKyAgICBvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBhZ2UoKSA/
IGRvY3VtZW50LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9CiAKQEAg
LTEwMCw2ICsxMDEsNyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYg
YSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYikKICNlbmRpZgogICAgICAgICAmJiBhLmRlZmVy
cmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZAogICAgICAg
ICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luCisgICAgICAgICYmIGEub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09
IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckNvbnRleHQuaAppbmRleCBiMjg4NmE5ODZjMy4uMDI0Y2ZhYzBlYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02MSw2ICs2
MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGF0dGFjaG1lbnRFbmFibGVkIHsgZmFsc2UgfTsKICNl
bmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIAogICAgIC8vIFRo
aXMgaXMgb25seSBuZWVkZWQgdG8gc3VwcG9ydCBnZXRNYXRjaGVkQ1NTUnVsZXMuCiAgICAgYm9v
bCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgZmFsc2UgfTsKQEAgLTExMiw3ICsxMTMsOCBA
QCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4dEhhc2ggewogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCiAgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCAxMQogI2VuZGlmCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMjsgLy8gS2VlcCB0aGlzIGxhc3QuCisg
ICAgICAgICAgICAmIGtleS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAg
ICA8PCAxMgorICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdU
Rjo6aW50SGFzaChiaXRzKTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA3MDhlYzc3
NzNjMS4uYzY1YTZjNDc3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yMzIzLDYgKzIzMjMsMTQgQEAgc3RhdGljIFJlZlB0cjxD
U1NWYWx1ZUxpc3Q+IGNvbnN1bWVTY3JvbGxTbmFwVHlwZShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIAogI2VuZGlmCiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Ny
b2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1
ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRv
ICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWlu
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdl
KTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5l
cihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2Rl
KQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3Vt
ZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0
aXZlKTsKQEAgLTM5MjIsNiArMzkzMCwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5
UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAg
IGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxTbmFwVHlwZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVT
Y3JvbGxTbmFwVHlwZShtX3JhbmdlKTsKICNlbmRpZgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZ
OgorICAgICAgICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yKG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICBy
ZXR1cm4gY29uc3VtZUNsaXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKQEAgLTU1NjksNiArNTU4MiwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFy
c2VyOjpjb25zdW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJl
aGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRG
b3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7
CisgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhh
dmlvclgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3Zl
cnNjcm9sbEJlaGF2aW9yWTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAg
aWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJz
Y3JvbGxCZWhhdmlvclg7CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkg
PSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNv
bnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVy
c2Nyb2xsQmVoYXZpb3JYLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVy
c2Nyb2xsQmVoYXZpb3JZLCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29s
IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
LCBib29sIGltcG9ydGFudCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01NjA4LDYg
KzU2NTAsOCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICAgICAgYWRkUHJvcGVydHkoQ1NT
UHJvcGVydHlPdmVyZmxvd1ksIENTU1Byb3BlcnR5T3ZlcmZsb3csICpvdmVyZmxvd1lWYWx1ZSwg
aW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6
IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7
CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgp
IDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5oCmluZGV4IGJjZDFiOTI3ZmNjLi45Y2NkZTIyN2E0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApAQCAtMTA4LDYgKzEw
OCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb25zdW1lVHJhbnNmb3JtT3JpZ2luKGJvb2wgaW1w
b3J0YW50KTsKICAgICBib29sIGNvbnN1bWVQZXJzcGVjdGl2ZU9yaWdpbihib29sIGltcG9ydGFu
dCk7CiAKKyAgICBib29sIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBp
bXBvcnRhbnQpOworCiBwcml2YXRlOgogICAgIC8vIElucHV0czoKICAgICBDU1NQYXJzZXJUb2tl
blJhbmdlIG1fcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMTA2
YzgwYjdkYmYuLmU5MDY1Y2I3NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0yOTMsMTUgKzI5MywxNSBAQCBzdGF0aWMgaW5saW5lIFNjcm9sbEdyYW51bGFyaXR5IHdo
ZWVsR3JhbnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KHVuc2lnbmVkIGRlbAogICAgIH0KIH0K
IAotc3RhdGljIGlubGluZSBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJs
ZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorc3RhdGljIGlu
bGluZSBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhLCBkb3VibGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCB1bnNpZ25lZCBkZWx0YU1v
ZGUpCiB7Ci0gICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdy
YW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKKyAg
ICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVsYXJpdHlU
b1Njcm9sbEdyYW51bGFyaXR5KGRlbHRhTW9kZSk7CiAgICAgYm9vbCBkaWRIYW5kbGVXaGVlbEV2
ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVl
bEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxh
YmxlQXJlYS0+c2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwID8gU2Nyb2xsUmlnaHQgOiBT
Y3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZs
b2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVgpKQorICAgICAgICBkaWRIYW5kbGVX
aGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJp
Z2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAg
IAotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0
YVkoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEtPnNj
cm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Ny
b2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURl
bHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBz
Y3JvbGxhYmxlQXJlYS0+c2Nyb2xsKGRlbHRhWSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAs
IHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKICAgICByZXR1cm4gZGlk
SGFuZGxlV2hlZWxFdmVudDsKIH0KQEAgLTMyMCwxOCArMzIwLDIwIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFy
dE5vZGUsIFdoCiAKICAgICBSZW5kZXJCb3gmIGluaXRpYWxFbmNsb3NpbmdCb3ggPSBzdGFydE5v
ZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0JveCgpOwogICAgIGlmIChpbml0aWFsRW5jbG9zaW5n
Qm94LmlzTGlzdEJveCgpKQotICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJl
YShzdGF0aWNfY2FzdDxSZW5kZXJMaXN0Qm94Kj4oJmluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVl
bEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoc3RhdGlj
X2Nhc3Q8UmVuZGVyTGlzdEJveCo+KCZpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudC5k
ZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAK
ICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0Jv
eDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZ
ID0gZmFsc2U7CiAgICAgd2hpbGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYg
KFJlbmRlckxheWVyKiBib3hMYXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsK
ICAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1Bs
YXRmb3JtRXZlbnQoKTsKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAg
ICAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3Bp
ZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVy
ZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwg
ZmlsdGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBs
YXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6
IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVy
ZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAg
ICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29w
aWVkRXZlbnQpOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5n
V2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoYm94TGF5ZXIsIHdoZWVsRXZl
bnQpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNj
cm9sbGFibGVBcmVhKGJveExheWVyLCBpZ25vcmVEZWx0YVggPyAwIDogd2hlZWxFdmVudC5kZWx0
YVgoKSwgaWdub3JlRGVsdGFZID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFZKCksIHdoZWVsRXZlbnQu
ZGVsdGFNb2RlKCkpOwogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkgewog
ICAgICAgICAgICAgICAgIGlmIChzdG9wRWxlbWVudCkKQEAgLTM0Myw2ICszNDUsMTcgQEAgc3Rh
dGljIGlubGluZSBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94
KE5vZGUqIHN0YXJ0Tm9kZSwgV2gKICAgICAgICAgaWYgKHN0b3BFbGVtZW50ICYmICpzdG9wRWxl
bWVudCAmJiAqc3RvcEVsZW1lbnQgPT0gY3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVggJiYg
Y3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsK
KyAgICAgICAgaWYgKCFpZ25vcmVEZWx0YVkgJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUo
KS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAg
ICAgICAgICAgaWdub3JlRGVsdGFZID0gdHJ1ZTsKKyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAm
JiBpZ25vcmVEZWx0YVkpIHsKKyAgICAgICAgICAgIC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50
IHdhcyBoYW5kbGVkIHNvIHRoYXQgaXQgaXMgbm90IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9y
IGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChzdG9wRWxlbWVudCkKKyAgICAgICAgICAgICAgICAq
c3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3gg
PSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFj
dXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmlu
ZGV4IGNiNGI4MWEzNTY4Li5hYTUwZjc2NWE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtNDE2LDYgKzQxNiwyMCBAQCBib29sIEZyYW1lVmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBj
b25zdAogICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCkuZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAor
T3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
cigpIGNvbnN0Cit7CisgICAgaWYgKFJlbmRlcldpZGdldCogZnJhbWVSZW5kZXJlciA9IGZyYW1l
KCkub3duZXJSZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZnJhbWVSZW5kZXJlci0+c3R5bGUo
KS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCk7CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFt
ZVZpZXc6OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgaWYgKFJl
bmRlcldpZGdldCogZnJhbWVSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpKQorICAg
ICAgICByZXR1cm4gZnJhbWVSZW5kZXJlci0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCk7
CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigp
OworfQorCiB2b2lkIEZyYW1lVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVj
dCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA3
Y2Q5NWRmYzgyMy4uYWZkYzZiN2QzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNzIz
LDYgKzcyMyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRDaGFu
Z2UoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGludGVyZmFjZQorICAgIE92ZXJz
Y3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7
CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYs
IGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29u
c3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDMzNWI3
OGFlZDYzLi45OGNjYjc3YmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNTk5
LDYgKzU5OSw5IEBAIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZDoKIHN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kc0VuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIAorb3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoK
ICAgaW5pdGlhbDogZmFsc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCAwMGFmMzk0Nzhk
Yy4uODZlMjFkMDAwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC02OTEsNiArNjkxLDgg
QEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xs
YWJsZUFyZWFHZW9tZXRyeShTY3JvbGxpbmcKICAgICBzY3JvbGxpbmdOb2RlLnNldFNjcm9sbGFi
bGVBcmVhU2l6ZShzY3JvbGxhYmxlQXJlYS52aXNpYmxlU2l6ZSgpKTsKIAogICAgIFNjcm9sbGFi
bGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJzOworICAgIHNjcm9sbFBhcmFtZXRlcnMu
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHNjcm9sbGFibGVBcmVhLmhvcml6b250YWxP
dmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICBzY3JvbGxQYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5ID0gc2Ny
b2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKTsKICAgICBzY3JvbGxQYXJh
bWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9IHNjcm9sbGFibGVBcmVhLnZlcnRpY2Fs
U2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaGFzRW5hYmxlZEhvcml6
b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Nyb2xsYmFyICYmIGhvcml6b250YWxTY3JvbGxi
YXItPmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAppbmRleCA2OTRlZmRlNjdlZS4uNjExN2Nj
YjdhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTU4LDYgKzU4LDkgQEAgZW51bSBjbGFzcyBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVjdCBTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9s
bEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworICAgIE92ZXJzY3JvbGxC
ZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6
IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNp
dHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmgKaW5kZXggN2U1ZTQ1Y2EzMjkuLmE4MjA3MWY4MGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgRmxvYXRTaXpl
JiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoKSBjb25zdCB7IHJldHVybiBtX3RvdGFs
Q29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogICAgIHZvaWQgc2V0VG90YWxDb250ZW50c1Np
emVGb3JSdWJiZXJCYW5kKGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJi
ZXJCYW5kKSB7IG1fdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kID0gdG90YWxDb250ZW50
c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7IH0KKyAgICBPdmVyc2Nyb2xsQmVo
YXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsgfQogICAgIFNj
cm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsg
fQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDg5MTE0OTEw
M2QzLi5lYTM2NzZmNGRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBA
IC0zNSw2ICszNSwxMiBAQCBlbnVtIGNsYXNzIFNjcm9sbFR5cGUgOiB1aW50OF90IHsKICAgICBQ
cm9ncmFtbWF0aWMKIH07CiAKK2VudW0gY2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhf
dCB7CisgICAgQXV0byA9IDAsCisgICAgQ29udGFpbiwKKyAgICBOb25lCit9OworCiBlbnVtIFNj
cm9sbERpcmVjdGlvbiA6IHVpbnQ4X3QgewogICAgIFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkNzQzOGMxNWNk
NS4uMWUxODcyMWYyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aApAQCAtMTEyLDYgKzExMiw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnN0cmFpbnNTY3JvbGxp
bmdUb0NvbnRlbnRFZGdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9D
b250ZW50RWRnZTsgfQogICAgIHZvaWQgc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVk
Z2UoYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSkgeyBtX2NvbnN0cmFpbnNT
Y3JvbGxpbmdUb0NvbnRlbnRFZGdlID0gY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7
IH0KIAorICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAg
ICB2aXJ0dWFsIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigp
IGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgdm9pZCBz
ZXRWZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eSBzY3JvbGxFbGFzdGlj
aXR5KSB7IG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsRWxhc3RpY2l0eTsgfQog
ICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsRWxhc3RpY2l0eT4obV92ZXJ0aWNhbFNjcm9sbEVsYXN0
aWNpdHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IDg4NDViZWRhYzhhLi41ZmNmNGI3NDYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC0zMjkxLDYgKzMyOTEsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52
YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgbV9y
ZXNpemVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3QpOwogfQogCitPdmVyc2Nyb2xsQmVoYXZpb3Ig
UmVuZGVyTGF5ZXI6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAg
IHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpOworfQorCitP
dmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCkuc3R5bGUoKS5vdmVyc2Nyb2xsQmVo
YXZpb3JZKCk7Cit9CisKIHN0YXRpYyBib29sIHNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIpCiB7CiAgICAgaWYgKCFzY3JvbGxiYXIgfHwgIXNjcm9sbGJhci0+aXND
dXN0b21TY3JvbGxiYXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5k
ZXggYmM5NGJkNjI5NDUuLjg5MGRlM2NmMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaApAQCAtNDYyLDYgKzQ2Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0hvcml6
b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCk7IH0K
ICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gdmVydGljYWxT
Y3JvbGxiYXIoKTsgfQogCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKwogICAgIGJvb2wgaG9yaXpvbnRh
bFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHZlcnRp
Y2FsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGMzNjEyMDdkYmYwLi5m
ZWRhYjg5NTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5o
IgogI2luY2x1ZGUgIlJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKICNpbmNs
dWRlICJTaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAiU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgpAQCAt
MzM2LDYgKzMzNyw5IEBAIHB1YmxpYzoKICAgICBPdmVyZmxvdyBvdmVyZmxvd0lubGluZURpcmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxv
d1goKSA6IG92ZXJmbG93WSgpOyB9CiAgICAgT3ZlcmZsb3cgb3ZlcmZsb3dCbG9ja0RpcmVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1ko
KSA6IG92ZXJmbG93WCgpOyB9CiAgICAgYm9vbCBpc092ZXJmbG93VmlzaWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG92ZXJmbG93WCgpID09IE92ZXJmbG93OjpWaXNpYmxlIHx8IG92ZXJmbG93WSgpID09
IE92ZXJmbG93OjpWaXNpYmxlOyB9CisKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9s
bEJlaGF2aW9yWCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlv
cj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWCk7IH0KKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2aW9yWSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3Zl
cnNjcm9sbEJlaGF2aW9yWSk7IH0KICAgICAKICAgICBWaXNpYmlsaXR5IHZpc2liaWxpdHkoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaXNpYmlsaXR5PihtX2luaGVyaXRlZEZsYWdzLnZp
c2liaWxpdHkpOyB9CiAgICAgVmVydGljYWxBbGlnbiB2ZXJ0aWNhbEFsaWduKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8VmVydGljYWxBbGlnbj4obV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0
aWNhbEFsaWduKTsgfQpAQCAtODkwLDYgKzg5NCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
T3ZlcmZsb3dYKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy5vdmVyZmxvd1ggPSAg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRPdmVyZmxvd1koT3ZlcmZs
b3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPih2KTsgfQorICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWChPdmVyc2Nyb2xsQmVo
YXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhh
dmlvclgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KKyAgICB2b2lkIHNldE92ZXJzY3Jv
bGxCZWhhdmlvclkoT3ZlcnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JZLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikp
OyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZpc2liaWxpdHkgdikgeyBtX2luaGVyaXRlZEZs
YWdzLnZpc2liaWxpdHkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNl
dFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbiB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVy
dGljYWxBbGlnbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVy
dGljYWxBbGlnbkxlbmd0aChMZW5ndGgmJiBsZW5ndGgpIHsgc2V0VmVydGljYWxBbGlnbihWZXJ0
aWNhbEFsaWduOjpMZW5ndGgpOyBTRVRfVkFSKG1fYm94RGF0YSwgbV92ZXJ0aWNhbEFsaWduLCBX
VEZNb3ZlKGxlbmd0aCkpOyB9CkBAIC0xNDQ1LDYgKzE0NTEsOSBAQCBwdWJsaWM6CiAgICAgLy8g
SW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVydGllcwogICAgIHN0YXRpYyBPdmVyZmxv
dyBpbml0aWFsT3ZlcmZsb3dYKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7IH0KICAgICBz
dGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WSgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNp
YmxlOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJl
aGF2aW9yWCgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorICAgIHN0YXRp
YyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclkoKSB7IHJldHVy
biBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKwogICAgIHN0YXRpYyBDbGVhciBpbml0aWFs
Q2xlYXIoKSB7IHJldHVybiBDbGVhcjo6Tm9uZTsgfQogICAgIHN0YXRpYyBEaXNwbGF5VHlwZSBp
bml0aWFsRGlzcGxheSgpIHsgcmV0dXJuIERpc3BsYXlUeXBlOjpJbmxpbmU7IH0KICAgICBzdGF0
aWMgRVVuaWNvZGVCaWRpIGluaXRpYWxVbmljb2RlQmlkaSgpIHsgcmV0dXJuIFVCTm9ybWFsOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYmRkMDE5MTVhYTIuLmE2Yzk4YzYzYzcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02MSw2ICs2MSw4IEBAIFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25h
cFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJl
YShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9s
bEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVy
c2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQog
ICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAs
IG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG9iamVjdFBvc2l0aW9uKFJlbmRlclN0
eWxlOjppbml0aWFsT2JqZWN0UG9zaXRpb24oKSkKQEAgLTEzOCw2ICsxNDAsOCBAQCBpbmxpbmUg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25z
dCBTdHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkK
ICAgICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92
ZXJzY3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9s
bEJlaGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVu
dCA/IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZl
cyhvLmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigq
by5jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQp
CkBAIC0yMzgsNiArMjQyLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYg
c2Nyb2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFw
QXJlYSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJl
aGF2aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJl
aGF2aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFF
cXVpdmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRp
cmVjdGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5h
bHRUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxOWM1OTFiMmQxMi4uOTU3M2FkMWJkZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTI1LDYgKzEyNSw5IEBAIHB1YmxpYzoKICAgICBE
YXRhUmVmPFN0eWxlU2Nyb2xsU25hcEFyZWE+IHNjcm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAg
ICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JYIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9y
CisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhh
dmlvcgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAg
ICBTdHJpbmcgYWx0VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCmluZGV4IDk3NGI1MmI1NzUwLi4wMDY2MjM3YzMxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yMDg1LDYgKzIw
ODUsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFTZXNzaW9uTWV0YWRhdGE+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgTWVkaWFTZXNzaW9uTQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNj
cm9sbGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKKyAgICBlbmNvZGVyLmVuY29k
ZUVudW0ocGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0ocGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisK
ICAgICBlbmNvZGVyLmVuY29kZUVudW0ocGFyYW1ldGVycy5ob3Jpem9udGFsU2Nyb2xsRWxhc3Rp
Y2l0eSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxF
bGFzdGljaXR5KTsKIApAQCAtMjEwMiw2ICsyMTA1LDExIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
U2NyCiAKIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbXMpCiB7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1zLmhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZUVudW0ocGFyYW1zLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1zLmhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVFbnVtKHBhcmFtcy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAzMTYzNDE3ZGJhMC4u
ODAzYjY0MmVkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25E
aXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Nyb2xsVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dvcmtlclR5cGUuaD4KQEAgLTc3Myw2ICs3NzQsMTUgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0YWNobWVudERhdGE+IHsK
IAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3IsCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9s
bEJlaGF2aW9yOjpBdXRvLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFp
biwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICA+OworfTsKKwog
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb2xvclNwYWNlPiB7CiAgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJDb3JlOjpDb2xvclNwYWNlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggYzZlYTYwOTI3ODEuLmVk
ZjhhZDRhYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAg
LTEyOTAsNiArMTI5MCwxMyBAQCBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU3ludGhldGljIEVkaXRpbmcgQ29tbWFu
ZHMiCiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVO
YW1lOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlv
bjogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIHByb3RvdHlwZSIKKyAgY2F0ZWdvcnk6IGV4cGVy
aW1lbnRhbAorCiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAg
IGRlZmF1bHRWYWx1ZTogZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCmluZGV4IDdiM2YxMWJmZDZiLi5iYjFiZjY4NTY3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5t
bQpAQCAtMjM2LDEyICsyMzYsMzEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICBTZXRG
b3JTY29wZTxib29sPiB1cGRhdGluZ0NoYW5nZShtX3VwZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1
ZSk7CiAKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKQorICAgICAgICB8
fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpU
b3RhbENvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlYWNoYWJsZUNvbnRlbnRz
U2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbFBvc2l0aW9uKQogICAgICAgICB8fCBz
Y3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsT3JpZ2luKSkgewogICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICAgICAgVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3ID0gdGhpcy0+c2Nyb2xsVmll
dygpOworCisgICAgICAgIC8vIEZJWE1FKHJkYXI6Ly9wcm9ibGVtLzM0MzE1OTk3KTogVUlTY3Jv
bGxWaWV3IHNob3VsZCBoYXZlIHNvbWUga2luZCBvZiBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsLWJl
aGF2aW9yIHRvIGVuYWJsZS9kaXNhYmxlOgorICAgICAgICAvLyAtIG5vbi1sb2NhbCBib3VuZGFy
eSBkZWZhdWx0IGFjdGlvbnMgKGUuZy4gc2Nyb2xsIGNoYWluaW5nKS4KKyAgICAgICAgLy8gLSBs
b2NhbCBib3VuZGFyeSBkZWZhdWx0IGFjdGlvbnMgKGUuZy4gYm91bmNpbmcpLgorI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgICAgIC8vIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFy
ZWFQYXJhbXMpKSB7CisgICAgICAgIC8vICAgICBzY3JvbGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlv
ckhvcml6b250YWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQo
c2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpLmhvcml6b250YWxP
dmVyc2Nyb2xsQmVoYXZpb3IpOworICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xs
QmVoYXZpb3JWZXJ0aWNhbCA9IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9V
SUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkudmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworCS8vIH0KKyNlbmRpZgorICAgICAgICAvLyBGb3Igbm93
LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcgd2hlbiBib3RoIG92ZXJmbG93LXggYW5kIG92ZXJm
bG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8vIFVJU2Nyb2xsVmlldzo6YWx3YXlzQm91bmNlKiBm
dW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4KKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxh
YmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgICAgIHNjcm9sbFZpZXcuYm91bmNlcyA9IHNjcm9s
bGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAgJiYg
c2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAg
PyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29u
dGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xsVmlld0RlbGVnYXRlKQog
ICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0gYWRvcHROUyhbW1dLU2Nyb2xs
aW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9k
ZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDE5MDlhZDNhNGI1Li5k
OWJiMDY4NjZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xODUsNiArMTg1LDcgQEAKICNk
ZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2Fk
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TW9k
ZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVkaWFD
b250cm9sc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFN1YnRsZUNyeXB0b0VuYWJsZWRQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0U3VidGxlQ3J5cHRvRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDNkMjI3ZDAwY2Q2Li40
MWJmNWZmNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCkBAIC02NDksNiArNjQ5LDcgQEAgcHVibGljOgogICAgICAgICBAWUVT
LCBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCiAK
KyAgICAgICAgQE5PLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgQFlFUywgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxl
VVJMc1F1aXJrS2V5LAogICAgICAgICBATk8sIFdlYktpdEFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNv
dXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzS2V5LApAQCAtMzE0Niw2ICszMTQ3LDE2IEBAIHN0YXRp
YyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZh
bHVlOmZsYWcgZm9yS2V5OldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VL
ZXldOwogfQogCistIChCT09MKW92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKK3sKKyAgICByZXR1
cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
UHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJL
aXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wp
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZh
bHVlRm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCmluZGV4IDJhNGRmNjgyNzI1Li5iNWU2ZTZlNzAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCkBAIC02MTYsNiArNjE2LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNl
c0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIC0gKEJP
T0wpbGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2VzRW5hYmxlZDsKIAogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBhbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZGI3MDNkNjlkMjMuLmI1MDA4
Zjg1YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC0yOTg1LDYgKzI5ODUsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRp
bmdRdWlyaygpCiAKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3By
ZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kc0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkXSk7CiAgICAgc2V0
dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApp
bmRleCBmYmM3ZTIzNDQ4ZC4uY2I3MWUxMDAwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlk
bApAQCAtMjIxLDYgKzIyMSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6
IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlv
bnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VM
VCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAg
IEhSRVNVTFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxl
ZCk7CiAgICAgSFJFU1VMVCBmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoW291dCwgcmV0dmFsXSBC
T09MKiBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYjQzMjgzN2VlNTguLjNiMTRlYjI5YzYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApA
QCAtMTg4LDYgKzE4OCw3IEBACiAKICNkZWZpbmUgV2ViS2l0V2ViQW5pbWF0aW9uc0NTU0ludGVn
cmF0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3Jh
dGlvbkVuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdFVzZXJUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0VXNlclRpbWluZ0VuYWJs
ZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAi
V2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuY3BwCmluZGV4IGQ2MTZhMTdjMDhiLi5iMWMzMWNkMWMxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzM3LDYgKzMzNyw4IEBA
IHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAg
Q0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0
aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVy
ZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0yMjU3LDYgKzIyNTksMjAgQEAgSFJFU1VM
VCBXZWJQcmVmZXJlbmNlczo6c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxl
ZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1
ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7Cisg
ICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJL
aXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAg
cmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBhNDAxYTgyNjFm
MC4uMGJkNjIyYmE0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
aApAQCAtMjY5LDYgKzI2OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChCT09MKTsKICAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKF9P
dXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Vmlz
dWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGZldGNoQVBJS2VlcEFsaXZl
RW5hYmxlZChfT3V0XyBCT09MKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4
IGRiM2QwOTY0NzgyLi4yZThhZDA4OTg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAKQEAgLTUyOTMsNiArNTI5MywxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVu
Y2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVy
biBocjsKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVk
KTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZl
bmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNl
dHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhy
ID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsK
ICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuY3BwCmluZGV4IDRhZDY4OTc1ZWMxLi5iNWNiOGYxNmQ4MCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTExLDYgKzExMSw4IEBAIFRlc3RPcHRpb25z
OjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0
cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyA9
IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFi
bGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkdQVSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJW
YWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2
aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJpbnRlcm5hbDpDU1NMb2dpY2FsRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFi
bGVDU1NMb2dpY2FsID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAg
ICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxl
ZCIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCAzY2I5MTZhZTVhMC4uMWZkZjI3
NDJlMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNDUsNiArNDUsNyBAQCBz
dHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIgeyBmYWxzZSB9
OwogICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllcyB7IHRydWUg
fTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVPdmVy
c2Nyb2xsQmVoYXZpb3IgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ1NTTG9naWNhbCB7IGZh
bHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIGVuYWJsZVJlc2l6ZU9ic2VydmVyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiMTZjNDljOTU1OC4uZDMxMjExNjM3Y2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMjMs
NiArMTAyMyw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMuY29sb3JGaWx0ZXJF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVDb2xvckZpbHRlcjsKICAgICBwcmVmZXJlbmNlcy5zZWxl
Y3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlU2VsZWN0
aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllczsKICAgICBwcmVmZXJlbmNlcy53ZWJHUFVFbmFibGVk
ID0gb3B0aW9ucy5lbmFibGVXZWJHUFU7CisgICAgcHJlZmVyZW5jZXMub3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yOwogICAgIHByZWZl
cmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAg
IHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tB
dHRyaWJ1dGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5jZXMucmVzaXplT2JzZXJ2ZXJFbmFibGVk
ID0gb3B0aW9ucy5lbmFibGVSZXNpemVPYnNlcnZlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399351</attachid>
            <date>2020-05-14 04:29:39 -0700</date>
            <delta_ts>2020-05-14 04:57:11 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>overscroll-behavior-002-200514.diff</filename>
            <type>text/plain</type>
            <size>45562</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggODE4NzMwYjBiMC4uODFmMmU3YzQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTMwMzYsNiArMzAzNiwx
MiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJv
cGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZh
bHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUo
c3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVo
YXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6
CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHls
ZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGlu
Z1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhl
bFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpj
b21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaAppbmRleCAxY2QxMDg0MmU5Li5lMWI5ZWE5MzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
Q29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAi
U2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5
cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKQEAgLTIyMDUsNiArMjIwNiw0MiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBj
b25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlv
ciBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CisgICAgc3dpdGNoIChlKSB7Cisg
ICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW46CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Ny
b2xsQmVoYXZpb3I6Ok5vbmU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9u
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG86Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
T3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwor
CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ29udGFp
bjoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKKyAgICBjYXNl
IENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsK
KyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlv
cjo6QXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOwor
fQorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQnJlYWtCZXR3ZWVuIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDU3NmVmY2M2NjMuLjY1OWViNTAy
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzI4OCw2ICszMjg4
LDQ2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3Nz
LW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAgICAg
fSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29kZWdl
bi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAg
ICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAgICAg
ICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
aW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRp
b24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292
ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAg
ICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAg
ICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4g
ZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24i
OiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJz
Y3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAg
ICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAg
ICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAg
ICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBk
ZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6
IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNj
cm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAg
ICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVn
ZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA2ZjY3YmNjOWQyLi5hMTJiNjA1OGNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM3OCw2ICsxMzc4
LDkgQEAgcGluY2gtem9vbQogLy8gYXV0bwogc21vb3RoCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZp
b3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJz
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBhMDJhODE5MGI4Li4x
MThhZWExMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjU1
LDYgKzI1NSw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5k
VmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyZmxvd1Nob3J0aGFu
ZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICBy
ZXR1cm4gZ2V0MlZhbHVlcyhvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoKSk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBhZGRpbmdT
aG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCbG9jazoKQEAgLTExNzcs
NiArMTE3OSwxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAogICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAgICBzaG9y
dGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgor
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAg
ICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0Ogog
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCA1YTdkODA0ZGFkLi5k
N2NjYzFjMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29u
dGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICNlbmRp
ZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVm
ZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CiAgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9j
dW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CisgICAg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBkb2N1bWVudC5w
YWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSA6IGZhbHNlOwog
fQogCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuZGVmZXJy
ZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCiAgICAgICAg
ICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JFbmFibGVkCiAg
ICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIu
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFu
Y2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDc3M2I4NTQyMzAuLjBlMzA1MmM3M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02Niw2
ICs2Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07
CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAg
ICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgog
ICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDksNyAr
MTEwLDggQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAgICAgICAgICAgICYga2V5
LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYK
ICAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgIDw8IDEyCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAmIGtl
eS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMworICAgICAg
ICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg
MTQ7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChiaXRz
KTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDE3NTZmOTJmYmEuLjQyYmM4ODBm
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBh
dGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRo
cy5jcHAKQEAgLTgzNSw2ICs4MzUsOCBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3
b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93V3JhcDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dYOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBvaW50ZXJFdmVudHM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvc2l0
aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IGY1ZDIxNjljNjYuLjJhYWVmMmQz
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCkBAIC0yMzYxLDYgKzIzNjEsMTQgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmcKICAgICBy
ZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKIH0KIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sK
KyAgICBhdXRvIHZhbHVlSUQgPSByYW5nZS5wZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAh
PSBDU1NWYWx1ZUF1dG8gJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBD
U1NWYWx1ZUNvbnRhaW4pCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25z
dW1lSWRlbnQocmFuZ2UpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9y
ZGVyUmFkaXVzQ29ybmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2Rl
IGNzc1BhcnNlck1vZGUpCiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRW
YWx1ZTEgPSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1
ZVJhbmdlTm9uTmVnYXRpdmUpOwpAQCAtMzk0OCw2ICszOTU2LDExIEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgQ1NTCiAgICAgICAgIGlmICghbV9jb250ZXh0LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9s
bEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZp
b3JYOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBp
ZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1f
cmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICByZXR1cm4gY29uc3Vt
ZUNsaXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUb3Vj
aEFjdGlvbjoKQEAgLTU1MzcsNiArNTU1MCwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpj
b25zdW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVl
OwogfQogCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9y
U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9w
ZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7CisgICAg
aWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29uc3VtZU92
ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhhdmlvclgp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9s
bEJlaGF2aW9yWTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgaWYgKG1f
cmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJzY3JvbGxC
ZWhhdmlvclg7CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBjb25z
dW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNvbnN1bWVX
aGl0ZXNwYWNlKCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xs
QmVoYXZpb3JYLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xs
QmVoYXZpb3JZLCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1By
b3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29s
IGltcG9ydGFudCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01NTU3LDYgKzU1OTks
OCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJmbG93OgogICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJmbG93U2hvcnRoYW5kKGltcG9ydGFu
dCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0
dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBj
YXNlIENTU1Byb3BlcnR5Rm9udDogewogICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9r
ZW4gPSBtX3JhbmdlLnBlZWsoKTsKICAgICAgICAgaWYgKHRva2VuLmlkKCkgPj0gQ1NTVmFsdWVD
YXB0aW9uICYmIHRva2VuLmlkKCkgPD0gQ1NTVmFsdWVTdGF0dXNCYXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKaW5kZXggYjdlMTlmYmQ2NC4uMzAz
MzI2ZmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuaApAQCAtMTEyLDYgKzExMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb25zdW1lVHJhbnNm
b3JtT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIGNvbnN1bWVQZXJzcGVjdGl2ZU9y
aWdpbihib29sIGltcG9ydGFudCk7CiAKKyAgICBib29sIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZp
b3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworCiBwcml2YXRlOgogICAgIC8vIElucHV0czoK
ICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIG1fcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggY2Y5N2VhNDZjMS4uMDlhZWY2YmNlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMzAyLDE1ICszMDIsMTUgQEAgc3RhdGljIHZvaWQgaGFuZGxl
V2hlZWxFdmVudFBoYXNlSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJs
ZUFyZWEKICNlbmRpZgogfQogCi1zdGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVh
KFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxF
dmVudCkKK3N0YXRpYyBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFy
ZWEmIHNjcm9sbGFibGVBcmVhLCBkb3VibGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCB1bnNpZ25l
ZCBkZWx0YU1vZGUpCiB7Ci0gICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkg
PSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9k
ZSgpKTsKKyAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3Jh
bnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KGRlbHRhTW9kZSk7CiAgICAgYm9vbCBkaWRIYW5k
bGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6
OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8
PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxS
aWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAg
ICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRp
ZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKGRlbHRhWCA+IDAgPyBT
Y3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRh
KTsKICAgICAKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZl
bnQuZGVsdGFZKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVB
cmVhLnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxV
cCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNv
bHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVu
dCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3Jv
bGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVy
biBkaWRIYW5kbGVXaGVlbEV2ZW50OwogfQpAQCAtMzM3LDE4ICszMzcsMjAgQEAgc3RhdGljIGJv
b2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnRO
b2RlLCBjb25zdCBXaGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGlzPFJlbmRl
ckxpc3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpKQotICAgICAgICByZXR1cm4gZGlkU2Nyb2xs
SW5TY3JvbGxhYmxlQXJlYShkb3duY2FzdDxSZW5kZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9zaW5n
Qm94KSwgd2hlZWxFdmVudCk7CisgICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVB
cmVhKGRvd25jYXN0PFJlbmRlckxpc3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2
ZW50LmRlbHRhWCgpLCB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgp
KTsKIAogICAgIFJlbmRlckJveCogY3VycmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9z
aW5nQm94OworICAgIGJvb2wgaWdub3JlRGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVE
ZWx0YVkgPSBmYWxzZTsKICAgICB3aGlsZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAg
ICBpZiAoUmVuZGVyTGF5ZXIqIGJveExheWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIo
KSkgewogICAgICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5
aW5nUGxhdGZvcm1FdmVudCgpOwogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVk
OwogICAgICAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRv
IGNvcGllZEV2ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdo
dCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50
ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVgg
PyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVu
dChjb3BpZWRFdmVudCk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3Jv
bGxpbmdXYXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdo
ZWVsRXZlbnQpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3Jv
bGxJblNjcm9sbGFibGVBcmVhKCpib3hMYXllciwgaWdub3JlRGVsdGFYID8gMCA6IHdoZWVsRXZl
bnQuZGVsdGFYKCksIGlnbm9yZURlbHRhWSA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVl
bEV2ZW50LmRlbHRhTW9kZSgpKTsKIAogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRs
ZWQpIHsKICAgICAgICAgICAgICAgICBzdG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gt
PmVsZW1lbnQoKTsKQEAgLTM1OSw2ICszNjEsMTcgQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxF
dmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUK
ICAgICAgICAgaWYgKHN0b3BFbGVtZW50LmdldCgpICYmIHN0b3BFbGVtZW50LmdldCgpID09IGN1
cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
CisgICAgICAgIGlmICghaWdub3JlRGVsdGFYICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxl
KCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAg
ICAgICAgICAgIGlnbm9yZURlbHRhWCA9IHRydWU7CisgICAgICAgIGlmICghaWdub3JlRGVsdGFZ
ICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9
IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWSA9IHRy
dWU7CisgICAgICAgIGlmIChpZ25vcmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKSB7CisgICAgICAg
ICAgICAvLyBXZSBjbGFpbSB0aGF0IHRoZSBldmVudCB3YXMgaGFuZGxlZCBzbyB0aGF0IGl0IGlz
IG5vdCBwcm9wYWdhdGVkIHRvIHRoZSBhbmNlc3RvciBmcmFtZXMuCisgICAgICAgICAgICBpZiAo
c3RvcEVsZW1lbnQpCisgICAgICAgICAgICAgICAgc3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9z
aW5nQm94LT5lbGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
CiAgICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250
YWluaW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFjdXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJl
bnRFbmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGY0OGFlNmNjZmMuLmY0ZGUwZjhmMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTQyMiw2ICs0MjIsMjAgQEAgYm9vbCBG
cmFtZVZpZXc6OmRpZEZpcnN0TGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4gbGF5b3V0Q29udGV4
dCgpLmRpZEZpcnN0TGF5b3V0KCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6
Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIGlmIChSZW5kZXJX
aWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAg
cmV0dXJuIGZyYW1lUmVuZGVyZXItPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpOworICAg
IHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwor
fQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvcigpICBjb25zdAoreworICAgIGlmIChSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lUmVuZGVyZXItPnN0
eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmludmFs
aWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMjgyN2YxMjMwYS4uNDY5ZmQxNWU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC03MzksNiArNzM5LDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFi
bGVBcmVhIGludGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2
b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRW
aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCmluZGV4IDBiNDlhZDczZTkuLjg2MDQzMTk2MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKQEAgLTYyMyw2ICs2MjMsOSBAQCB2aXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQ6CiBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFsOiB0cnVl
CiAKK292ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggODU0NGQwYmNhYS4uN2Y2NWRmMWFkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKQEAgLTcxMiw2ICs3MTIsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnNldFNjcm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwogICAgIHNj
cm9sbGluZ05vZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZpc2libGVT
aXplKCkpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFtZXRlcnM7
CisgICAgc2Nyb2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Ny
b2xsYWJsZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNjcm9sbFBh
cmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0
aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3Rp
Y2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0g
c2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFy
YW1ldGVycy5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmlu
ZGV4IDFjY2IzOTU5M2UuLjUxYTAxYTE5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY3LDYg
KzY3LDkgQEAgZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAK
IHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0
byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7
IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9y
aXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNj
cm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0
eU5vbmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggOGFkOTk2MmMwNC4uMmM1YTc5Y2E4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMzYsNiArMTM2LDggQEAgcHJvdGVjdGVkOgog
ICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKCkgY29u
c3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KICAgICB2b2lk
IHNldFRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9hdFNpemUmIHRvdGFs
Q29udGVudHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNTaXplRm9yUnViYmVy
QmFuZCA9IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisgICAgT3ZlcnNjcm9s
bEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOyB9
CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xs
QmVoYXZpb3I7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGlj
aXR5KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xs
RWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZl
cnRpY2FsU2Nyb2xsRWxhc3RpY2l0eTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaAppbmRleCBiOTc1ZmIwNDMwLi4zZWFlYjIwYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFR5cGVzLmgKQEAgLTM5LDYgKzM5LDEyIEBAIGVudW0gY2xhc3MgU2Nyb2xsVHlwZSA6
IHVpbnQ4X3QgewogICAgIFByb2dyYW1tYXRpYwogfTsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xs
QmVoYXZpb3IgOiB1aW50OF90IHsKKyAgICBBdXRvID0gMCwKKyAgICBDb250YWluLAorICAgIE5v
bmUKK307CisKIGVudW0gU2Nyb2xsRGlyZWN0aW9uIDogdWludDhfdCB7CiAgICAgU2Nyb2xsVXAs
CiAgICAgU2Nyb2xsRG93biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CmluZGV4IDg5MmQ4ZGU2ZDMuLmNjYjQyNDAwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaApAQCAtMTIzLDYgKzEyMyw5IEBAIHB1YmxpYzoKICAgICBib29sIGNv
bnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJh
aW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQogICAgIHZvaWQgc2V0Q29uc3RyYWluc1Njcm9s
bGluZ1RvQ29udGVudEVkZ2UoYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSkg
eyBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlID0gY29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2U7IH0KIAorICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6
b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkF1dG87IH0KKyAgICB2aXJ0dWFsIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsg
fQorCiAgICAgdm9pZCBzZXRWZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0
eSBzY3JvbGxFbGFzdGljaXR5KSB7IG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xs
RWxhc3RpY2l0eTsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2Nyb2xsRWxhc3RpY2l0eT4obV92ZXJ0
aWNhbFNjcm9sbEVsYXN0aWNpdHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDZkOWRiNTQ0ZjcuLmQ3NGU4MzhiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQwOCw2ICszNDA4LDE2IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShyZWN0KTsKIH0KIAorT3ZlcnNj
cm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlv
clgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjp2ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCku
b3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9vbCBzY3JvbGxiYXJIaWRkZW5C
eVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIHJldHVybiBzY3JvbGxiYXIgJiYg
c2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKaW5kZXggNmRlMGQwMDcyZS4uZmU2NDExNzIxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ4Myw2ICs0ODMsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNjcm9s
bGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJu
IHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9u
dGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2
aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICBib29s
IGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAxZjQwYzYxMzlk
Li40MGZlZTYwYTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRz
LmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5o
IgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2lu
Y2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJhY2tncm91bmREYXRhLmgiCkBA
IC0zMjYsNiArMzI3LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGly
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJm
bG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0
aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93
WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkg
PT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Ny
b2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2
aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAg
IE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5v
dmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0eSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJpdGVkRmxhZ3Mu
dmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRlZEZsYWdzLnZl
cnRpY2FsQWxpZ24pOyB9CkBAIC04ODYsNiArODkwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9
ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVy
ZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3JvbGxC
ZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJl
aGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2
KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1faW5oZXJpdGVk
RmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQg
c2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy52
ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRW
ZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWduKFZl
cnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxpZ24s
IFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NjMsNiArMTQ2OSw5IEBAIHB1YmxpYzoKICAgICAv
LyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJm
bG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAg
IHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZp
c2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xs
QmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgc3Rh
dGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsgcmV0
dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENsZWFyIGluaXRp
YWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERpc3BsYXlUeXBl
IGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsgfQogICAgIHN0
YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA2ZWY0MGNhZDE3Li4yODg1YWQ5ZTcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02NCw2ICs2NCw4IEBAIFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25h
cFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJl
YShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9s
bEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVy
c2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQog
ICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAs
IG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG1hc2tCb3hJbWFnZShOaW5lUGllY2VJ
bWFnZTo6VHlwZTo6TWFzaykKQEAgLTE0MCw2ICsxNDIsOCBAQCBpbmxpbmUgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVO
b25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAgICAsIHNjcm9s
bFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhh
dmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShv
Lm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29udGVu
dC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50ZXJE
aXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5jb3VudGVyRGly
ZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBAIC0yMzksNiAr
MjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Nyb2xsU25hcFBv
cnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJlYSA9PSBvLnNj
cm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWCA9PSBv
Lm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9PSBv
Lm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50KG8p
CiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVjdGl2ZXMsIG8u
Y291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRUZXh0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaAppbmRleCBmN2Q4MzkyMGQxLi42NDFiNDE5MmIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmgKQEAgLTEyOSw2ICsxMjksOSBAQCBwdWJsaWM6CiAgICAgRGF0YVJlZjxTdHlsZVNj
cm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisgICAgdW5zaWduZWQgb3Zl
cnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVk
IG92ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY29udGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q291bnRlckRpcmVjdGl2ZU1hcD4gY291bnRlckRpcmVjdGl2ZXM7CiAgICAgU3RyaW5nIGFsdFRl
eHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCA5ZDMyZGJhZDcwLi5mY2NlOWJkYzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIyMzUsNiArMjIzNSw5IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxNZWRpYVNlc3Npb25NZXRhZGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBNZWRpYVNlc3Npb25NCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworICAgIGVuY29kZXIuZW5jb2RlRW51bShwYXJhbWV0ZXJz
Lmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShw
YXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKwogICAgIGVuY29kZXIuZW5j
b2RlRW51bShwYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KTsKICAgICBlbmNv
ZGVyLmVuY29kZUVudW0ocGFyYW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpOwogCkBA
IC0yMjUyLDYgKzIyNTUsMTEgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3IKIAogYm9vbCBBcmd1
bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIHBhcmFtcykKIHsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bShwYXJhbXMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwYXJhbXMudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlRW51bShwYXJhbXMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFy
YW1zLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGZiOWQ4ZGI3NTkuLjIwNzNjNjExODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6
ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtl
clR5cGUuaD4KQEAgLTg3OCw2ICs4NzksMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxSZWY8V2ViQ29yZTo6SW1hZ2VEYXRhPj4gewogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvciwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8sCisgICAgV2Vi
Q29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluLAorICAgIFdlYkNvcmU6Ok92ZXJzY3Jv
bGxCZWhhdmlvcjo6Tm9uZQorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgIFdlYkNvcmU6OkNvbG9yU3BhY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbAppbmRleCAzMGE1OWVjMzM3Li43YzlhNmFiM2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEzNTEsNiArMTM1MSwxMyBAQCBTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJF
bmFibGUgU3ludGhldGljIEVkaXRpbmcgQ29tbWFuZHMiCiAgIGNhdGVnb3J5OiBleHBlcmltZW50
YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZp
b3IiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9y
IHByb3RvdHlwZSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDI4ODcxMzdlMGMu
LjNhNWFhM2RlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTIzMCwxMiArMjMwLDMxIEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNo
aWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2Uo
bV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOwogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxDb250YWluZXJMYXllcikKKyAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFy
YW1zKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUpCiAgICAgICAgIHx8
IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxQb3NpdGlvbikKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbE9yaWdpbikpIHsKICAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAq
c2Nyb2xsVmlldyA9IHRoaXMtPnNjcm9sbFZpZXcoKTsKKworICAgICAgICAvLyBGSVhNRShyZGFy
Oi8vcHJvYmxlbS8zNDMxNTk5Nyk6IFVJU2Nyb2xsVmlldyBzaG91bGQgaGF2ZSBzb21lIGtpbmQg
b2Ygc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbC1iZWhhdmlvciB0byBlbmFibGUvZGlzYWJsZToKKyAg
ICAgICAgLy8gLSBub24tbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIHNjcm9s
bCBjaGFpbmluZykuCisgICAgICAgIC8vIC0gbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25z
IChlLmcuIGJvdW5jaW5nKS4KKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICAv
LyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKSkgeworICAgICAgICAvLyAgICAg
c2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JIb3Jpem9udGFsID0gY29udmVydE92ZXJzY3Jv
bGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAg
Ly8gICAgIHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJlaGF2aW9yVmVydGljYWwgPSBjb252ZXJ0T3Zl
cnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKwkvLyB9
CisjZW5kaWYKKyAgICAgICAgLy8gRm9yIG5vdywgd2Ugb25seSBkaXNhYmxlIGJvdW5jaW5nIHdo
ZW4gYm90aCBvdmVyZmxvdy14IGFuZCBvdmVyZmxvdy15IGFyZSBub25lLgorICAgICAgICAvLyBV
SVNjcm9sbFZpZXc6OmFsd2F5c0JvdW5jZSogZnVuY3Rpb25zIGNhbm5vdCBoZWxwIGhlcmUuCisg
ICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMpKSB7CisgICAgICAgICAg
ICBzY3JvbGxWaWV3LmJvdW5jZXMgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBPdmVyc2Nyb2xsQmVo
YXZpb3I6Ok5vbmUKKyAgICAgICAgICAgICYmIHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBPdmVyc2Nyb2xs
QmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgID8gTk8gOiBZRVM7CisgICAgICAgIH0KKwogICAg
ICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkgewogICAgICAgICAgICAg
aWYgKCFtX3Njcm9sbFZpZXdEZWxlZ2F0ZSkKICAgICAgICAgICAgICAgICBtX3Njcm9sbFZpZXdE
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgYWxs
b2NdIGluaXRXaXRoU2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZTp0aGlzXSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCAxNTY0NDFlNzI4Li5mNmExZWFkZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKQEAgLTE5MCw2ICsxOTAsNyBAQAogI2RlZmluZSBXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERp
cmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQiCisjZGVm
aW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAjZGVm
aW5lIFdlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggYjJhYTE5ZDdmMS4uZWI2NzIwNTIy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tCkBAIC02NjcsNiArNjY3LDcgQEAgcHVibGljOgogICAgICAgICBAWUVTLCBXZWJLaXRW
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCiAKKyAgICAgICAg
QE5PLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgQFlFUywgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIEBOTywgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxl
VVJMc1F1aXJrS2V5LApAQCAtMzE5MCw2ICszMTkxLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xh
c3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5
OldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChC
T09MKW92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xW
YWx1ZUZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07
Cit9CisKKy0gKHZvaWQpc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDooQk9PTClmbGFnCit7
CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpQ1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktp
dENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDhjODY2ZWI4YTguLmZkMjgxMjhhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjUzLDYg
KzY1Myw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdl
ZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtIChCT09MKXdlYlNRTEVuYWJsZWQ7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZDsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBh
ZDliZmRkNTMyLi43MjA3MWJhZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0zMDA5LDYgKzMwMDksNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZS
ZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2Vz
IHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJl
ZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNl
dENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Nt
b290aFNjcm9sbGluZ0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRNZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChbcHJlZmVyZW5jZXMgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4
IDBjN2U5MmJjMTEuLjQzZjNjMmUwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAt
MjIxLDYgKzIyMSw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNiA6IElXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU1CiAgICAgSFJFU1VMVCBzZXRJbnNwZWN0b3JBZGRpdGlvbnNFbmFi
bGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIHZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldFZpc3VhbFZpZXdwb3J0
QVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNV
TFQgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAg
ICAgSFJFU1VMVCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtvdXQsIHJldHZhbF0g
Qk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAppbmRleCA4MDQ1MzFhNDZiLi5hMjkwYzQ0YjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTk3LDYg
KzE5Nyw4IEBACiAKICNkZWZpbmUgV2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0Vu
YWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5h
YmxlZCIKIAorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5j
ZUtleSAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKKwogI2RlZmluZSBXZWJLaXRV
c2VyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFVzZXJUaW1pbmdFbmFibGVkIgog
CiAjZGVmaW5lIFdlYktpdFJlc291cmNlVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktp
dFJlc291cmNlVGltaW5nRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZl
cmVuY2VzLmNwcAppbmRleCBhNjcxYjA5ZmVlLi5kYmFmOGY0N2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zNDAsNiArMzQwLDggQEAgdm9pZCBX
ZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rp
b25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFBy
ZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVm
ZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGRlZmF1bHRzLCBDRlNUUihXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKQEAgLTIyNjgsNiArMjI3MCwyMCBAQCBIUkVTVUxUIFdlYlBy
ZWZlcmVuY2VzOjpzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCBlbmFibGVkKQogICAg
IHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCit7CisgICAgaWYgKCFlbmFibGVkKQor
ICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5
KFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAgICByZXR1
cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKFdlYktpdE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4g
U19PSzsKK30KKwogSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U2Nyb2xsaW5nQVBJ
RW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQogewogICAgIGlmICghZW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IGY3ZmU3Njg0MmIuLjA3Mzkz
Y2Y4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjY1
LDYgKzI2NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKF9PdXRfIEJPT0wq
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkKEJPT0wpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChCT09M
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoX091dF8gQk9PTCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBm
ZTdjYjZhMWQwLi5kYzdjNzkwOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApA
QCAtNTMzNCw2ICs1MzM0LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXND
aGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhy
OwogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCghIWVuYWJsZWQpOwog
CisgICAgaHIgPSBwcmVmc1ByaXZhdGUtPm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoJmVuYWJs
ZWQpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGlu
Z3Muc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBw
cmVmc1ByaXZhdGUtPkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoJmVuYWJsZWQpOwogICAg
IGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5jcHAKaW5kZXggZTdjNTgzNjc4Mi4uZWIzNDcyOTEzMyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtMTM2LDYgKzEzNiw4IEBAIFRlc3RPcHRpb25zOjpUZXN0
T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYg
YWJzb2x1CiAgICAgICAgICAgICBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyA9IHZhbHVl
OwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFibGVkIikK
ICAgICAgICAgICAgIGVuYWJsZVdlYkdQVSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2
YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOm92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yID0g
cGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5
ID09ICJpbnRlcm5hbDpDU1NMb2dpY2FsRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDU1NM
b2dpY2FsID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxz
ZSBpZiAoa2V5ID09ICJpbnRlcm5hbDpMaW5lSGVpZ2h0VW5pdHNFbmFibGVkIikKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IGM1YzhjODU5OTIuLjJjYTYxOTk0MGQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNDcsNiArNDcsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlv
bnMgewogICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5h
YmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllcyB7IHRydWUgfTsKICAgICBib29sIGVu
YWJsZVdlYkdQVSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3Ig
eyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlQ1NTTG9naWNhbCB7IGZhbHNlIH07CiAgICAgYm9v
bCBlbmFibGVMaW5lSGVpZ2h0VW5pdHMgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRDbGlja0F0dHJp
YnV0aW9uRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KaW5kZXggOTc4OTVlNDA0MC4uZTcxOGFmODZmYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAzMyw2ICsxMDMzLDcgQEAgc3Rh
dGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9u
cyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZUNvbG9yRmlsdGVyOwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRv
d0JvdW5kYXJpZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dC
b3VuZGFyaWVzOwogICAgIHByZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBvcHRpb25zLmVuYWJs
ZVdlYkdQVTsKKyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiAgICAgcHJlZmVyZW5jZXMuQ1NTTG9naWNh
bEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJlZmVyZW5jZXMubGlu
ZUhlaWdodFVuaXRzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlTGluZUhlaWdodFVuaXRzOwogICAg
IHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tB
dHRyaWJ1dGlvbkVuYWJsZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399352</attachid>
            <date>2020-05-14 04:57:11 -0700</date>
            <delta_ts>2020-05-14 06:47:11 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>overscroll-behavior-003-200514.diff</filename>
            <type>text/plain</type>
            <size>46352</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggODE4NzMwYjBiMC4uODFmMmU3YzQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTMwMzYsNiArMzAzNiwx
MiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJv
cGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZh
bHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUo
c3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVo
YXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6
CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVo
YXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHls
ZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGlu
Z1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhl
bFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpj
b21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaAppbmRleCAxY2QxMDg0MmU5Li5lMWI5ZWE5MzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTM5LDYgKzM5
LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
Q29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAi
U2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5
cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKQEAgLTIyMDUsNiArMjIwNiw0MiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBj
b25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlv
ciBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CisgICAgc3dpdGNoIChlKSB7Cisg
ICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW46CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Ny
b2xsQmVoYXZpb3I6Ok5vbmU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9u
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG86Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
T3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwor
CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ29udGFp
bjoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKKyAgICBjYXNl
IENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsK
KyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlv
cjo6QXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOwor
fQorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQnJlYWtCZXR3ZWVuIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDU3NmVmY2M2NjMuLjY1OWViNTAy
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzI4OCw2ICszMjg4
LDQ2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3Nz
LW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAgICAg
fSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29kZWdl
bi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAg
ICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAgICAg
ICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
aW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRp
b24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292
ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAg
ICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAg
ICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4g
ZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24i
OiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJz
Y3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAg
ICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAg
ICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAg
ICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBk
ZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6
IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNj
cm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAg
ICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVn
ZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA2ZjY3YmNjOWQyLi5hMTJiNjA1OGNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM3OCw2ICsxMzc4
LDkgQEAgcGluY2gtem9vbQogLy8gYXV0bwogc21vb3RoCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZp
b3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJz
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBhMDJhODE5MGI4Li4x
MThhZWExMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjU1
LDYgKzI1NSw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5k
VmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyZmxvd1Nob3J0aGFu
ZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICBy
ZXR1cm4gZ2V0MlZhbHVlcyhvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoKSk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBhZGRpbmdT
aG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCbG9jazoKQEAgLTExNzcs
NiArMTE3OSwxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAogICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAgICBzaG9y
dGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgor
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAg
ICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0Ogog
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCA1YTdkODA0ZGFkLi5k
N2NjYzFjMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29u
dGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICNlbmRp
ZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVm
ZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CiAgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9j
dW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CisgICAg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBkb2N1bWVudC5w
YWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSA6IGZhbHNlOwog
fQogCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuZGVmZXJy
ZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCiAgICAgICAg
ICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JFbmFibGVkCiAg
ICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIu
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFu
Y2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDc3M2I4NTQyMzAuLjBlMzA1MmM3M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02Niw2
ICs2Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07
CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAg
ICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgog
ICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDksNyAr
MTEwLDggQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAgICAgICAgICAgICYga2V5
LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYK
ICAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgIDw8IDEyCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAmIGtl
eS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMworICAgICAg
ICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg
MTQ7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChiaXRz
KTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDE3NTZmOTJmYmEuLjQyYmM4ODBm
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBh
dGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRo
cy5jcHAKQEAgLTgzNSw2ICs4MzUsOCBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3
b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJmbG93V3JhcDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dYOgogICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBvaW50ZXJFdmVudHM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvc2l0
aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IGY1ZDIxNjljNjYuLjJhYWVmMmQz
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCkBAIC0yMzYxLDYgKzIzNjEsMTQgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY29uc3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmcKICAgICBy
ZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKIH0KIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sK
KyAgICBhdXRvIHZhbHVlSUQgPSByYW5nZS5wZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAh
PSBDU1NWYWx1ZUF1dG8gJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBD
U1NWYWx1ZUNvbnRhaW4pCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25z
dW1lSWRlbnQocmFuZ2UpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9y
ZGVyUmFkaXVzQ29ybmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2Rl
IGNzc1BhcnNlck1vZGUpCiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRW
YWx1ZTEgPSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1
ZVJhbmdlTm9uTmVnYXRpdmUpOwpAQCAtMzk0OCw2ICszOTU2LDExIEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgQ1NTCiAgICAgICAgIGlmICghbV9jb250ZXh0LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9s
bEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZp
b3JYOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBp
ZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1f
cmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICByZXR1cm4gY29uc3Vt
ZUNsaXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUb3Vj
aEFjdGlvbjoKQEAgLTU1MzcsNiArNTU1MCwzNSBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpj
b25zdW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVl
OwogfQogCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9y
U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9w
ZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7CisgICAg
aWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29uc3VtZU92
ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhhdmlvclgp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9s
bEJlaGF2aW9yWTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgaWYgKG1f
cmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJzY3JvbGxC
ZWhhdmlvclg7CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBjb25z
dW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNvbnN1bWVX
aGl0ZXNwYWNlKCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xs
QmVoYXZpb3JYLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xs
QmVoYXZpb3JZLCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1By
b3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29s
IGltcG9ydGFudCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01NTU3LDYgKzU1OTks
OCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJmbG93OgogICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJmbG93U2hvcnRoYW5kKGltcG9ydGFu
dCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0
dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBj
YXNlIENTU1Byb3BlcnR5Rm9udDogewogICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9r
ZW4gPSBtX3JhbmdlLnBlZWsoKTsKICAgICAgICAgaWYgKHRva2VuLmlkKCkgPj0gQ1NTVmFsdWVD
YXB0aW9uICYmIHRva2VuLmlkKCkgPD0gQ1NTVmFsdWVTdGF0dXNCYXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKaW5kZXggYjdlMTlmYmQ2NC4uMzAz
MzI2ZmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuaApAQCAtMTEyLDYgKzExMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb25zdW1lVHJhbnNm
b3JtT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIGNvbnN1bWVQZXJzcGVjdGl2ZU9y
aWdpbihib29sIGltcG9ydGFudCk7CiAKKyAgICBib29sIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZp
b3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworCiBwcml2YXRlOgogICAgIC8vIElucHV0czoK
ICAgICBDU1NQYXJzZXJUb2tlblJhbmdlIG1fcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggY2Y5N2VhNDZjMS4uMDlhZWY2YmNlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMzAyLDE1ICszMDIsMTUgQEAgc3RhdGljIHZvaWQgaGFuZGxl
V2hlZWxFdmVudFBoYXNlSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJs
ZUFyZWEKICNlbmRpZgogfQogCi1zdGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVh
KFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxF
dmVudCkKK3N0YXRpYyBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFy
ZWEmIHNjcm9sbGFibGVBcmVhLCBkb3VibGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCB1bnNpZ25l
ZCBkZWx0YU1vZGUpCiB7Ci0gICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkg
PSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9k
ZSgpKTsKKyAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3Jh
bnVsYXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KGRlbHRhTW9kZSk7CiAgICAgYm9vbCBkaWRIYW5k
bGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6
OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8
PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgPyBTY3JvbGxS
aWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAg
ICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkpCisgICAgICAgIGRp
ZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKGRlbHRhWCA+IDAgPyBT
Y3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRh
KTsKICAgICAKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZl
bnQuZGVsdGFZKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVB
cmVhLnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/IFNjcm9sbERvd24gOiBTY3JvbGxV
cCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNv
bHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVu
dCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9sbERvd24gOiBTY3Jv
bGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAogICAgIHJldHVy
biBkaWRIYW5kbGVXaGVlbEV2ZW50OwogfQpAQCAtMzM3LDE4ICszMzcsMjAgQEAgc3RhdGljIGJv
b2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnRO
b2RlLCBjb25zdCBXaGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGlzPFJlbmRl
ckxpc3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpKQotICAgICAgICByZXR1cm4gZGlkU2Nyb2xs
SW5TY3JvbGxhYmxlQXJlYShkb3duY2FzdDxSZW5kZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9zaW5n
Qm94KSwgd2hlZWxFdmVudCk7CisgICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVB
cmVhKGRvd25jYXN0PFJlbmRlckxpc3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2
ZW50LmRlbHRhWCgpLCB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVlbEV2ZW50LmRlbHRhTW9kZSgp
KTsKIAogICAgIFJlbmRlckJveCogY3VycmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9z
aW5nQm94OworICAgIGJvb2wgaWdub3JlRGVsdGFYID0gZmFsc2U7CisgICAgYm9vbCBpZ25vcmVE
ZWx0YVkgPSBmYWxzZTsKICAgICB3aGlsZSAoY3VycmVudEVuY2xvc2luZ0JveCkgewogICAgICAg
ICBpZiAoUmVuZGVyTGF5ZXIqIGJveExheWVyID0gY3VycmVudEVuY2xvc2luZ0JveC0+bGF5ZXIo
KSkgewogICAgICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5
aW5nUGxhdGZvcm1FdmVudCgpOwogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVk
OwogICAgICAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRv
IGNvcGllZEV2ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdo
dCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50
ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShpZ25vcmVEZWx0YVgg
PyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGlnbm9yZURlbHRhWSA/IDAgOiBm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBib3hMYXllci0+aGFuZGxlV2hlZWxFdmVu
dChjb3BpZWRFdmVudCk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzY3Jv
bGxpbmdXYXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdo
ZWVsRXZlbnQpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3Jv
bGxJblNjcm9sbGFibGVBcmVhKCpib3hMYXllciwgaWdub3JlRGVsdGFYID8gMCA6IHdoZWVsRXZl
bnQuZGVsdGFYKCksIGlnbm9yZURlbHRhWSA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWSgpLCB3aGVl
bEV2ZW50LmRlbHRhTW9kZSgpKTsKIAogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRs
ZWQpIHsKICAgICAgICAgICAgICAgICBzdG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gt
PmVsZW1lbnQoKTsKQEAgLTM1OSw2ICszNjEsMTcgQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxF
dmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUK
ICAgICAgICAgaWYgKHN0b3BFbGVtZW50LmdldCgpICYmIHN0b3BFbGVtZW50LmdldCgpID09IGN1
cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
CisgICAgICAgIGlmICghaWdub3JlRGVsdGFYICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxl
KCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAg
ICAgICAgICAgIGlnbm9yZURlbHRhWCA9IHRydWU7CisgICAgICAgIGlmICghaWdub3JlRGVsdGFZ
ICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9
IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWSA9IHRy
dWU7CisgICAgICAgIGlmIChpZ25vcmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKSB7CisgICAgICAg
ICAgICAvLyBXZSBjbGFpbSB0aGF0IHRoZSBldmVudCB3YXMgaGFuZGxlZCBzbyB0aGF0IGl0IGlz
IG5vdCBwcm9wYWdhdGVkIHRvIHRoZSBhbmNlc3RvciBmcmFtZXMuCisgICAgICAgICAgICBpZiAo
c3RvcEVsZW1lbnQpCisgICAgICAgICAgICAgICAgc3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9z
aW5nQm94LT5lbGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
CiAgICAgICAgIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250
YWluaW5nQmxvY2soKTsKICAgICAgICAgaWYgKCFjdXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJl
bnRFbmNsb3NpbmdCb3gtPmlzUmVuZGVyVmlldygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGY0OGFlNmNjZmMuLmY0ZGUwZjhmMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTQyMiw2ICs0MjIsMjAgQEAgYm9vbCBG
cmFtZVZpZXc6OmRpZEZpcnN0TGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4gbGF5b3V0Q29udGV4
dCgpLmRpZEZpcnN0TGF5b3V0KCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6
Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIGlmIChSZW5kZXJX
aWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAg
cmV0dXJuIGZyYW1lUmVuZGVyZXItPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpOworICAg
IHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwor
fQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvcigpICBjb25zdAoreworICAgIGlmIChSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lUmVuZGVyZXItPnN0
eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmludmFs
aWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMjgyN2YxMjMwYS4uNDY5ZmQxNWU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC03MzksNiArNzM5LDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFi
bGVBcmVhIGludGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2
b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRW
aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCmluZGV4IDBiNDlhZDczZTkuLjg2MDQzMTk2MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKQEAgLTYyMyw2ICs2MjMsOSBAQCB2aXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQ6CiBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFsOiB0cnVl
CiAKK292ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggODU0NGQwYmNhYS4uN2Y2NWRmMWFkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKQEAgLTcxMiw2ICs3MTIsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnNldFNjcm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwogICAgIHNj
cm9sbGluZ05vZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZpc2libGVT
aXplKCkpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFtZXRlcnM7
CisgICAgc2Nyb2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Ny
b2xsYWJsZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNjcm9sbFBh
cmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0
aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3Rp
Y2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0g
c2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFy
YW1ldGVycy5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxi
YXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmlu
ZGV4IDFjY2IzOTU5M2UuLjUxYTAxYTE5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY3LDYg
KzY3LDkgQEAgZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAK
IHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0
byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7
IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9y
aXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNj
cm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0
eU5vbmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDYyZjZmZjQ1NDEuLjEyMWRm
OTM5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEyOSw2ICsxMjksMTYgQEAgYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9kZSgpIGNvbnN0CiAgICAg
cmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0gc2Nyb2xsaW5nTm9kZUlE
KCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7Cit9CisK
K092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6dmVydGljYWxP
dmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVh
UGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKK30KKwogYm9vbCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CiAgICAgaWYgKCFjYW5IYXZlU2Nyb2xsYmFy
cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggOGFkOTk2MmMwNC4uZjNhZTA2N2EyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xMzYsNiArMTM2LDggQEAgcHJvdGVjdGVkOgogICAgIGNv
bnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKCkgY29uc3QgeyBy
ZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KICAgICB2b2lkIHNldFRv
dGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9hdFNpemUmIHRvdGFsQ29udGVu
dHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCA9
IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisgICAgT3ZlcnNjcm9sbEJlaGF2
aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdDsKKyAgICBPdmVyc2Nyb2xs
QmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdDsKICAgICBTY3JvbGxF
bGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk7IH0KICAg
ICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eTsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAppbmRleCBiOTc1ZmIwNDMwLi4z
ZWFlYjIwYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTM5LDYg
KzM5LDEyIEBAIGVudW0gY2xhc3MgU2Nyb2xsVHlwZSA6IHVpbnQ4X3QgewogICAgIFByb2dyYW1t
YXRpYwogfTsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90IHsKKyAg
ICBBdXRvID0gMCwKKyAgICBDb250YWluLAorICAgIE5vbmUKK307CisKIGVudW0gU2Nyb2xsRGly
ZWN0aW9uIDogdWludDhfdCB7CiAgICAgU2Nyb2xsVXAsCiAgICAgU2Nyb2xsRG93biwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDg5MmQ4ZGU2ZDMuLmNjYjQy
NDAwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTIz
LDYgKzEyMyw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRl
bnRFZGdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRn
ZTsgfQogICAgIHZvaWQgc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoYm9vbCBj
b25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSkgeyBtX2NvbnN0cmFpbnNTY3JvbGxpbmdU
b0NvbnRlbnRFZGdlID0gY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KIAorICAg
IHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSBjb25zdCB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICB2aXJ0dWFs
IE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IHsg
cmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgdm9pZCBzZXRWZXJ0aWNh
bFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eSBzY3JvbGxFbGFzdGljaXR5KSB7IG1f
dmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNjcm9s
bEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U2Nyb2xsRWxhc3RpY2l0eT4obV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDZkOWRiNTQ0
ZjcuLmQ3NGU4MzhiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cApAQCAtMzQwOCw2ICszNDA4LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3Jv
bGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVw
YWludFJlY3RhbmdsZShyZWN0KTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVy
Ojpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVu
ZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJl
aGF2aW9yIFJlbmRlckxheWVyOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAor
eworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOwor
fQorCiBzdGF0aWMgYm9vbCBzY3JvbGxiYXJIaWRkZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xs
YmFyKQogewogICAgIHJldHVybiBzY3JvbGxiYXIgJiYgc2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5
bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNmRlMGQwMDcy
ZS4uZmU2NDExNzIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAg
LTQ4Myw2ICs0ODMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNW
ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0K
IAorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
Y29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICBib29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRk
ZW5CeVN0eWxlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRl
bkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAppbmRleCAxZjQwYzYxMzlkLi40MGZlZTYwYTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNDYsNiArNDYsNyBA
QAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJl
Y3QuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNp
bmNsdWRlICJTdHlsZUJhY2tncm91bmREYXRhLmgiCkBAIC0zMjYsNiArMzI3LDkgQEAgcHVibGlj
OgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0K
ICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAg
ICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0g
T3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0K
KworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVy
c2Nyb2xsQmVoYXZpb3JZKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJl
aGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQog
ICAgIAogICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFZpc2liaWxpdHk+KG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0
aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0
aWNhbEFsaWduPihtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04ODYs
NiArODkwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikg
eyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
dik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVk
RmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBz
ZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xs
QmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxC
ZWhhdmlvclksIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2li
aWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNh
bEFsaWduIHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0
aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNF
VF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAg
LTE0NjMsNiArMTQ2OSw5IEBAIHB1YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxs
IHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7
IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFs
T3ZlcmZsb3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3Zl
cnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBp
bml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6
QXV0bzsgfQorCiAgICAgc3RhdGljIENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFy
OjpOb25lOyB9CiAgICAgc3RhdGljIERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1
cm4gRGlzcGxheVR5cGU6OklubGluZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlh
bFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNw
cAppbmRleCA2ZWY0MGNhZDE3Li4yODg1YWQ5ZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3Bw
CkBAIC02NCw2ICs2NCw4IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEoKQogICAgICwgc2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9y
dDo6Y3JlYXRlKCkpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpj
cmVhdGUoKSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAg
ICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6
OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJT
dHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFz
aykKICAgICAsIG1hc2tCb3hJbWFnZShOaW5lUGllY2VJbWFnZTo6VHlwZTo6TWFzaykKQEAgLTE0
MCw2ICsxNDIsOCBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBv
cnQoby5zY3JvbGxTbmFwUG9ydCkKICAgICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFy
ZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZp
b3JYKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAg
ICAgLCBjb250ZW50KG8uY29udGVudCA/IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAg
ICAgLCBjb3VudGVyRGlyZWN0aXZlcyhvLmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxD
b3VudGVyRGlyZWN0aXZlTWFwPigqby5jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAg
ICwgYWx0VGV4dChvLmFsdFRleHQpCkBAIC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEmIG8pIGMKICAgICAgICAgJiYgc2Nyb2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAog
ICAgICAgICAmJiBzY3JvbGxTbmFwQXJlYSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAg
ICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAg
ICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAg
ICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5n
VG9FcXVhbERhdGEoY291bnRlckRpcmVjdGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAg
ICAgICYmIGFsdFRleHQgPT0gby5hbHRUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCBmN2Q4
MzkyMGQxLi42NDFiNDE5MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEyOSw2ICsxMjks
OSBAQCBwdWJsaWM6CiAgICAgRGF0YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFw
QXJlYTsKICNlbmRpZgogCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8v
IE92ZXJzY3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAy
OyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0
YT4gY29udGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291
bnRlckRpcmVjdGl2ZXM7CiAgICAgU3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA5ZDMyZGJhZDcwLi5mY2NlOWJk
YzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKQEAgLTIyMzUsNiArMjIzNSw5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYVNlc3Npb25N
ZXRhZGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNZWRpYVNlc3Npb25NCiAKIHZvaWQg
QXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewor
ICAgIGVuY29kZXIuZW5jb2RlRW51bShwYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVo
YXZpb3IpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShwYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yKTsKKwogICAgIGVuY29kZXIuZW5jb2RlRW51bShwYXJhbWV0ZXJzLmhvcml6
b250YWxTY3JvbGxFbGFzdGljaXR5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0ocGFyYW1ldGVy
cy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpOwogCkBAIC0yMjUyLDYgKzIyNTUsMTEgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBTY3IKIAogYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMmIHBhcmFtcykKIHsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwYXJhbXMuaG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlRW51bShwYXJhbXMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3Ip
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShw
YXJhbXMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1zLnZlcnRpY2FsU2Nyb2xsRWxhc3Rp
Y2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmlu
ZGV4IGZiOWQ4ZGI3NTkuLjM3Y2JhMWYwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2Rl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KQEAgLTg3
OCw2ICs4NzksMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWY8V2ViQ29y
ZTo6SW1hZ2VEYXRhPj4gewogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvciwKKyAgICBX
ZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8sCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9s
bEJlaGF2aW9yOjpDb250YWluLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZQorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNv
bG9yU3BhY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgIFdlYkNvcmU6
OkNvbG9yU3BhY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRl
eCAzMGE1OWVjMzM3Li43YzlhNmFiM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKQEAgLTEzNTEsNiArMTM1MSwxMyBAQCBTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZHNFbmFibGVkOgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU3ludGhldGlj
IEVkaXRpbmcgQ29tbWFuZHMiCiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAorT3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IiCisgIGh1bWFuUmVh
ZGFibGVEZXNjcmlwdGlvbjogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIHByb3RvdHlwZSIKKyAg
Y2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgog
ICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDI4ODcxMzdlMGMuLjE1ODc2ZjZiOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MubW0KQEAgLTIzMCwxMiArMjMwLDMxIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNj
cm9sCiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2UobV91cGRhdGluZ0Zyb21T
dGF0ZU5vZGUsIHRydWUpOwogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXll
cikKKyAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKQogICAgICAgICB8
fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFj
aGFibGVDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxQb3NpdGlvbikK
ICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbE9yaWdpbikpIHsKICAgICAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IHRo
aXMtPnNjcm9sbFZpZXcoKTsKKworICAgICAgICAvLyBGSVhNRShyZGFyOi8vcHJvYmxlbS8zNDMx
NTk5Nyk6IFVJU2Nyb2xsVmlldyBzaG91bGQgaGF2ZSBzb21lIGtpbmQgb2Ygc3VwcG9ydCBmb3Ig
b3ZlcnNjcm9sbC1iZWhhdmlvciB0byBlbmFibGUvZGlzYWJsZToKKyAgICAgICAgLy8gLSBub24t
bG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIHNjcm9sbCBjaGFpbmluZykuCisg
ICAgICAgIC8vIC0gbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIGJvdW5jaW5n
KS4KKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICAvLyBpZiAoc2Nyb2xsaW5n
U3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OlNjcm9sbGFibGVBcmVhUGFyYW1zKSkgeworICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVy
c2Nyb2xsQmVoYXZpb3JIb3Jpem9udGFsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21X
ZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMo
KS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZp
ZXcub3ZlcnNjcm9sbEJlaGF2aW9yVmVydGljYWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9y
RnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgLy8gfQorI2VuZGlm
CisgICAgICAgIC8vIEZvciBub3csIHdlIG9ubHkgZGlzYWJsZSBib3VuY2luZyB3aGVuIGJvdGgg
b3ZlcmZsb3cteCBhbmQgb3ZlcmZsb3cteSBhcmUgbm9uZS4KKyAgICAgICAgLy8gVUlTY3JvbGxW
aWV3OjphbHdheXNCb3VuY2UqIGZ1bmN0aW9ucyBjYW5ub3QgaGVscCBoZXJlLgorICAgICAgICBp
ZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKSkgeworICAgICAgICAgICAgc2Nyb2xs
Vmlldy5ib3VuY2VzID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVy
cygpLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpO
b25lCisgICAgICAgICAgICAmJiBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzKCkudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0gT3ZlcnNjcm9sbEJlaGF2aW9y
OjpOb25lCisgICAgICAgICAgICA/IE5PIDogWUVTOworICAgICAgICB9CisKICAgICAgICAgaWYg
KHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpIHsKICAgICAgICAgICAgIGlmICghbV9z
Y3JvbGxWaWV3RGVsZWdhdGUpCiAgICAgICAgICAgICAgICAgbV9zY3JvbGxWaWV3RGVsZWdhdGUg
PSBhZG9wdE5TKFtbV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIGFsbG9jXSBpbml0
V2l0aFNjcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGU6dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
aW5kZXggMTU2NDQxZTcyOC4uZjZhMWVhZGVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0x
OTAsNiArMTkwLDcgQEAKICNkZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlV
cGxvYWRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgorI2RlZmluZSBXZWJL
aXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIK
ICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogI2RlZmluZSBXZWJL
aXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5N
ZWRpYUNvbnRyb2xzRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGIyYWExOWQ3ZjEuLmViNjcyMDUyMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtNjY3LDYgKzY2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgQFlFUywgV2ViS2l0VmlzdWFsVmll
d3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICNlbmRpZgogCisgICAgICAgIEBOTywgV2Vi
S2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMs
IFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAg
ICBATk8sIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
LAogICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWly
a0tleSwKQEAgLTMxOTAsNiArMzE5MSwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVh
dG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRW
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JL
ZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCist
ICh2b2lkKXNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtz
ZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKUNTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA4
Yzg2NmViOGE4Li5mZDI4MTI4YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTY1Myw2ICs2NTMsNyBA
QCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5h
bE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogLSAoQk9PTCl3ZWJTUUxFbmFibGVkOwogCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQ5YmZkZDUz
Mi4uNzIwNzFiYWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtMzAwOSw2ICszMDA5LDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hp
bGVMb2FkaW5nUXVpcmsoKQogCiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkKFtwcmVmZXJlbmNlcyB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5n
cy5zZXRTeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkKFtwcmVmZXJlbmNlcyBzeW50aGV0
aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZChbcHJlZmVyZW5jZXMgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2Vz
IENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3Jv
bGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCAwYzdlOTJi
YzExLi40M2YzYzJlMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRl
cmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKQEAgLTIyMSw2ICsy
MjEsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTYgOiBJV2ViUHJlZmVyZW5j
ZXNQcml2YXRlNQogICAgIEhSRVNVTFQgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChbaW5d
IEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW291
dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJs
ZWQoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgb3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNV
TFQgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKaW5kZXggODA0NTMxYTQ2Yi4uYTI5MGM0NGI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE5Nyw2ICsxOTcsOCBA
QAogCiAjZGVmaW5lIFdlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQiCiAK
KyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCisKICNkZWZpbmUgV2ViS2l0VXNlclRpbWlu
Z0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKIAogI2RlZmlu
ZSBXZWJLaXRSZXNvdXJjZVRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNvdXJj
ZVRpbWluZ0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAKaW5kZXggYTY3MWIwOWZlZS4uZGJhZjhmNDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzQwLDYgKzM0MCw4IEBAIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRk
VmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZl
cmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUo
ZGVmYXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNl
S2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1
bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtl
eSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0
cywgQ0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJv
b2xlYW5GYWxzZSk7CkBAIC0yMjY4LDYgKzIyNzAsMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNl
czo6c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4g
U19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRP
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7
Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9
CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQo
X091dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBmN2ZlNzY4NDJiLi4wNzM5M2NmODAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2NSw2ICsyNjUs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldElu
c3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVu
YWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9P
dXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggZmU3Y2I2YTFk
MC4uZGM3Yzc5MDk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUzMzQs
NiArNTMzNCwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJ
V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBz
ZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhy
ID0gcHJlZnNQcml2YXRlLT5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsKKyAg
ICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2
YXRlLT5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJ
TEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
Y3BwCmluZGV4IGU3YzU4MzY3ODIuLmViMzQ3MjkxMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5jcHAKQEAgLTEzNiw2ICsxMzYsOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMo
Y29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQog
ICAgICAgICAgICAgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgPSB2YWx1ZTsKICAgICAg
ICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxlZCIpCiAgICAgICAg
ICAgICBlbmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwor
ICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpvdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciA9IHBhcnNlQm9v
bGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50
ZXJuYWw6Q1NTTG9naWNhbEVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNhbCA9
IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtl
eSA9PSAiaW50ZXJuYWw6TGluZUhlaWdodFVuaXRzRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAppbmRleCBjNWM4Yzg1OTkyLi4yY2E2MTk5NDBkIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAg
ICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNlbGVj
dGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVXZWJH
UFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFsc2Ug
fTsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxl
TGluZUhlaWdodFVuaXRzIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVu
YWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCmluZGV4IDk3ODk1ZTQwNDAuLmU3MThhZjg2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMzMsNiArMTAzMyw3IEBAIHN0YXRpYyB2b2lk
IHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlv
bnMpCiAgICAgcHJlZmVyZW5jZXMuY29sb3JGaWx0ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVD
b2xvckZpbHRlcjsKICAgICBwcmVmZXJlbmNlcy5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFy
aWVzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmll
czsKICAgICBwcmVmZXJlbmNlcy53ZWJHUFVFbmFibGVkID0gb3B0aW9ucy5lbmFibGVXZWJHUFU7
CisgICAgcHJlZmVyZW5jZXMub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5h
YmxlT3ZlcnNjcm9sbEJlaGF2aW9yOwogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVk
ID0gb3B0aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmxpbmVIZWlnaHRV
bml0c0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUxpbmVIZWlnaHRVbml0czsKICAgICBwcmVmZXJl
bmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRp
b25FbmFibGVkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399355</attachid>
            <date>2020-05-14 06:47:11 -0700</date>
            <delta_ts>2020-07-10 10:23:43 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>overscroll-behavior-004-200514.diff</filename>
            <type>text/plain</type>
            <size>50733</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2Fs
bC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAppbmRleCBlNGQyYWI0ZjU1Li5lNmI4NDhh
ZjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNh
c2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CkBAIC0xOTMsNiArMTkzLDgg
QEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJmbG93LXdyYXAgCiBQQVNTIG92ZXJmbG93
LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJzY3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mg
b3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRkaW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFk
ZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1ib3R0b20gCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9s
bC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhl
cml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggNTAzNDBmMDE2MC4uNDM3ZDE4NzU0NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xs
LWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJ
TCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggaGFzIGluaXRpYWwgdmFsdWUgYXV0byBh
c3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBw
b3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1i
ZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0
eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVo
YXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggaGFzIGluaXRpYWwgdmFs
dWUgYXV0byAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXMgbm90IGlu
aGVyaXQgCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBoYXMgaW5pdGlhbCB2
YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgZG9lcyBub3Qg
aW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVy
c2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKaW5kZXggZTQ5ZmE0OWJjNC4uYjlkZTY4
MThiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNj
cm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBF
IGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+
CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxs
LXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9w
LWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAppbmRleCA2YzFjNDZhYWI5Li5hMDE1NGUzY2MwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50
eHQKQEAgLTE5Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxpbmUtd2lkdGgKIFBBU1Mgb3ZlcmZsb3ct
d3JhcCAKIFBBU1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3ZlcmZsb3cteSAKK1BBU1Mgb3ZlcnNjcm9s
bC1iZWhhdmlvci14IAorUEFTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgCiBQQVNTIHBhZGRpbmct
YmxvY2stZW5kIAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0YXJ0IAogUEFTUyBwYWRkaW5nLWJvdHRv
bSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKaW5kZXggODE4NzMwYjBiMC4uODFmMmU3YzQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTMwMzYsNiArMzAz
NiwxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9y
UHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJz
Y3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFs
dWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xs
QmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlv
clg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92
ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xs
QmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShz
dHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFk
ZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5Q
aXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJlbmRlckJveE1vZGVsT2JqZWN0
Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJlcik7CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCAxY2QxMDg0MmU5Li5lMWI5ZWE5MzBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTM5LDYg
KzM5LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVt
ZVR5cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKQEAgLTIyMDUsNiArMjIwNiw0MiBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3co
KSBjb25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsKIH0KIAordGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhh
dmlvciBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CisgICAgc3dpdGNoIChlKSB7
CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW46CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVy
c2Nyb2xsQmVoYXZpb3I6Ok5vbmU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG86
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OworCisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ29u
dGFpbjoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKKyAgICBj
YXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZTsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhh
dmlvcjo6QXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
OworfQorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQnJlYWtCZXR3ZWVuIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDU3NmVmY2M2NjMuLjY1OWVi
NTAyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMzI4OCw2ICsz
Mjg4LDQ2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIv
Y3NzLW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAgICAgICAiY29k
ZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAg
ICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAgICAgICAgICAg
ICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmlj
YXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlv
L292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsK
KyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAg
ICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
aW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRp
b24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292
ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15Ijogewor
ICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAg
ICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJp
biBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlv
biI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3Zl
cnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAg
ICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNv
ZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA2ZjY3YmNjOWQyLi5hMTJiNjA1
OGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM3OCw2ICsx
Mzc4LDkgQEAgcGluY2gtem9vbQogLy8gYXV0bwogc21vb3RoCiAKKy8vIG92ZXJzY3JvbGwtYmVo
YXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBm
aXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBhMDJhODE5MGI4
Li4xMThhZWExMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAt
MjU1LDYgKzI1NSw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRo
YW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyZmxvd1Nob3J0
aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAg
ICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoKSk7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBhZGRp
bmdTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCbG9jazoKQEAgLTEx
NzcsNiArMTE3OSwxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAog
ICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAgICBz
aG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAg
ICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJl
aGF2aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0
OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCA1YTdkODA0ZGFk
Li5kN2NjYzFjMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
Q29udGV4dC5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2Vy
Q29udGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICNl
bmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCku
ZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CiAgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0g
ZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7Cisg
ICAgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkub3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBkb2N1bWVu
dC5wYWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSA6IGZhbHNl
OwogfQogCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuZGVm
ZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCiAgICAg
ICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JFbmFibGVk
CiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50
U2VjdXJpdHlPcmlnaW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09
IGIub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVh
cmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDc3M2I4NTQyMzAuLjBlMzA1MmM3M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02
Niw2ICs2Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJF
bmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAK
ICAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVz
LgogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDks
NyArMTEwLDggQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAgICAgICAgICAgICYg
a2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5k
aWYKICAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAg
ICAgICAgIDw8IDEyCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAm
IGtleS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMworICAg
ICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PDwgMTQ7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChi
aXRzKTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDE3NTZmOTJmYmEuLjQ2OTI5
YWEwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFz
dFBhdGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQ
YXRocy5jcHAKQEAgLTU5MCw2ICs1OTAsOSBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNW
YWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAg
ICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZVZpc2libGUgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZUhpZGRlbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU2Nyb2xsIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVPdmVybGF5OwogICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyZmxvd1k6IC8vIHZpc2libGUgfCBoaWRkZW4gfCBzY3JvbGwgfCBhdXRvIHwgb3Zl
cmxheSB8IC13ZWJraXQtcGFnZWQteCB8IC13ZWJraXQtcGFnZWQteSAob3ZlcmxheSBpcyBhIHN5
bm9ueW0gZm9yIGF1dG8pCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlVmlzaWJs
ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTY3Jv
bGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU92ZXJs
YXkgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWCB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlV2Via2l0UGFnZWRZOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICByZXR1
cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbnRhaW4g
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrQWZ0
ZXI6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrQmVmb3JlOgogICAgICAgICByZXR1cm4gdmFs
dWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkIHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVBdm9pZFBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVBhZ2UgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUxlZnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJpZ2h0IHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVSZWN0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVyc28gfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZUF2b2lkQ29sdW1uIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW47CkBA
IC04MzUsNiArODM4LDggQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3Bl
cnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
Zmxvd1dyYXA6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3dZOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlQb2ludGVyRXZlbnRzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKICAg
ICBjYXNlIENTU1Byb3BlcnR5UmVzaXplOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBmNWQyMTY5YzY2Li4yYWFlZjJkM2UxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAt
MjM2MSw2ICsyMzYxLDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1
bWVTY3JvbGxCZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nCiAgICAgcmV0dXJuIGNv
bnN1bWVJZGVudChyYW5nZSk7CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVP
dmVyc2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0
byB2YWx1ZUlEID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFs
dWVBdXRvICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVD
b250YWluKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50
KHJhbmdlKTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1
c0Nvcm5lcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJz
ZXJNb2RlKQogewogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0g
Y29uc3VtZUxlbmd0aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5v
bk5lZ2F0aXZlKTsKQEAgLTM5NDgsNiArMzk1NiwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1By
b3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENT
UwogICAgICAgICBpZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxCZWhhdmlv
cihtX3JhbmdlKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFtX2Nv
bnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsK
ICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1f
cmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246
CkBAIC01NTM3LDYgKzU1NTAsMzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBs
YWNlU2VsZlNob3J0aGFuZChib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
Ym9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFu
ZChib29sIGltcG9ydGFudCkKK3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NT
UHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOworICAgIGlmICghbV9j
b250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1bWVPdmVyc2Nyb2xs
QmVoYXZpb3IobV9yYW5nZSk7CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlv
clk7CisgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChtX3JhbmdlLmF0
RW5kKCkpCisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Nyb2xsQmVoYXZpb3JY
OworICAgIGVsc2UgeworICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gY29uc3VtZU92ZXJz
Y3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFj
ZSgpOworICAgICAgICBpZiAoIW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclgsIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9y
WCwgaW1wb3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclksIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9y
WSwgaW1wb3J0YW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBh
cnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRh
bnQpCiB7CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewpAQCAtNTU1Nyw2ICs1NTk5LDggQEAgYm9v
bCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eSwgYm9vbCBpbXBvcnRhbnQpCiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoK
ICAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyZmxvd1Nob3J0aGFuZChpbXBvcnRhbnQpOworICAg
IGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25z
dW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZvbnQ6IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9y
YW5nZS5wZWVrKCk7CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAm
JiB0b2tlbi5pZCgpIDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCmluZGV4IGI3ZTE5ZmJkNjQuLjMwMzMyNmZmNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAg
LTExMiw2ICsxMTIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdp
bihib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9v
bCBpbXBvcnRhbnQpOwogCisgICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRo
YW5kKGJvb2wgaW1wb3J0YW50KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NT
UGFyc2VyVG9rZW5SYW5nZSBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CmluZGV4IGNmOTdlYTQ2YzEuLjA5YWVmNmJjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTMwMiwxNSArMzAyLDE1IEBAIHN0YXRpYyB2b2lkIGhhbmRsZVdoZWVsRXZl
bnRQaGFzZUluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhCiAj
ZW5kaWYKIH0KIAotc3RhdGljIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitz
dGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3Jv
bGxhYmxlQXJlYSwgZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgdW5zaWduZWQgZGVsdGFN
b2RlKQogewotICAgIFNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxH
cmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkod2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7Cisg
ICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5
VG9TY3JvbGxHcmFudWxhcml0eShkZWx0YU1vZGUpOwogICAgIGJvb2wgZGlkSGFuZGxlV2hlZWxF
dmVudCA9IGZhbHNlOwotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hl
ZWxFdmVudC5kZWx0YVgoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xs
YWJsZUFyZWEuc2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwID8gU2Nyb2xsUmlnaHQgOiBT
Y3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZs
b2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVgpKQorICAgICAgICBkaWRIYW5kbGVX
aGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbChkZWx0YVggPiAwID8gU2Nyb2xsUmln
aHQgOiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAg
Ci0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRh
WSgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3Jv
bGwod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNjcm9s
bEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0
YSA9IHN0ZDo6YWJzKGRlbHRhWSkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Ny
b2xsYWJsZUFyZWEuc2Nyb2xsKGRlbHRhWSA+IDAgPyBTY3JvbGxEb3duIDogU2Nyb2xsVXAsIHNj
cm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKICAgICByZXR1cm4gZGlkSGFu
ZGxlV2hlZWxFdmVudDsKIH0KQEAgLTMzNywxOCArMzM3LDIwIEBAIHN0YXRpYyBib29sIGhhbmRs
ZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwgY29u
c3QgV2hlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChpczxSZW5kZXJMaXN0Qm94
Pihpbml0aWFsRW5jbG9zaW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoZG93bmNhc3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0JveCksIHdo
ZWVsRXZlbnQpOworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShkb3du
Y2FzdDxSZW5kZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudC5kZWx0
YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAKICAg
ICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0JveDsK
KyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZID0g
ZmFsc2U7CiAgICAgd2hpbGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJl
bmRlckxheWVyKiBib3hMYXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAg
ICAgICAgICAgIGF1dG8gcGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRm
b3JtRXZlbnQoKTsKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAg
ICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRF
dmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQ
bGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmls
dGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRm
b3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZp
bHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQ
bGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAg
ICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVk
RXZlbnQpOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2Fz
SGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50
KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3Jv
bGxhYmxlQXJlYSgqYm94TGF5ZXIsIGlnbm9yZURlbHRhWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRh
WCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogd2hlZWxFdmVudC5kZWx0YVkoKSwgd2hlZWxFdmVudC5k
ZWx0YU1vZGUoKSk7CiAKICAgICAgICAgICAgIGlmIChzY3JvbGxpbmdXYXNIYW5kbGVkKSB7CiAg
ICAgICAgICAgICAgICAgc3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50
KCk7CkBAIC0zNTksNiArMzYxLDE3IEBAIHN0YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFw
cHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwgY29uc3QgV2hlCiAgICAgICAg
IGlmIChzdG9wRWxlbWVudC5nZXQoKSAmJiBzdG9wRWxlbWVudC5nZXQoKSA9PSBjdXJyZW50RW5j
bG9zaW5nQm94LT5lbGVtZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgICAg
ICBpZiAoIWlnbm9yZURlbHRhWCAmJiBjdXJyZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAg
ICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAgICAgICBpZiAoIWlnbm9yZURlbHRhWSAmJiBjdXJy
ZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKSAhPSBPdmVyc2Ny
b2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVkgPSB0cnVlOworICAg
ICAgICBpZiAoaWdub3JlRGVsdGFYICYmIGlnbm9yZURlbHRhWSkgeworICAgICAgICAgICAgLy8g
V2UgY2xhaW0gdGhhdCB0aGUgZXZlbnQgd2FzIGhhbmRsZWQgc28gdGhhdCBpdCBpcyBub3QgcHJv
cGFnYXRlZCB0byB0aGUgYW5jZXN0b3IgZnJhbWVzLgorICAgICAgICAgICAgaWYgKHN0b3BFbGVt
ZW50KQorICAgICAgICAgICAgICAgIHN0b3BFbGVtZW50ID0gY3VycmVudEVuY2xvc2luZ0JveC0+
ZWxlbWVudCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAg
ICBjdXJyZW50RW5jbG9zaW5nQm94ID0gY3VycmVudEVuY2xvc2luZ0JveC0+Y29udGFpbmluZ0Js
b2NrKCk7CiAgICAgICAgIGlmICghY3VycmVudEVuY2xvc2luZ0JveCB8fCBjdXJyZW50RW5jbG9z
aW5nQm94LT5pc1JlbmRlclZpZXcoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBmNDhhZTZjY2ZjLi5mNGRlMGY4ZjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00MjIsNiArNDIyLDIwIEBAIGJvb2wgRnJhbWVWaWV3
OjpkaWRGaXJzdExheW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIGxheW91dENvbnRleHQoKS5kaWRG
aXJzdExheW91dCgpOwogfQogCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojpob3Jpem9u
dGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiBm
cmFtZVJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBm
cmFtZVJlbmRlcmVyLT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKKyAgICByZXR1cm4g
U2Nyb2xsYWJsZUFyZWE6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKK30KKworT3Zl
cnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAg
Y29uc3QKK3sKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiBmcmFtZVJlbmRlcmVyID0gZnJhbWUoKS5v
d25lclJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBmcmFtZVJlbmRlcmVyLT5zdHlsZSgpLm92
ZXJzY3JvbGxCZWhhdmlvclkoKTsKKyAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6OnZlcnRpY2Fs
T3ZlcnNjcm9sbEJlaGF2aW9yKCk7Cit9CisKIHZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlUmVj
dChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmICghcGFyZW50KCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCmluZGV4IDI4MjdmMTIzMGEuLjQ2OWZkMTVlNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaApAQCAtNzM5LDYgKzczOSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1bm9ic2N1
cmVkQ29udGVudFNpemVDaGFuZ2VkKCkgZmluYWw7CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYSBp
bnRlcmZhY2UKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpIGNvbnN0IGZpbmFsOworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xs
YmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBzY3Jv
bGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2V0VmlzaWJsZVNj
cm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAppbmRleCAwYjQ5YWQ3M2U5Li44NjA0MzE5NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCkBAIC02MjMsNiArNjIzLDkgQEAgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOgog
c3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCitvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IDg1NDRkMGJjYWEuLjdmNjVkZjFhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC03MTIsNiArNzEyLDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3JvbGxpbmcKICAgICBzY3JvbGxpbmdO
b2RlLnNldFNjcm9sbGFibGVBcmVhU2l6ZShzY3JvbGxhYmxlQXJlYS52aXNpYmxlU2l6ZSgpKTsK
IAogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJzOworICAgIHNj
cm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHNjcm9sbGFibGVB
cmVhLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICBzY3JvbGxQYXJhbWV0ZXJz
LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxF
bGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKTsK
ICAgICBzY3JvbGxQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9IHNjcm9sbGFi
bGVBcmVhLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMu
aGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Nyb2xsYmFyICYmIGhv
cml6b250YWxTY3JvbGxiYXItPmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAppbmRleCAxY2Ni
Mzk1OTNlLi41MWEwMWExOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCkBAIC02Nyw2ICs2Nyw5IEBA
IGVudW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB7CiB9OwogCiBzdHJ1Y3Qg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpv
bnRhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKyAg
ICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Ny
b2xsQmVoYXZpb3I6OiBBdXRvIH07CisKICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKICAgICBTY3JvbGxFbGFz
dGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCA2MmY2ZmY0NTQxLi4xMjFkZjkzOTJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMjksNiArMTI5LDE2IEBAIGJvb2wgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OmlzTGF0Y2hlZE5vZGUoKSBjb25zdAogICAgIHJldHVybiBz
Y3JvbGxpbmdUcmVlKCkubGF0Y2hlZE5vZGVJRCgpID09IHNjcm9sbGluZ05vZGVJRCgpOwogfQog
CitPdmVyc2Nyb2xsQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Omhvcml6b250
YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGFibGVB
cmVhUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOworfQorCitPdmVyc2Ny
b2xsQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OmNhbkhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KSBjb25zdAogewogICAgIGlmICghY2FuSGF2ZVNjcm9sbGJhcnMoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oCmluZGV4IDhhZDk5NjJjMDQuLmYzYWUwNjdhMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuaApAQCAtMTM2LDYgKzEzNiw4IEBAIHByb3RlY3RlZDoKICAgICBjb25zdCBGbG9h
dFNpemUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
dG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAgICAgdm9pZCBzZXRUb3RhbENvbnRl
bnRzU2l6ZUZvclJ1YmJlckJhbmQoY29uc3QgRmxvYXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZUZv
clJ1YmJlckJhbmQpIHsgbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQgPSB0b3RhbENv
bnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KIAorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Q7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Q7CiAgICAgU2Nyb2xsRWxhc3RpY2l0
eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5OyB9CiAgICAgU2Nyb2xs
RWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHk7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggYjk3NWZiMDQzMC4uM2VhZWIyMGE4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC0zOSw2ICszOSwxMiBA
QCBlbnVtIGNsYXNzIFNjcm9sbFR5cGUgOiB1aW50OF90IHsKICAgICBQcm9ncmFtbWF0aWMKIH07
CiAKK2VudW0gY2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQXV0byA9
IDAsCisgICAgQ29udGFpbiwKKyAgICBOb25lCit9OworCiBlbnVtIFNjcm9sbERpcmVjdGlvbiA6
IHVpbnQ4X3QgewogICAgIFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCA4OTJkOGRlNmQzLi5jY2I0MjQwMGZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTEyMyw2ICsxMjMs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KICAg
ICB2b2lkIHNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGJvb2wgY29uc3RyYWlu
c1Njcm9sbGluZ1RvQ29udGVudEVkZ2UpIHsgbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50
RWRnZSA9IGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOyB9CiAKKyAgICB2aXJ0dWFs
IE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Qg
eyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgdmlydHVhbCBPdmVyc2Ny
b2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKwogICAgIHZvaWQgc2V0VmVydGljYWxTY3JvbGxF
bGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHkgc2Nyb2xsRWxhc3RpY2l0eSkgeyBtX3ZlcnRpY2Fs
U2Nyb2xsRWxhc3RpY2l0eSA9IHNjcm9sbEVsYXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGlj
aXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PFNjcm9sbEVsYXN0aWNpdHk+KG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA2ZDlkYjU0NGY3Li5kNzRl
ODM4YmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM0
MDgsNiArMzQwOCwxNiBAQCB2b2lkIFJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsQ29ybmVy
UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICBtX3Jlc2l6ZXItPnJlcGFpbnRSZWN0
YW5nbGUocmVjdCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBSZW5kZXJMYXllcjo6aG9yaXpv
bnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCku
c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBS
ZW5kZXJMYXllcjo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAgY29uc3QKK3sKKyAgICBy
ZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKK30KKwogc3Rh
dGljIGJvb2wgc2Nyb2xsYmFySGlkZGVuQnlTdHlsZShTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsK
ICAgICByZXR1cm4gc2Nyb2xsYmFyICYmIHNjcm9sbGJhci0+aXNIaWRkZW5CeVN0eWxlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDZkZTBkMDA3MmUuLmZlNjQx
MTcyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00ODMsNiAr
NDgzLDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0
IHsgcmV0dXJuIGhvcml6b250YWxTY3JvbGxiYXIoKTsgfQogICAgIGJvb2wgaGFzVmVydGljYWxT
Y3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiB2ZXJ0aWNhbFNjcm9sbGJhcigpOyB9CiAKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IGZp
bmFsOworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigp
IGNvbnN0IGZpbmFsOworCiAgICAgYm9vbCBob3Jpem9udGFsU2Nyb2xsYmFySGlkZGVuQnlTdHls
ZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdmVydGljYWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxl
KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggMWY0MGM2MTM5ZC4uNDBmZWU2MGE4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlJvdW5kZWRSZWN0LmgiCiAj
aW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2lu
Y2x1ZGUgIlNoYWRvd0RhdGEuaCIKICNpbmNsdWRlICJTaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAi
U3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgpAQCAtMzI2LDYgKzMyNyw5IEBAIHB1YmxpYzoKICAgICBP
dmVyZmxvdyBvdmVyZmxvd0lubGluZURpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1goKSA6IG92ZXJmbG93WSgpOyB9CiAgICAgT3Zl
cmZsb3cgb3ZlcmZsb3dCbG9ja0RpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBvdmVyZmxvd1koKSA6IG92ZXJmbG93WCgpOyB9CiAgICAgYm9vbCBp
c092ZXJmbG93VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG92ZXJmbG93WCgpID09IE92ZXJmbG93
OjpWaXNpYmxlIHx8IG92ZXJmbG93WSgpID09IE92ZXJmbG93OjpWaXNpYmxlOyB9CisKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2aW9yWCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3Zl
cnNjcm9sbEJlaGF2aW9yWCk7IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJl
aGF2aW9yWSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4o
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWSk7IH0KICAgICAKICAg
ICBWaXNpYmlsaXR5IHZpc2liaWxpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaXNp
YmlsaXR5PihtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkpOyB9CiAgICAgVmVydGljYWxBbGln
biB2ZXJ0aWNhbEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmVydGljYWxBbGln
bj4obV9ub25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduKTsgfQpAQCAtODg2LDYgKzg5MCw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3ZlcmZsb3dYKE92ZXJmbG93IHYpIHsgbV9ub25J
bmhlcml0ZWRGbGFncy5vdmVyZmxvd1ggPSAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAg
ICAgdm9pZCBzZXRPdmVyZmxvd1koT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92
ZXJmbG93WSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQorICAgIHZvaWQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yWChPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2
KSk7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclkoT3ZlcnNjcm9sbEJlaGF2aW9y
IHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JZ
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZp
c2liaWxpdHkgdikgeyBtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbiB2
KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxBbGlnbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbkxlbmd0aChMZW5ndGgmJiBsZW5n
dGgpIHsgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduOjpMZW5ndGgpOyBTRVRfVkFSKG1f
Ym94RGF0YSwgbV92ZXJ0aWNhbEFsaWduLCBXVEZNb3ZlKGxlbmd0aCkpOyB9CkBAIC0xNDYzLDYg
KzE0NjksOSBAQCBwdWJsaWM6CiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJv
cGVydGllcwogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dYKCkgeyByZXR1cm4g
T3ZlcmZsb3c6OlZpc2libGU7IH0KICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93
WSgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxC
ZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpIHsgcmV0dXJuIE92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bzsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92
ZXJzY3JvbGxCZWhhdmlvclkoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0K
KwogICAgIHN0YXRpYyBDbGVhciBpbml0aWFsQ2xlYXIoKSB7IHJldHVybiBDbGVhcjo6Tm9uZTsg
fQogICAgIHN0YXRpYyBEaXNwbGF5VHlwZSBpbml0aWFsRGlzcGxheSgpIHsgcmV0dXJuIERpc3Bs
YXlUeXBlOjpJbmxpbmU7IH0KICAgICBzdGF0aWMgRVVuaWNvZGVCaWRpIGluaXRpYWxVbmljb2Rl
QmlkaSgpIHsgcmV0dXJuIFVCTm9ybWFsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXgg
NmVmNDBjYWQxNy4uMjg4NWFkOWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNjQs
NiArNjQsOCBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhKCkKICAgICAsIHNjcm9sbFNuYXBQb3J0KFN0eWxlU2Nyb2xsU25hcFBvcnQ6OmNyZWF0
ZSgpKQogICAgICwgc2Nyb2xsU25hcEFyZWEoU3R5bGVTY3JvbGxTbmFwQXJlYTo6Y3JlYXRlKCkp
CiAjZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpKSkKKyAgICAsIG92ZXJz
Y3JvbGxCZWhhdmlvclkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFs
T3ZlcnNjcm9sbEJlaGF2aW9yWSgpKSkKICAgICAsIHdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6Omlu
aXRpYWxXaWxsQ2hhbmdlKCkpCiAgICAgLCBtYXNrKEZpbGxMYXllclR5cGU6Ok1hc2spCiAgICAg
LCBtYXNrQm94SW1hZ2UoTmluZVBpZWNlSW1hZ2U6OlR5cGU6Ok1hc2spCkBAIC0xNDAsNiArMTQy
LDggQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIHNjcm9sbFNuYXBQb3J0KG8uc2Ny
b2xsU25hcFBvcnQpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShvLnNjcm9sbFNuYXBBcmVhKQogI2Vu
ZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAg
ICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZKQogICAgICwgY29u
dGVudChvLmNvbnRlbnQgPyBvLmNvbnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQogICAgICwgY291
bnRlckRpcmVjdGl2ZXMoby5jb3VudGVyRGlyZWN0aXZlcyA/IG1ha2VVbmlxdWU8Q291bnRlckRp
cmVjdGl2ZU1hcD4oKm8uY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKICAgICAsIGFsdFRl
eHQoby5hbHRUZXh0KQpAQCAtMjM5LDYgKzI0Myw4IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBj
CiAgICAgICAgICYmIHNjcm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xsU25hcFBvcnQKICAgICAgICAg
JiYgc2Nyb2xsU25hcEFyZWEgPT0gby5zY3JvbGxTbmFwQXJlYQogI2VuZGlmCisgICAgICAgICYm
IG92ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JYCisgICAgICAgICYm
IG92ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZCiAgICAgICAgICYm
IGNvbnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxE
YXRhKGNvdW50ZXJEaXJlY3RpdmVzLCBvLmNvdW50ZXJEaXJlY3RpdmVzKQogICAgICAgICAmJiBh
bHRUZXh0ID09IG8uYWx0VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZjdkODM5MjBkMS4u
NjQxYjQxOTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xMjksNiArMTI5LDkgQEAgcHVi
bGljOgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxTbmFwQXJlYT4gc2Nyb2xsU25hcEFyZWE7CiAj
ZW5kaWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclggOiAyOyAvLyBPdmVyc2Ny
b2xsQmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JZIDogMjsgLy8gT3Zl
cnNjcm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+IGNvbnRl
bnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJEaXJlY3RpdmVNYXA+IGNvdW50ZXJEaXJl
Y3RpdmVzOwogICAgIFN0cmluZyBhbHRUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggOWQzMmRiYWQ3MC4uZmNjZTliZGM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0y
MjM1LDYgKzIyMzUsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFTZXNzaW9uTWV0YWRhdGE+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTWVkaWFTZXNzaW9uTQogCiB2b2lkIEFyZ3VtZW50
Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0ocGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKTsK
KyAgICBlbmNvZGVyLmVuY29kZUVudW0ocGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvcik7CisKICAgICBlbmNvZGVyLmVuY29kZUVudW0ocGFyYW1ldGVycy5ob3Jpem9udGFsU2Ny
b2xsRWxhc3RpY2l0eSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBhcmFtZXRlcnMudmVydGlj
YWxTY3JvbGxFbGFzdGljaXR5KTsKIApAQCAtMjI1Miw2ICsyMjU1LDExIEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2NyCiAKIGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBw
YXJhbXMpCiB7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1zLmhvcml6b250YWxP
dmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0ocGFyYW1zLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1zLmhv
cml6b250YWxTY3JvbGxFbGFzdGljaXR5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtcy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBmYjlk
OGRiNzU5Li4zN2NiYTFmMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CkBAIC04NzgsNiArODc5
LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmVmPFdlYkNvcmU6OkltYWdl
RGF0YT4+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3IsCisgICAgV2ViQ29yZTo6
T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlv
cjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICA+
OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb2xvclNwYWNl
PiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJDb3JlOjpDb2xvclNw
YWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFt
bCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMzBhNTll
YzMzNy4uN2M5YTZhYjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCkBAIC0xMzUxLDYgKzEzNTEsMTMgQEAgU3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxl
ZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFN5bnRoZXRpYyBFZGl0aW5n
IENvbW1hbmRzIgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1hblJl
YWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisgIGNhdGVnb3J5
OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCAyODg3MTM3ZTBjLi4xNTg3NmY2YjkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCkBAIC0yMzAsMTIgKzIzMCwzMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbAogICAg
IFNldEZvclNjb3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdlKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2Rl
LCB0cnVlKTsKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpCisgICAg
ICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykKICAgICAgICAgfHwgc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlRvdGFsQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVhY2hhYmxlQ29u
dGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRpb24pCiAgICAgICAg
IHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxPcmlnaW4pKSB7CiAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogICAgICAgICBVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcgPSB0aGlzLT5zY3Jv
bGxWaWV3KCk7CisKKyAgICAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzQzMTU5OTcpOiBV
SVNjcm9sbFZpZXcgc2hvdWxkIGhhdmUgc29tZSBraW5kIG9mIHN1cHBvcnQgZm9yIG92ZXJzY3Jv
bGwtYmVoYXZpb3IgdG8gZW5hYmxlL2Rpc2FibGU6CisgICAgICAgIC8vIC0gbm9uLWxvY2FsIGJv
dW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBzY3JvbGwgY2hhaW5pbmcpLgorICAgICAgICAv
LyAtIGxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBib3VuY2luZykuCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgLy8gaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxh
YmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJl
aGF2aW9ySG9yaXpvbnRhbCA9IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9V
SUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkuaG9yaXpv
bnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vICAgICBzY3JvbGxWaWV3Lm92ZXJz
Y3JvbGxCZWhhdmlvclZlcnRpY2FsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJL
aXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS52
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vIH0KKyNlbmRpZgorICAgICAg
ICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcgd2hlbiBib3RoIG92ZXJmbG93
LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8vIFVJU2Nyb2xsVmlldzo6YWx3
YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4KKyAgICAgICAgaWYgKHNjcm9s
bGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgICAgIHNjcm9sbFZpZXcuYm91
bmNlcyA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS5ob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAg
ICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygp
LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQor
ICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChzY3JvbGxp
bmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xsVmll
d0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0gYWRvcHRO
UyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3Jv
bGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDE1
NjQ0MWU3MjguLmY2YTFlYWRlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTkwLDYgKzE5
MCw3IEBACiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdERpcmVj
dG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJu
TWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250
cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQppbmRleCBiMmFhMTlkN2YxLi5lYjY3MjA1MjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2Nyw2
ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIEBZRVMsIFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKIAorICAgICAgICBATk8sIFdlYktpdE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBXZWJLaXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBX
ZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXksCkBA
IC0zMTkwLDYgKzMxOTEsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0g
bmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0VmlzdWFsVmll
d3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktp
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClz
ZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0
Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkCiB7
CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggOGM4NjZlYjhh
OC4uZmQyODEyOGFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02NTMsNiArNjUzLDcgQEAgZXh0ZXJu
IE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmlj
YXRpb24gV0VCS0lUX0RFUFIKIC0gKEJPT0wpd2ViU1FMRW5hYmxlZDsKIAogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGFkOWJmZGQ1MzIuLjcyMDcx
YmFmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTMwMDksNiArMzAwOSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGlu
Z1F1aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJl
ZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGlu
Z0NvbW1hbmRzRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAgICBzZXR0
aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggMGM3ZTkyYmMxMS4uNDNm
M2MyZTAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yMjEsNiArMjIxLDggQEAg
aW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTUKICAgICBIUkVTVUxUIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoW2luXSBCT09MIGVu
YWJsZWQpOwogICAgIEhSRVNVTFQgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtvdXQsIHJldHZh
bF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtpbl0g
Qk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW291
dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJFU1VMVCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRDU1NPTVZpZXdT
Y3JvbGxpbmdBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4
IDgwNDUzMWE0NmIuLmEyOTBjNDRiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xOTcsNiArMTk3LDggQEAKIAogI2Rl
ZmluZSBXZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIgogCisjZGVmaW5l
IFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIgorCiAjZGVmaW5lIFdlYktpdFVzZXJUaW1pbmdFbmFibGVk
UHJlZmVyZW5jZUtleSAiV2ViS2l0VXNlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0
UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0UmVzb3VyY2VUaW1pbmdF
bmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5j
ZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4
IGE2NzFiMDlmZWUuLmRiYWY4ZjQ3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAKQEAgLTM0MCw2ICszNDAsOCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpp
bml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRl
ZmF1bHRzLCBDRlNUUihXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRz
LCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSksIGtD
RkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZT
VFIoV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZC
b29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RS
KFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFs
c2UpOwpAQCAtMjI2OCw2ICsyMjcwLDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091
dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBF
X1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0T3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitI
UkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wg
ZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVT
VUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJP
T0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmgKaW5kZXggZjdmZTc2ODQyYi4uMDczOTNjZjgwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNjUsNiArMjY1LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRJbnNwZWN0b3JB
ZGRpdGlvbnNFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9P
TCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9P
dXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBCT09M
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGZlN2NiNmExZDAuLmRjN2M3
OTA5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzM0LDYgKzUzMzQs
MTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Mu
c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZz
UHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZB
SUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikp
CiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRl
eCBlN2M1ODM2NzgyLi5lYjM0NzI5MTMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
Y3BwCkBAIC0xMzYsNiArMTM2LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0IHN0
ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAgICAgICAg
ICAgIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzID0gdmFsdWU7CiAgICAgICAgIGVsc2Ug
aWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOldlYkdQVUVuYWJsZWQiKQogICAgICAgICAgICAgZW5h
YmxlV2ViR1BVID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAg
ZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIp
CisgICAgICAgICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgPSBwYXJzZUJvb2xlYW5UZXN0
SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOkNT
U0xvZ2ljYWxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNTU0xvZ2ljYWwgPSBwYXJzZUJv
b2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImlu
dGVybmFsOkxpbmVIZWlnaHRVbml0c0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmgKaW5kZXggYzVjOGM4NTk5Mi4uMmNhNjE5OTQwZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5oCkBAIC00Nyw2ICs0Nyw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBl
bmFibGVDb2xvckZpbHRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVTZWxlY3Rpb25BY3Jv
c3NTaGFkb3dCb3VuZGFyaWVzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViR1BVIHsgZmFs
c2UgfTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciB7IGZhbHNlIH07CiAgICAg
Ym9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUxpbmVIZWln
aHRVbml0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRl
eCA5Nzg5NWU0MDQwLi5lNzE4YWY4NmZjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQ
cmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAg
IHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0
ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJs
ZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAgICAg
cHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOworICAgIHBy
ZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJz
Y3JvbGxCZWhhdmlvcjsKICAgICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlv
bnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJlbmNlcy5saW5lSGVpZ2h0VW5pdHNFbmFi
bGVkID0gb3B0aW9ucy5lbmFibGVMaW5lSGVpZ2h0VW5pdHM7CiAgICAgcHJlZmVyZW5jZXMuYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxl
ZDsK
</data>
<flag name="review"
          id="415920"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403978</attachid>
            <date>2020-07-10 10:23:43 -0700</date>
            <delta_ts>2020-07-10 20:53:19 -0700</delta_ts>
            <desc>WIP-patch-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-005-0711.diff</filename>
            <type>text/plain</type>
            <size>62714</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZjlmMzRlMzk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1Bhc3MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGUgaWYg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCBpcyBkaXNhYmxlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1k
aXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2
aW9yLWludmFsaWRhdGUtaWYtZGlzYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmQ1YmMzNTQyYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYtZGlzYWJsZS5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ9ZmFsc2UgXSAtLT4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAg
IGlmICgib3ZlcnNjcm9sbEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5
bGUpCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiRmFpbCB0ZXN0IG92ZXJzY3JvbGxCZWhh
dmlvciBzaG91bGQgYmUgaW52YWxpZGF0ZSBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlz
IGRpc2FibGVkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgi
UGFzcyB0ZXN0IG92ZXJzY3JvbGxCZWhhdmlvciBzaG91bGQgYmUgaW52YWxpZGF0ZSBpZiBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLiIpOworCisgICAgPC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRh
dGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292
ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xMTE0NWJiNmY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxp
ZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Bhc3MgdGVzdCBvdmVy
c2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlIGlmIG92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQgaXMgZW5hYmxlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjEyNTAxN2E2NWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJl
aGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgaWYgKCJvdmVyc2Nyb2xsQmVoYXZpb3IiIGluIGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRl
KCJQYXNzIHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSB2YWxpZGF0ZSBpZiBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGRvY3VtZW50LndyaXRlKCJGYWlsIHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3Vs
ZCBiZSB2YWxpZGF0ZSBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuIik7
CisKKyAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CmluZGV4IDcyYWMxY2Rk
ZjIuLjRjNDRmZDIxZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKQEAgLTE5
Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxpbmUtd2lkdGgKIFBBU1Mgb3ZlcmZsb3ctd3JhcCAKIFBB
U1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3ZlcmZsb3cteSAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlv
ci14IAorUEFTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgCiBQQVNTIHBhZGRpbmctYmxvY2stZW5k
IAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0YXJ0IAogUEFTUyBwYWRkaW5nLWJvdHRvbSAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJl
aGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCA1MDM0MGYwMTYwLi40MzdkMTg3
NTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAogCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBoYXMgaW5pdGlhbCB2
YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggZG9lc24ndCBzZWVt
IHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXMgbm90IGluaGVy
aXQgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92
ZXJzY3JvbGwtYmVoYXZpb3IteSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBv
dmVyc2Nyb2xsLWJlaGF2aW9yLXkgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUg
Y29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgb3Zl
cnNjcm9sbC1iZWhhdmlvci15IGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXgg
ZG9lcyBub3QgaW5oZXJpdCAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci15IGhh
cyBpbml0aWFsIHZhbHVlIGF1dG8gCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3It
eSBkb2VzIG5vdCBpbmhlcml0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0
YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UuaHRtbAppbmRleCBlNDlmYTQ5
YmM0Li5iOWRlNjgxOGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ9dHJ1ZSBdIC0tPgogPGh0
bWw+CiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2Nh
ZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CmluZGV4IDMyNGYzYzdhOTQuLjJj
ZjlkNzQxM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXht
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1s
LWV4cGVjdGVkLnR4dApAQCAtMTkzLDYgKzE5Myw4IEBAIFBBU1Mgb3V0bGluZS13aWR0aAogUEFT
UyBvdmVyZmxvdy13cmFwIAogUEFTUyBvdmVyZmxvdy14IAogUEFTUyBvdmVyZmxvdy15IAorUEFT
UyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggCitQQVNTIG92ZXJzY3JvbGwtYmVoYXZpb3IteSAKIFBB
U1MgcGFkZGluZy1ibG9jay1lbmQgCiBQQVNTIHBhZGRpbmctYmxvY2stc3RhcnQgCiBQQVNTIHBh
ZGRpbmctYm90dG9tIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCA1YmJhM2E4NDM1Li5hMjY2NzI5NmQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAt
MzAzNyw2ICszMDM3LDEyIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rv
cjo6dmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoY29uc3QgUmVuZGVyU3R5CiAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WCgpKTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcmZsb3dZKCkpOworICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9v
bC5jcmVhdGVWYWx1ZShzdGQ6Om1heChzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCksIHN0eWxl
Lm92ZXJzY3JvbGxCZWhhdmlvclkoKSkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFs
dWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclkoKSk7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBhZGRp
bmdPck1hcmdpblBpeGVsVmFsdWU8JlJlbmRlclN0eWxlOjpwYWRkaW5nVG9wLCAmUmVuZGVyQm94
TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ1RvcD4oc3R5bGUsIHJlbmRlcmVyKTsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IGEzYzc2Y2RkZmYuLmM1ZjI0NjE2
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZURlZnMu
aCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2lu
Y2x1ZGUgIlRoZW1lVHlwZXMuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgpAQCAtMjIwNSw2
ICsyMjA2LDQyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3Zl
cnNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
Cit7CisgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7
CisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpD
b250YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7
CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xs
QmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVy
biBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAg
ICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNv
bgppbmRleCAyYWNiMDljMTI3Li5jZmFlZmQ5NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KQEAgLTMyODksNiArMzI4OSw1MyBAQAogICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNwcm9wZGVmLW92ZXJmbG93
LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2
aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJz
Y3JvbGxCZWhhdmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogewor
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6
ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3Zl
cnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3JvbGxCZWhh
dmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczov
L3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1i
ZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9s
bC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJh
dXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CisgICAgICAgICAgICAgICAgInNldHRpbmdzLWZsYWciOiAib3ZlcnNjcm9sbEJlaGF2aW9yIgor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9y
LXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAg
ICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hh
bmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBhYjBkZjdj
OGRkLi5mMmQxNGZiZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpA
QCAtMTM5Myw2ICsxMzkzLDkgQEAgcGluY2gtem9vbQogLy8gYXV0bwogc21vb3RoCiAKKy8vIG92
ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgog
YWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRl
eCBhMDJhODE5MGI4Li4xMThhZWExMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmNwcApAQCAtMjU1LDYgKzI1NSw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1
cm4gZ2V0U2hvcnRoYW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhv
dmVyZmxvd1Nob3J0aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yOgorICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhh
bmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0
VmFsdWVzKHBhZGRpbmdTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdC
bG9jazoKQEAgLTExNzcsNiArMTE3OSwxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1Rl
eHQoKSBjb25zdAogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAg
ICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Ny
b2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclk6CisgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
UGFkZGluZ1JpZ2h0OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRl
eCA1YTdkODA0ZGFkLi5kN2NjYzFjMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgQ1NTUGFyc2VyQ29udGV4
dDo6Q1NTUGFyc2VyQ29udGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
c2hlZXRCYXMKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50
LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CiAgICAgc2Nyb2xsQmVoYXZp
b3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCk7CisgICAgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFu
Y2UgPSBkb2N1bWVudC5wYWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFu
Y2UoKSA6IGZhbHNlOwogfQogCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAg
ICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJF
bmFibGVkCiAgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVo
YXZpb3JFbmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBi
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkID09IGIub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVz
ZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDc3M2I4NTQyMzAu
LjBlMzA1MmM3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgZGVmZXJy
ZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5h
YmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFs
c2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0
Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNl
IH07CkBAIC0xMDksNyArMTEwLDggQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAg
ICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDExCiAjZW5kaWYKICAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAg
ICAgICAgICAgICAgICAgICAgIDw8IDEyCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCisg
ICAgICAgICAgICAmIGtleS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAg
ICA8PCAxMworICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTQ7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdU
Rjo6aW50SGFzaChiaXRzKTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDVkZGEy
MTJkYzcuLjgwZDYzMDUwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyRmFzdFBhdGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckZhc3RQYXRocy5jcHAKQEAgLTY4Myw2ICs2ODMsMTEgQEAgYm9vbCBDU1NQYXJzZXJG
YXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SWQKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlT3ZlcmxheTsKICAg
ICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOiAvLyB2aXNpYmxlIHwgaGlkZGVuIHwgc2Nyb2xs
IHwgYXV0byB8IG92ZXJsYXkgfCAtd2Via2l0LXBhZ2VkLXggfCAtd2Via2l0LXBhZ2VkLXkgKG92
ZXJsYXkgaXMgYSBzeW5vbnltIGZvciBhdXRvKQogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBD
U1NWYWx1ZVZpc2libGUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhpZGRlbiB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlU2Nyb2xsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVPdmVybGF5IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRQYWdlZFggfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToK
KyAgICAgICAgaWYgKCFjb250ZXh0LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8
IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb250YWluIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlCcmVha0FmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlCcmVh
a0JlZm9yZToKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVBdm9pZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWRQYWdlIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVQYWdlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVMZWZ0IHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVSaWdodCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVjdG8gfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZVZlcnNvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdm9pZENvbHVtbiB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlQ29sdW1uOwpAQCAtOTM4LDYgKzk0Myw4IEBAIGJvb2wgQ1NTUGFy
c2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
ZCkKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyZmxvd1g6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICBjYXNlIENT
U1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWToKICAgICBjYXNlIENTU1Byb3BlcnR5UG9pbnRlckV2ZW50czoKICAgICBj
YXNlIENTU1Byb3BlcnR5UG9zaXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXgg
OTk5NTVkZjUzMy4uYjM0YzYxOTJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzNjEsNiArMjM2MSwxNCBAQCBzdGF0aWMgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZwogICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwogfQogCitzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgp
OworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVl
Tm9uZSAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlQ29udGFpbikKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Cit9CisKIHN0YXRpYyBSZWZQdHI8
Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2Us
IGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CkBAIC0zOTQ4LDYgKzM5NTYs
MTEgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICAgICAgaWYgKCFtX2NvbnRleHQuc2Ny
b2xsQmVoYXZpb3JFbmFibGVkKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvclk6CisgICAgICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVP
dmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAg
ICAgICAgIHJldHVybiBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRvdWNoQWN0aW9uOgpAQCAtNTUzNyw2ICs1NTUwLDM1IEBAIGJvb2wg
Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZVNlbGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRh
bnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1
bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgQVNT
RVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5s
ZW5ndGgoKSA9PSAyKTsKKyAgICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxC
ZWhhdmlvclggPSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGlmICgh
b3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRy
PENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JZOworICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRl
c3BhY2UoKTsKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICBvdmVyc2Nyb2xsQmVo
YXZpb3JZID0gb3ZlcnNjcm9sbEJlaGF2aW9yWDsKKyAgICBlbHNlIHsKKyAgICAgICAgb3ZlcnNj
cm9sbEJlaGF2aW9yWSA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAg
ICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKCFtX3JhbmdlLmF0
RW5kKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclgsIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogewogICAgIHN3aXRjaCAocHJvcGVydHkp
IHsKQEAgLTU1NTcsNiArNTU5OSw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hv
cnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogICAgIH0KICAg
ICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcmZs
b3dTaG9ydGhhbmQoaW1wb3J0YW50KTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJl
aGF2aW9yOgorICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFu
ZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250OiB7CiAgICAgICAgIGNvbnN0
IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IG1fcmFuZ2UucGVlaygpOwogICAgICAgICBpZiAodG9r
ZW4uaWQoKSA+PSBDU1NWYWx1ZUNhcHRpb24gJiYgdG9rZW4uaWQoKSA8PSBDU1NWYWx1ZVN0YXR1
c0JhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApp
bmRleCBiN2UxOWZiZDY0Li4zMDMzMjZmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC0xMTIsNiArMTEyLDggQEAgcHJpdmF0ZToKICAg
ICBib29sIGNvbnN1bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wg
Y29uc3VtZVBlcnNwZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKIAorICAgIGJvb2wgY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCk7CisKIHByaXZh
dGU6CiAgICAgLy8gSW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgbV9yYW5nZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2ZjFmMWI0YWQ4Li5mY2QwNDFjY2Fm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMDIsMTUgKzMwMiwyMiBA
QCBzdGF0aWMgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2VJblNjcm9sbGFibGVBcmVhKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYQogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBjb25z
dCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorc3RydWN0IElnbm9yZURlbHRhUmVxdWVzdCB7Cisg
ICAgYm9vbCBpZ25vcmVYIHsgZmFsc2UgfTsKKyAgICBib29sIGlnbm9yZVkgeyBmYWxzZSB9Owor
fTsKKworc3RhdGljIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJl
YSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0IEln
bm9yZURlbHRhUmVxdWVzdCYgaWdub3JlUmVxdWVzdCkKIHsKKyAgICBkb3VibGUgZGVsdGFYID0g
aWdub3JlUmVxdWVzdC5pZ25vcmVYID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFYKCk7CisgICAgZG91
YmxlIGRlbHRhWSA9IGlnbm9yZVJlcXVlc3QuaWdub3JlWSA/IDAgOiB3aGVlbEV2ZW50LmRlbHRh
WSgpOwogICAgIFNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFu
dWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkod2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAgICAg
Ym9vbCBkaWRIYW5kbGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFic29sdXRl
RGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlkSGFuZGxl
V2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+
IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0
ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkp
CisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKGRl
bHRhWCA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBh
YnNvbHV0ZURlbHRhKTsKICAgICAKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6
YWJzKHdoZWVsRXZlbnQuZGVsdGFZKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9
IHNjcm9sbGFibGVBcmVhLnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/IFNjcm9sbERv
d24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlm
IChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAgICAgZGlkSGFu
ZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9s
bERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAg
IAogICAgIHJldHVybiBkaWRIYW5kbGVXaGVlbEV2ZW50OwogfQpAQCAtMzM2LDE5ICszNDMsMjUg
QEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3go
Tm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICBpZiAoIXNob3VsZEhhbmRsZUV2ZW50KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdub3JlUmVx
dWVzdDsKICAgICBpZiAoaXM8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0JveCkpCi0g
ICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGRvd25jYXN0PFJlbmRlckxp
c3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgcmV0dXJu
IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoZG93bmNhc3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlh
bEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQsIGlnbm9yZVJlcXVlc3QpOwogCiAgICAgUmVuZGVy
Qm94KiBjdXJyZW50RW5jbG9zaW5nQm94ID0gJmluaXRpYWxFbmNsb3NpbmdCb3g7CisgICAgYm9v
bCBpZ25vcmVEZWx0YVggPSBmYWxzZTsKKyAgICBib29sIGlnbm9yZURlbHRhWSA9IGZhbHNlOwor
ICAgIGF1dG8qIGRvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gt
PmRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpOwogICAgIHdoaWxlIChjdXJyZW50RW5jbG9z
aW5nQm94KSB7CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogYm94TGF5ZXIgPSBjdXJyZW50RW5j
bG9zaW5nQm94LT5sYXllcigpKSB7CiAgICAgICAgICAgICBhdXRvIHBsYXRmb3JtRXZlbnQgPSB3
aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2ZW50KCk7CiAgICAgICAgICAgICBib29sIHNj
cm9sbGluZ1dhc0hhbmRsZWQ7CiAgICAgICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewotICAg
ICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERl
bHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOworICAgICAgICAgICAgICAg
IGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9j
aXR5KGlnbm9yZURlbHRhWCA/IDAgOiBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgaWdu
b3JlRGVsdGFZID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRW
ZWxvY2l0eSk7CiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGJveExheWVy
LT5oYW5kbGVXaGVlbEV2ZW50KGNvcGllZEV2ZW50KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVB
cmVhKCpib3hMYXllciwgd2hlZWxFdmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGlnbm9yZVJlcXVlc3QgPSB7IGlnbm9yZURlbHRhWCwgaWdub3JlRGVsdGFZIH07
CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50LCBpZ25vcmVSZXF1ZXN0KTsKKyAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRsZWQpIHsKICAgICAgICAg
ICAgICAgICBzdG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKTsKQEAg
LTM1OSw2ICszNzIsMTggQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlh
dGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICAgICAgaWYgKHN0
b3BFbGVtZW50LmdldCgpICYmIHN0b3BFbGVtZW50LmdldCgpID09IGN1cnJlbnRFbmNsb3NpbmdC
b3gtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgICAgIGJvb2wg
aXNEb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50
KCkgPT0gZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50OworICAgICAgICBpZiAoIWlzRG9jdW1lbnRT
Y3JvbGxpbmdFbGVtZW50ICYmICFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2luZ0JveC0+
c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
KQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFpc0RvY3Vt
ZW50U2Nyb2xsaW5nRWxlbWVudCAmJiAhaWdub3JlRGVsdGFZICYmIGN1cnJlbnRFbmNsb3NpbmdC
b3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6
QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWSA9IHRydWU7CisgICAgICAgIGlmIChpZ25v
cmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKSB7CisgICAgICAgICAgICAvLyBXZSBjbGFpbSB0aGF0
IHRoZSBldmVudCB3YXMgaGFuZGxlZCBzbyB0aGF0IGl0IGlzIG5vdCBwcm9wYWdhdGVkIHRvIHRo
ZSBhbmNlc3RvciBmcmFtZXMuCisgICAgICAgICAgICBpZiAoc3RvcEVsZW1lbnQpCisgICAgICAg
ICAgICAgICAgc3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCk7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGN1cnJlbnRFbmNs
b3NpbmdCb3ggPSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250YWluaW5nQmxvY2soKTsKICAgICAg
ICAgaWYgKCFjdXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmlzUmVu
ZGVyVmlldygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDUxMjdiNDkwZjQuLjIzMDQ3Mzc0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKQEAgLTQyMCw2ICs0MjAsMjQgQEAgYm9vbCBGcmFtZVZpZXc6OmRpZEZpcnN0TGF5
b3V0KCkgY29uc3QKICAgICByZXR1cm4gbGF5b3V0Q29udGV4dCgpLmRpZEZpcnN0TGF5b3V0KCk7
CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6Omhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3IoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHRoZSBpbXBhY3Qg
b2Ygb3ZlcnNjcm9sbC1iZWhhdmlvciBpcyBsaW1pdGVkIGluIGN1cnJlbnQgZnJhcm1lLgorICAg
IC8vIFNob3VsZCBvdmVyc2Nyb2xsLWJlaGF2aW9yIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgYSBz
dWJmcmFtZT8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzUxMjkK
KyAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3Vt
ZW50IHx8ICFkb2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpIHx8ICFkb2N1bWVudC0+c2Nyb2xs
aW5nRWxlbWVudCgpLT5yZW5kZXJTdHlsZSgpKQorICAgICAgICByZXR1cm4gU2Nyb2xsYWJsZUFy
ZWE6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQt
PnNjcm9sbGluZ0VsZW1lbnQoKS0+cmVuZGVyU3R5bGUoKS0+b3ZlcnNjcm9sbEJlaGF2aW9yWCgp
OworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojp2ZXJ0aWNhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpICBjb25zdAoreworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zY3JvbGxpbmdFbGVtZW50KCkg
fHwgIWRvY3VtZW50LT5zY3JvbGxpbmdFbGVtZW50KCktPnJlbmRlclN0eWxlKCkpCisgICAgICAg
IHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwor
ICAgIHJldHVybiBkb2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpLT5yZW5kZXJTdHlsZSgpLT5v
dmVyc2Nyb2xsQmVoYXZpb3JZKCk7Cit9CisKIHZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlUmVj
dChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmICghcGFyZW50KCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCmluZGV4IDllYjE5NWRkODYuLjc4ZGMxNDNhOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaApAQCAtNzQwLDYgKzc0MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1bm9ic2N1
cmVkQ29udGVudFNpemVDaGFuZ2VkKCkgZmluYWw7CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYSBp
bnRlcmZhY2UKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpIGNvbnN0IGZpbmFsOworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xs
YmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBzY3Jv
bGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2V0VmlzaWJsZVNj
cm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAppbmRleCAyMmM5ZjZhYjIzLi5iYTcyZDliNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCkBAIC02MzUsNiArNjM1LDkgQEAgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOgog
c3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogCitvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCiBDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IDYwZmI2Zjc5OTkuLjJlMDkwOGMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC03MTYsNiArNzE2LDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3JvbGxpbmcKICAgICBzY3JvbGxpbmdO
b2RlLnNldFNjcm9sbGFibGVBcmVhU2l6ZShzY3JvbGxhYmxlQXJlYS52aXNpYmxlU2l6ZSgpKTsK
IAogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJzOworICAgIHNj
cm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHNjcm9sbGFibGVB
cmVhLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICBzY3JvbGxQYXJhbWV0ZXJz
LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxF
bGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKTsK
ICAgICBzY3JvbGxQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9IHNjcm9sbGFi
bGVBcmVhLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMu
aGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Nyb2xsYmFyICYmIGhv
cml6b250YWxTY3JvbGxiYXItPmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAppbmRleCBiZDQ3
ODRiOTM4Li4zMDUwNjkwMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCkBAIC02OCw2ICs2OCw5IEBA
IGVudW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB7CiB9OwogCiBzdHJ1Y3Qg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpv
bnRhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKyAg
ICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgeyBPdmVyc2Ny
b2xsQmVoYXZpb3I6OiBBdXRvIH07CisKICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKICAgICBTY3JvbGxFbGFz
dGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAK
aW5kZXggYzJiYjE0ZTBjOC4uMWYyZmVhYzVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTEzOSw3ICsxMzksMTAgQEAgV2hlZWxF
dmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW4KICAgICAgICAgICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0g
ZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKTsKICAgICAgICAgICAg
ICAgICBhdXRvIHJlc3VsdCA9IHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2
ZW50KTsKIAotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQud2FzSGFuZGxlZCkgeworICAgICAg
ICAgICAgICAgIGJvb2wgc3RvcHBlZEJ5T3ZlcnNjcm9sbEJlaGF2aW9yID0gKHdoZWVsRXZlbnQu
ZGVsdGFYKCkgJiYgc2Nyb2xsaW5nTm9kZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
IT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgICAgICAgICB8fCAod2hl
ZWxFdmVudC5kZWx0YVkoKSAmJiBzY3JvbGxpbmdOb2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2
aW9yKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKTsKKworICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQud2FzSGFuZGxlZCB8fCBzdG9wcGVkQnlPdmVyc2Nyb2xsQmVoYXZpb3IpIHsKICAg
ICAgICAgICAgICAgICAgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIubm9kZURpZEhhbmRsZUV2ZW50
KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVsRXZlbnQsIG1fYWxsb3dMYXRj
aGluZyk7CiAgICAgICAgICAgICAgICAgICAgIG1fZ2VzdHVyZVN0YXRlLm5vZGVEaWRIYW5kbGVF
dmVudChzY3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50KTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRl
eCBjMmIxYTk5NzI1Li45ODg3MDU5ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0x
MzQsNiArMTM0LDE2IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmlzTGF0Y2hl
ZE5vZGUoKSBjb25zdAogICAgIHJldHVybiBzY3JvbGxpbmdUcmVlKCkubGF0Y2hlZE5vZGVJRCgp
ID09IHNjcm9sbGluZ05vZGVJRCgpOwogfQogCitPdmVyc2Nyb2xsQmVoYXZpb3IgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAor
eworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7
Cit9CisKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhbkhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAogewogICAgIGlm
ICghY2FuSGF2ZVNjcm9sbGJhcnMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ4ZjdjYzA3
MjcuLjc3NWIzY2EwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtMTQ2LDYgKzE0Niw4IEBA
IHByb3RlY3RlZDoKICAgICBjb25zdCBGbG9hdFNpemUmIHRvdGFsQ29udGVudHNTaXplRm9yUnVi
YmVyQmFuZCgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5k
OyB9CiAgICAgdm9pZCBzZXRUb3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoY29uc3QgRmxv
YXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQpIHsgbV90b3RhbENvbnRlbnRz
U2l6ZUZvclJ1YmJlckJhbmQgPSB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KIAor
ICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3Q7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
Y29uc3Q7CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxTY3Jv
bGxFbGFzdGljaXR5OyB9CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0
aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNh
bFNjcm9sbEVsYXN0aWNpdHk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjLmgKaW5kZXggZWFlMDkzYjFlZi4uNGY5NjMxNzI3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCkBAIC05Miw2ICs5Miw5IEBA
IHByaXZhdGU6CiAgICAgRmxvYXRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwog
I2VuZGlmCiAKKyAgICBib29sIHNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgYm9vbCBzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdCBvdmVycmlk
ZTsKKwogICAgIHZvaWQgcmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRo
cmVhZCgpOwogCiAgICAgU2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDE4ODY3
Zjk3ZTMuLjkxMDI0Y2M4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjLm1tCkBAIC0xOTcsNiArMTk3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bENvbnRyb2xsZXJUaW1lcj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6
Y3IKIAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NI
b3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
IGNvbnN0CiB7CisgICAgaWYgKHNjcm9sbGluZ05vZGUoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBzd2l0Y2ggKGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAgICBj
YXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJz
QWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIoKSB8fCAhaGFz
RW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC0yMTksNiArMjIyLDkgQEAgYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NIb3Jpem9udGFsU3RyZXRj
aGluZyhjb25zdCBQbGEKIAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50KSBjb25zdAogeworICAgIGlmIChzY3JvbGxpbmdOb2RlKCkudmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIHN3aXRjaCAodmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkpIHsK
ICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsKICAgICAgICAgYm9vbCBzY3Jv
bGxiYXJzQWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwg
IWhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CkBAIC0zODAsNiArMzg2LDE2IEBAIEZs
b2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjp2aWV3cG9ydFNp
emUoKSBjb25zdAogfQogI2VuZGlmCiAKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25zdAoreworICAgIHJl
dHVybiBzY3JvbGxpbmdOb2RlKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09IE92
ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdAoreworICAg
IHJldHVybiBzY3JvbGxpbmdOb2RlKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09
IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNv
bihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbikgY29uc3QKIHsK
ICAgICBpZiAoIXNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggMzE3YjY1MmZjZS4uMTU0YTk0NGFl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC00MCw2ICs0MCwxMiBA
QCBlbnVtIGNsYXNzIFNjcm9sbFR5cGUgOiBib29sIHsKICAgICBQcm9ncmFtbWF0aWMKIH07CiAK
K2VudW0gY2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQXV0byA9IDAs
CisgICAgQ29udGFpbiwKKyAgICBOb25lCit9OworCiBlbnVtIFNjcm9sbERpcmVjdGlvbiA6IHVp
bnQ4X3QgewogICAgIFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCA2YWVlOWFjOGFlLi5mY2NjZGViNWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTEyNSw2ICsxMjUsOSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KICAgICB2
b2lkIHNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGJvb2wgY29uc3RyYWluc1Nj
cm9sbGluZ1RvQ29udGVudEVkZ2UpIHsgbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRn
ZSA9IGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOyB9CiAKKyAgICB2aXJ0dWFsIE92
ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyBy
ZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgdmlydHVhbCBPdmVyc2Nyb2xs
QmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKwogICAgIHZvaWQgc2V0VmVydGljYWxTY3JvbGxFbGFz
dGljaXR5KFNjcm9sbEVsYXN0aWNpdHkgc2Nyb2xsRWxhc3RpY2l0eSkgeyBtX3ZlcnRpY2FsU2Ny
b2xsRWxhc3RpY2l0eSA9IHNjcm9sbEVsYXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5
IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNj
cm9sbEVsYXN0aWNpdHk+KG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggNTJm
Mjk1MzFjMy4uODQ1YTMzM2IzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtMTEzLDYgKzExMywxMSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBMYXlvdXRTaXplIHNjcm9sbEV4dGVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdCA9IDA7CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wVmVydGlj
YWxTdHJlY2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiB9OwogCiBlbnVtIGNs
YXNzIFdoZWVsRXZlbnRTdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZmZlYzQ0NTQ0Yi4uMDYyZmRkZjc4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
CkBAIC0yNDgsNyArMjQ4LDggQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBtX292ZXJmbG93U2Nyb2xsRGVs
dGEuc2V0V2lkdGgobV9vdmVyZmxvd1Njcm9sbERlbHRhLndpZHRoKCkgKyBkZWx0YVgpOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzaG91bGRTdHJldGNoID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICBpZiAoKCFkZWx0YVggfHwgIW1fY2xpZW50LnNob3VsZFN0b3BIb3Jpem9u
dGFsU3RyZWNoKCkpICYmICghZGVsdGFZIHx8ICFtX2NsaWVudC5zaG91bGRTdG9wVmVydGljYWxT
dHJlY2goKSkpCisgICAgICAgICAgICAgICAgICAgIHNob3VsZFN0cmV0Y2ggPSB0cnVlOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA2MmIyYmQyOTk5Li42NTc2N2ZhNjAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApA
QCAtMTU3LDYgKzE1Nyw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0FscmVhZHlQaW5uZWRJbkRp
cmVjdGlvbk9mR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxFdmVudEF4
aXMpIGNvbnN0OwogI2VuZGlmCiAKKyAgICBib29sIHNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNo
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBj
b25zdCBvdmVycmlkZTsKKwogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkOwog
ICAgIGJvb2wgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGU7CiAgICAgSW50UmVjdCBtX3Zpc2li
bGVTY3JvbGxlclRodW1iUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA1ZjY1MzAzY2VhLi4yNjg4NDZlY2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC0x
NTY2LDYgKzE1NjYsMTYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2V0VmlzaWJsZVNjcm9s
bGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIKICAgICBtX3Zpc2libGVT
Y3JvbGxlclRodW1iUmVjdCA9IHJlY3RJblZpZXdDb29yZGluYXRlczsKIH0KIAorYm9vbCBTY3Jv
bGxBbmltYXRvck1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25zdAoreworICAg
IHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSA9
PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6
OnNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xs
YWJsZUFyZWEudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZp
b3I6Ok5vbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKaW5kZXggNGU3MTc0NTA2Mi4uNzgxYTFiOWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zNDI3LDYgKzM0MjcsMTYgQEAgdm9pZCBSZW5kZXJMYXll
cjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAg
ICAgbV9yZXNpemVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3QpOwogfQogCitPdmVyc2Nyb2xsQmVo
YXZpb3IgUmVuZGVyTGF5ZXI6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAor
eworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWCgpOwor
fQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6OnZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCkuc3R5bGUoKS5vdmVyc2Ny
b2xsQmVoYXZpb3JZKCk7Cit9CisKIHN0YXRpYyBib29sIHNjcm9sbGJhckhpZGRlbkJ5U3R5bGUo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7CiAgICAgcmV0dXJuIHNjcm9sbGJhciAmJiBzY3JvbGxi
YXItPmlzSGlkZGVuQnlTdHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAppbmRleCA1ZjU0ZDBlYzNiLi5hZjM2ZTc0MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtNDgzLDYgKzQ4Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0hv
cml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCk7
IH0KICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gdmVydGlj
YWxTY3JvbGxiYXIoKTsgfQogCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKwogICAgIGJvb2wgaG9yaXpv
bnRhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHZlcnRp
Y2FsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDIwMmFhZGNhYWMuLmVhMmEz
YmYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNp
bmNsdWRlICJSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5j
bHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCiAjaW5jbHVkZSAi
U2hhcGVWYWx1ZS5oIgogI2luY2x1ZGUgIlN0eWxlQmFja2dyb3VuZERhdGEuaCIKQEAgLTMyNyw2
ICszMjgsOSBAQCBwdWJsaWM6CiAgICAgT3ZlcmZsb3cgb3ZlcmZsb3dJbmxpbmVEaXJlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dYKCkg
OiBvdmVyZmxvd1koKTsgfQogICAgIE92ZXJmbG93IG92ZXJmbG93QmxvY2tEaXJlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gb3ZlcmZsb3dZKCkgOiBv
dmVyZmxvd1goKTsgfQogICAgIGJvb2wgaXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdCB7IHJldHVy
biBvdmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSB8fCBvdmVyZmxvd1koKSA9PSBPdmVy
Zmxvdzo6VmlzaWJsZTsgfQorCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhh
dmlvclgoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclgpOyB9CisgICAgT3ZlcnNj
cm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3Jv
bGxCZWhhdmlvclkpOyB9CiAgICAgCiAgICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlzaWJpbGl0eT4obV9pbmhlcml0ZWRGbGFncy52aXNpYmls
aXR5KTsgfQogICAgIFZlcnRpY2FsQWxpZ24gdmVydGljYWxBbGlnbigpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PFZlcnRpY2FsQWxpZ24+KG1fbm9uSW5oZXJpdGVkRmxhZ3MudmVydGljYWxB
bGlnbik7IH0KQEAgLTg5MSw2ICs4OTUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE92ZXJm
bG93WChPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dYID0gIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0T3ZlcmZsb3dZKE92ZXJmbG93IHYp
IHsgbV9ub25Jbmhlcml0ZWRGbGFncy5vdmVyZmxvd1kgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
dik7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclgoT3ZlcnNjcm9sbEJlaGF2aW9y
IHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JY
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVo
YXZpb3JZKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVk
RGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQog
ICAgIHZvaWQgc2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5IHYpIHsgbV9pbmhlcml0ZWRGbGFncy52
aXNpYmlsaXR5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRWZXJ0
aWNhbEFsaWduKFZlcnRpY2FsQWxpZ24gdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnZlcnRpY2Fs
QWxpZ24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldFZlcnRpY2Fs
QWxpZ25MZW5ndGgoTGVuZ3RoJiYgbGVuZ3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxB
bGlnbjo6TGVuZ3RoKTsgU0VUX1ZBUihtX2JveERhdGEsIG1fdmVydGljYWxBbGlnbiwgV1RGTW92
ZShsZW5ndGgpKTsgfQpAQCAtMTQ3MCw2ICsxNDc2LDkgQEAgcHVibGljOgogICAgIC8vIEluaXRp
YWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5p
dGlhbE92ZXJmbG93WCgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOyB9CiAgICAgc3RhdGlj
IE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1koKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsg
fQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlv
clgoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICBzdGF0aWMgT3Zl
cnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkgeyByZXR1cm4gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICBzdGF0aWMgQ2xlYXIgaW5pdGlhbENsZWFy
KCkgeyByZXR1cm4gQ2xlYXI6Ok5vbmU7IH0KICAgICBzdGF0aWMgRGlzcGxheVR5cGUgaW5pdGlh
bERpc3BsYXkoKSB7IHJldHVybiBEaXNwbGF5VHlwZTo6SW5saW5lOyB9CiAgICAgc3RhdGljIEVV
bmljb2RlQmlkaSBpbml0aWFsVW5pY29kZUJpZGkoKSB7IHJldHVybiBVQk5vcm1hbDsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGE3NzExYTYzMWYuLjQ1ZTBlNWIyNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAKQEAgLTY0LDYgKzY0LDggQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBzY3JvbGxTbmFwUG9ydChT
dHlsZVNjcm9sbFNuYXBQb3J0OjpjcmVhdGUoKSkKICAgICAsIHNjcm9sbFNuYXBBcmVhKFN0eWxl
U2Nyb2xsU25hcEFyZWE6OmNyZWF0ZSgpKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZp
b3JYKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxC
ZWhhdmlvclgoKSkpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclkoKSkpCiAgICAgLCB3
aWxsQ2hhbmdlKFJlbmRlclN0eWxlOjppbml0aWFsV2lsbENoYW5nZSgpKQogICAgICwgbWFzayhG
aWxsTGF5ZXJUeXBlOjpNYXNrKQogICAgICwgbWFza0JveEltYWdlKE5pbmVQaWVjZUltYWdlOjpU
eXBlOjpNYXNrKQpAQCAtMTQwLDYgKzE0Miw4IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAg
ICAgLCBzY3JvbGxTbmFwUG9ydChvLnNjcm9sbFNuYXBQb3J0KQogICAgICwgc2Nyb2xsU25hcEFy
ZWEoby5zY3JvbGxTbmFwQXJlYSkKICNlbmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChv
Lm92ZXJzY3JvbGxCZWhhdmlvclgpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKG8ub3ZlcnNj
cm9sbEJlaGF2aW9yWSkKICAgICAsIGNvbnRlbnQoby5jb250ZW50ID8gby5jb250ZW50LT5jbG9u
ZSgpIDogbnVsbHB0cikKICAgICAsIGNvdW50ZXJEaXJlY3RpdmVzKG8uY291bnRlckRpcmVjdGl2
ZXMgPyBtYWtlVW5pcXVlPENvdW50ZXJEaXJlY3RpdmVNYXA+KCpvLmNvdW50ZXJEaXJlY3RpdmVz
KSA6IG51bGxwdHIpCiAgICAgLCBhbHRUZXh0KG8uYWx0VGV4dCkKQEAgLTIzOSw2ICsyNDMsOCBA
QCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBzY3JvbGxTbmFwUG9ydCA9PSBv
LnNjcm9sbFNuYXBQb3J0CiAgICAgICAgICYmIHNjcm9sbFNuYXBBcmVhID09IG8uc2Nyb2xsU25h
cEFyZWEKICNlbmRpZgorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JYID09IG8ub3ZlcnNj
cm9sbEJlaGF2aW9yWAorICAgICAgICAmJiBvdmVyc2Nyb2xsQmVoYXZpb3JZID09IG8ub3ZlcnNj
cm9sbEJlaGF2aW9yWQogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAg
ICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShjb3VudGVyRGlyZWN0aXZlcywgby5jb3VudGVy
RGlyZWN0aXZlcykKICAgICAgICAgJiYgYWx0VGV4dCA9PSBvLmFsdFRleHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCmluZGV4IDEyMjg3NmQwNzkuLjRmYjU3ODQ5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aApAQCAtMTMxLDYgKzEzMSw5IEBAIHB1YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlU2Nyb2xsU25h
cEFyZWE+IHNjcm9sbFNuYXBBcmVhOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xs
QmVoYXZpb3JYIDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisgICAgdW5zaWduZWQgb3ZlcnNj
cm9sbEJlaGF2aW9yWSA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorCiAgICAgc3RkOjp1bmlx
dWVfcHRyPENvbnRlbnREYXRhPiBjb250ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb3VudGVy
RGlyZWN0aXZlTWFwPiBjb3VudGVyRGlyZWN0aXZlczsKICAgICBTdHJpbmcgYWx0VGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDNh
MGQ0Yjg3MTguLjVlNzc3NjIyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjE1MCw2ICsyMTUwLDkgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPE1lZGlhU2Vzc2lvbk1ldGFkYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE1lZGlh
U2Vzc2lvbk0KIAogdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiB7CisgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLmhvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3I7CisgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yOworCiAgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLmhvcml6b250YWxTY3Jv
bGxFbGFzdGljaXR5OwogICAgIGVuY29kZXIgPDwgcGFyYW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVs
YXN0aWNpdHk7CiAKQEAgLTIxNjcsNiArMjE3MCwxMSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNj
cgogCiBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1zKQogewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1zLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bXMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0
eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
cy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBhOWY4NmQyOGY4Li5mNGVhNzU1NWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9m
ZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRl
bnRpYWxzUG9saWN5Lmg+CkBAIC04ODQsNiArODg1LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbj4gewog
CiBuYW1lc3BhY2UgV1RGIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpPdmVyc2Nyb2xsQmVoYXZpb3I+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAor
ICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvciwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xs
QmVoYXZpb3I6OkF1dG8sCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWlu
LAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgID47Cit9OworCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsKICAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgIFdlYkNvcmU6OkNvbG9yU3BhY2UsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBlMDRjYWRjYTJkLi5mNGMx
MWJmNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEz
OTMsNiArMTM5MywxMyBAQCBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBodW1h
blJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU3ludGhldGljIEVkaXRpbmcgQ29tbWFuZHMi
CiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoK
KyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIHByb3RvdHlwZSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1l
bnRhbAorCiBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZTogZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCmluZGV4IDljNWU0NTAxMjguLmE2NjZkMjlhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAg
LTIzMCwxMiArMjMwLDMxIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOwog
CiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikKKyAgICAgICAgfHwgc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxD
b250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUp
CiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxQb3NpdGlvbikKICAgICAgICAgfHwgc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlNjcm9sbE9yaWdpbikpIHsKICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IHRoaXMtPnNjcm9sbFZpZXcoKTsK
KworICAgICAgICAvLyBGSVhNRShyZGFyOi8vcHJvYmxlbS8zNDMxNTk5Nyk6IFVJU2Nyb2xsVmll
dyBzaG91bGQgaGF2ZSBzb21lIGtpbmQgb2Ygc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbC1iZWhhdmlv
ciB0byBlbmFibGUvZGlzYWJsZToKKyAgICAgICAgLy8gLSBub24tbG9jYWwgYm91bmRhcnkgZGVm
YXVsdCBhY3Rpb25zIChlLmcuIHNjcm9sbCBjaGFpbmluZykuCisgICAgICAgIC8vIC0gbG9jYWwg
Ym91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIGJvdW5jaW5nKS4KKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorICAgICAgICAvLyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFy
YW1zKSkgeworICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JIb3Jp
em9udGFsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNjcm9s
bGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKTsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJlaGF2
aW9yVmVydGljYWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQo
c2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAgLy8gfQorI2VuZGlmCisgICAgICAgIC8vIEZvciBu
b3csIHdlIG9ubHkgZGlzYWJsZSBib3VuY2luZyB3aGVuIGJvdGggb3ZlcmZsb3cteCBhbmQgb3Zl
cmZsb3cteSBhcmUgbm9uZS4KKyAgICAgICAgLy8gVUlTY3JvbGxWaWV3OjphbHdheXNCb3VuY2Uq
IGZ1bmN0aW9ucyBjYW5ub3QgaGVscCBoZXJlLgorICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVO
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9s
bGFibGVBcmVhUGFyYW1zKSkgeworICAgICAgICAgICAgc2Nyb2xsVmlldy5ib3VuY2VzID0gc2Ny
b2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpLmhvcml6b250YWxPdmVy
c2Nyb2xsQmVoYXZpb3IgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgICAgICAgICAm
JiBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkudmVydGljYWxP
dmVyc2Nyb2xsQmVoYXZpb3IgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgICAgICAg
ICA/IE5PIDogWUVTOworICAgICAgICB9CisKICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxD
b250YWluZXJMYXllcikpIHsKICAgICAgICAgICAgIGlmICghbV9zY3JvbGxWaWV3RGVsZWdhdGUp
CiAgICAgICAgICAgICAgICAgbV9zY3JvbGxWaWV3RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tTY3Jv
bGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGU6dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYmRhYTVjNzIwOS4u
MjA4ZmM0MDYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xOTEsNiArMTkxLDcgQEAKICNk
ZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2Fk
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRy
b2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxl
ZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCmluZGV4IDg2OGJjNjEwYzguLmJhMTJjOTNkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNjY3LDYgKzY2Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgQFlFUywgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJl
ZmVyZW5jZUtleSwKICNlbmRpZgogCisgICAgICAgIEBOTywgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdENTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBX
ZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSwKQEAgLTMxOTksNiAr
MzIwMCwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClvdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0T3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldE92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6
ZmxhZyBmb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXld
OworfQorCiAtIChCT09MKUNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQKIHsKICAgICByZXR1
cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkUHJlZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0ZmE3MzgzZDYzLi42MGQ0M2U5
ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTY1Myw2ICs2NTMsNyBAQCBleHRlcm4gTlNTdHJpbmcg
KldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJL
SVRfREVQUgogLSAoQk9PTCl3ZWJTUUxFbmFibGVkOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODVkNjk0M2UzNi4uNWRkOTE3MTk5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzE4MSw2ICsz
MTgxLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQog
CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyB2
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZHNFbmFibGVkKFtwcmVmZXJlbmNlcyBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNF
bmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbcHJl
ZmVyZW5jZXMgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkXSk7CiAg
ICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
W3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCA5YTg3NWQ0NzllLi5mM2Y5MjJlZWFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKQEAgLTIyMSw2ICsyMjEsOCBAQCBpbnRlcmZhY2Ug
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZTYgOiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNQogICAgIEhS
RVNVTFQgc2V0SW5zcGVjdG9yQWRkaXRpb25zRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAg
ICAgSFJFU1VMVCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7
CiAgICAgSFJFU1VMVCBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW2luXSBCT09MIGVuYWJs
ZWQpOworICAgIEhSRVNVTFQgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbb3V0LCByZXR2YWxd
IEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW2luXSBC
T09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wqKTsKICAgICBIUkVTVUxUIHNldENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMmEyMTIxYWRi
OS4uYTJmMWI4ZTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE5OCw2ICsxOTgsOCBAQAogCiAjZGVmaW5lIFdlYktp
dENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0T3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQiCisKICNkZWZpbmUgV2ViS2l0VXNlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5ICJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRSZXNvdXJjZVRp
bWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOTNkZThhMzIw
YS4uY2VlNjQ0YmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmNwcApAQCAtMzQxLDYgKzM0MSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVE
ZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENG
U1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZh
bHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxz
ZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVz
aXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0y
MjY5LDYgKzIyNzEsMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VM
VCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKiBl
bmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
KyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2Vi
UHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCBlbmFibGVkKQor
eworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVy
ZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJl
ZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxl
ZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuaAppbmRleCAyNDM3YjBlNzYyLi4yNjA0ZDllMTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2NSw2ICsyNjUsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEluc3BlY3RvckFkZGl0aW9uc0Vu
YWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZpc3Vh
bFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MKTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNl
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCop
OwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggNjdmZTY0MTM3NS4uMzljNjY5YWFhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUzMzQsNiArNTMzNCwxMSBAQCBIUkVT
VUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBu
b3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxW
aWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5v
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkK
KyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAg
cmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IGU3YzU4MzY3
ODIuLmIxYTEyMDE1ZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTEz
Niw2ICsxMzYsOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAgICAgICAgICAgYWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMgPSB2YWx1ZTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVXZWJHUFUg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIikKKyAgICAgICAg
ICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6Q1NTTG9naWNhbEVu
YWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNhbCA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6TGlu
ZUhlaWdodFVuaXRzRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBj
NWM4Yzg1OTkyLi4yY2E2MTk5NDBkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNvbG9y
RmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0Jv
dW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVXZWJHUFUgeyBmYWxzZSB9OworICAg
IGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlTGluZUhlaWdodFVuaXRzIHsg
ZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDg3YzA0ZDky
ZmEuLjI5MGE1MGM4MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KQEAgLTg4Nyw2ICs4ODcsNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxG
ZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgW3ByZWZlcmVuY2VzIHNl
dENTU1NoYWRvd1BhcnRzRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRBc3BlY3RS
YXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CisgICAgW3ByZWZlcmVu
Y2VzIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6WUVTXTsKIH0KIAogLy8gQ2FsbGVkIGJl
Zm9yZSBlYWNoIHRlc3QuCkBAIC0xMDM0LDYgKzEwMzUsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQ
cmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAg
IHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0
ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJs
ZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAgICAg
cHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOworICAgIHBy
ZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJz
Y3JvbGxCZWhhdmlvcjsKICAgICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9wdGlv
bnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJlbmNlcy5saW5lSGVpZ2h0VW5pdHNFbmFi
bGVkID0gb3B0aW9ucy5lbmFibGVMaW5lSGVpZ2h0VW5pdHM7CiAgICAgcHJlZmVyZW5jZXMuYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxl
ZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQw
YjlkOGM3ZTcuLmNjNjU3YWQ1NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcApAQCAtODA1LDYgKzgwNSw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVy
aW1lbnRhbEZlYXR1cmVzKElXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgLy8gRklY
TUU6IFdlYkdMMgogICAgIC8vIEZJWE1FOiBXZWJSVEMKICAgICBwcmVmc1ByaXZhdGUtPnNldENT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoVFJVRSk7CisgICAgcHJlZnNQcml2YXRlLT5z
ZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFRSVUUpOwogfQogCiBzdGF0aWMgdm9pZCByZXNl
dFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNlcyogcHJlZmVy
ZW5jZXMpCkBAIC05MjUsNiArOTI2LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNG
b3JUZXN0T3B0aW9ucyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBjb25zdAogICAgIHBy
ZWZlcmVuY2VzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKG9wdGlvbnMudXNlRXBoZW1lcmFs
U2Vzc2lvbik7CiAgICAgcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdlQ2FjaGUob3B0aW9ucy5lbmFi
bGVCYWNrRm9yd2FyZENhY2hlKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldENTU09NVmlld1Ntb290
aFNjcm9sbGluZ0VuYWJsZWQob3B0aW9ucy5lbmFibGVDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmcp
OworICAgIHByZWZzUHJpdmF0ZS0+c2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChvcHRpb25z
LmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFw
cGxpY2F0aW9uSWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404040</attachid>
            <date>2020-07-10 20:53:19 -0700</date>
            <delta_ts>2020-07-12 07:35:20 -0700</delta_ts>
            <desc>WIP-patch-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-006-0712.diff</filename>
            <type>text/plain</type>
            <size>62676</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44ZjlmMzRlMzk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1Bhc3MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGUgaWYg
b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCBpcyBkaXNhYmxlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1k
aXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2
aW9yLWludmFsaWRhdGUtaWYtZGlzYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmQ1YmMzNTQyYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYtZGlzYWJsZS5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ9ZmFsc2UgXSAtLT4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAg
IGlmICgib3ZlcnNjcm9sbEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5
bGUpCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiRmFpbCB0ZXN0IG92ZXJzY3JvbGxCZWhh
dmlvciBzaG91bGQgYmUgaW52YWxpZGF0ZSBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlz
IGRpc2FibGVkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgi
UGFzcyB0ZXN0IG92ZXJzY3JvbGxCZWhhdmlvciBzaG91bGQgYmUgaW52YWxpZGF0ZSBpZiBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLiIpOworCisgICAgPC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRh
dGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292
ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xMTE0NWJiNmY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxp
ZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Bhc3MgdGVzdCBvdmVy
c2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlIGlmIG92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQgaXMgZW5hYmxlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjEyNTAxN2E2NWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJl
aGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgaWYgKCJvdmVyc2Nyb2xsQmVoYXZpb3IiIGluIGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSkKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRl
KCJQYXNzIHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSB2YWxpZGF0ZSBpZiBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGRvY3VtZW50LndyaXRlKCJGYWlsIHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3Vs
ZCBiZSB2YWxpZGF0ZSBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuIik7
CisKKyAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CmluZGV4IDcyYWMxY2Rk
ZjIuLjRjNDRmZDIxZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKQEAgLTE5
Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxpbmUtd2lkdGgKIFBBU1Mgb3ZlcmZsb3ctd3JhcCAKIFBB
U1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3ZlcmZsb3cteSAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlv
ci14IAorUEFTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgCiBQQVNTIHBhZGRpbmctYmxvY2stZW5k
IAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0YXJ0IAogUEFTUyBwYWRkaW5nLWJvdHRvbSAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJl
aGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCA1MDM0MGYwMTYwLi40MzdkMTg3
NTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAogCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBoYXMgaW5pdGlhbCB2
YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggZG9lc24ndCBzZWVt
IHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXMgbm90IGluaGVy
aXQgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92
ZXJzY3JvbGwtYmVoYXZpb3IteSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBv
dmVyc2Nyb2xsLWJlaGF2aW9yLXkgZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUg
Y29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgb3Zl
cnNjcm9sbC1iZWhhdmlvci15IGRvZXMgbm90IGluaGVyaXQgYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBoYXMg
aW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXgg
ZG9lcyBub3QgaW5oZXJpdCAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci15IGhh
cyBpbml0aWFsIHZhbHVlIGF1dG8gCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3It
eSBkb2VzIG5vdCBpbmhlcml0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0
YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2UuaHRtbAppbmRleCBlNDlmYTQ5
YmM0Li5iOWRlNjgxOGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ9dHJ1ZSBdIC0tPgogPGh0
bWw+CiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2Nh
ZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CmluZGV4IDMyNGYzYzdhOTQuLjJj
ZjlkNzQxM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXht
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1s
LWV4cGVjdGVkLnR4dApAQCAtMTkzLDYgKzE5Myw4IEBAIFBBU1Mgb3V0bGluZS13aWR0aAogUEFT
UyBvdmVyZmxvdy13cmFwIAogUEFTUyBvdmVyZmxvdy14IAogUEFTUyBvdmVyZmxvdy15IAorUEFT
UyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggCitQQVNTIG92ZXJzY3JvbGwtYmVoYXZpb3IteSAKIFBB
U1MgcGFkZGluZy1ibG9jay1lbmQgCiBQQVNTIHBhZGRpbmctYmxvY2stc3RhcnQgCiBQQVNTIHBh
ZGRpbmctYm90dG9tIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAppbmRleCA1YmJhM2E4NDM1Li5hMjY2NzI5NmQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAt
MzAzNyw2ICszMDM3LDEyIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rv
cjo6dmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoY29uc3QgUmVuZGVyU3R5CiAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WCgpKTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcmZsb3dZKCkpOworICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9v
bC5jcmVhdGVWYWx1ZShzdGQ6Om1heChzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCksIHN0eWxl
Lm92ZXJzY3JvbGxCZWhhdmlvclkoKSkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFs
dWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclkoKSk7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBhZGRp
bmdPck1hcmdpblBpeGVsVmFsdWU8JlJlbmRlclN0eWxlOjpwYWRkaW5nVG9wLCAmUmVuZGVyQm94
TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ1RvcD4oc3R5bGUsIHJlbmRlcmVyKTsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IGEzYzc2Y2RkZmYuLmM1ZjI0NjE2
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZURlZnMu
aCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2lu
Y2x1ZGUgIlRoZW1lVHlwZXMuaCIKICNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgpAQCAtMjIwNSw2
ICsyMjA2LDQyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3Zl
cnNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
Cit7CisgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7
CisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpD
b250YWluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7
CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xs
QmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVy
biBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAg
ICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNv
bgppbmRleCAyYWNiMDljMTI3Li5jZmFlZmQ5NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KQEAgLTMyODksNiArMzI4OSw1MyBAQAogICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1vdmVyZmxvdy0zLyNwcm9wZGVmLW92ZXJmbG93
LXkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2
aW9yIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAg
ICAgICAibG9uZ2hhbmRzIjogWworICAgICAgICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhh
dmlvci14IiwKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJz
Y3JvbGxCZWhhdmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogewor
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6
ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3Zl
cnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3JvbGxCZWhh
dmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczov
L3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1i
ZWhhdmlvci14IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9s
bC1iZWhhdmlvci15IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAg
ICAiY29udGFpbiIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJh
dXRvIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CisgICAgICAgICAgICAgICAgInNldHRpbmdzLWZsYWciOiAib3ZlcnNjcm9sbEJlaGF2aW9yIgor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9y
LXkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAg
ICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hh
bmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBhYjBkZjdj
OGRkLi5mMmQxNGZiZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpA
QCAtMTM5Myw2ICsxMzkzLDkgQEAgcGluY2gtem9vbQogLy8gYXV0bwogc21vb3RoCiAKKy8vIG92
ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRhaW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgog
YWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRl
eCBhMDJhODE5MGI4Li4xMThhZWExMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmNwcApAQCAtMjU1LDYgKzI1NSw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFBy
b3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1
cm4gZ2V0U2hvcnRoYW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhv
dmVyZmxvd1Nob3J0aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yOgorICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhh
bmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0
VmFsdWVzKHBhZGRpbmdTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdC
bG9jazoKQEAgLTExNzcsNiArMTE3OSwxMCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1Rl
eHQoKSBjb25zdAogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAg
ICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Ny
b2xsQmVoYXZpb3JYOgorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclk6CisgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
UGFkZGluZ1JpZ2h0OgogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRl
eCA1YTdkODA0ZGFkLi5kN2NjYzFjMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgQ1NTUGFyc2VyQ29udGV4
dDo6Q1NTUGFyc2VyQ29udGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
c2hlZXRCYXMKICNlbmRpZgogICAgIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50
LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkKCk7CiAgICAgc2Nyb2xsQmVoYXZp
b3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKCk7CisgICAgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRp
bmdzKCkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFu
Y2UgPSBkb2N1bWVudC5wYWdlKCkgPyBkb2N1bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFu
Y2UoKSA6IGZhbHNlOwogfQogCkBAIC0xMDIsNiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAg
ICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJF
bmFibGVkCiAgICAgICAgICYmIGEuc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVo
YXZpb3JFbmFibGVkCiAgICAgICAgICYmIGEuaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBi
Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4KKyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkID09IGIub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVz
ZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VTeXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCmluZGV4IDc3M2I4NTQyMzAu
LjBlMzA1MmM3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIGJvb2wgZGVmZXJy
ZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5h
YmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFs
c2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0
Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNl
IH07CkBAIC0xMDksNyArMTEwLDggQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAg
ICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAg
IDw8IDExCiAjZW5kaWYKICAgICAgICAgICAgICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAg
ICAgICAgICAgICAgICAgICAgIDw8IDEyCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCisg
ICAgICAgICAgICAmIGtleS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAg
ICA8PCAxMworICAgICAgICAgICAgJiBrZXkubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPDwgMTQ7IC8vIEtlZXAgdGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdU
Rjo6aW50SGFzaChiaXRzKTsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDVkZGEy
MTJkYzcuLjgwZDYzMDUwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyRmFzdFBhdGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckZhc3RQYXRocy5jcHAKQEAgLTY4Myw2ICs2ODMsMTEgQEAgYm9vbCBDU1NQYXJzZXJG
YXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SWQKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlT3ZlcmxheTsKICAg
ICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOiAvLyB2aXNpYmxlIHwgaGlkZGVuIHwgc2Nyb2xs
IHwgYXV0byB8IG92ZXJsYXkgfCAtd2Via2l0LXBhZ2VkLXggfCAtd2Via2l0LXBhZ2VkLXkgKG92
ZXJsYXkgaXMgYSBzeW5vbnltIGZvciBhdXRvKQogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBD
U1NWYWx1ZVZpc2libGUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUhpZGRlbiB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlU2Nyb2xsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVPdmVybGF5IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRQYWdlZFggfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToK
KyAgICAgICAgaWYgKCFjb250ZXh0LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8
IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb250YWluIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlCcmVha0FmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlCcmVh
a0JlZm9yZToKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVBdm9pZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWRQYWdlIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVQYWdlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVMZWZ0IHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVSaWdodCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVjdG8gfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZVZlcnNvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdm9pZENvbHVtbiB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlQ29sdW1uOwpAQCAtOTM4LDYgKzk0Myw4IEBAIGJvb2wgQ1NTUGFy
c2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
ZCkKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyZmxvd1g6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICBjYXNlIENT
U1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNj
cm9sbEJlaGF2aW9yWToKICAgICBjYXNlIENTU1Byb3BlcnR5UG9pbnRlckV2ZW50czoKICAgICBj
YXNlIENTU1Byb3BlcnR5UG9zaXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXgg
OTk5NTVkZjUzMy4uYjM0YzYxOTJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTIzNjEsNiArMjM2MSwxNCBAQCBzdGF0aWMgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZwogICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwogfQogCitzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgp
OworICAgIGlmICh2YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVl
Tm9uZSAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlQ29udGFpbikKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Cit9CisKIHN0YXRpYyBSZWZQdHI8
Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2Us
IGNzc1BhcnNlck1vZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CkBAIC0zOTQ4LDYgKzM5NTYs
MTEgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICAgICAgICAgaWYgKCFtX2NvbnRleHQuc2Ny
b2xsQmVoYXZpb3JFbmFibGVkKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IHJldHVybiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvclk6CisgICAgICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVP
dmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAg
ICAgICAgIHJldHVybiBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRvdWNoQWN0aW9uOgpAQCAtNTUzNyw2ICs1NTUwLDM1IEBAIGJvb2wg
Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZVNlbGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRh
bnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1
bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgQVNT
RVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5s
ZW5ndGgoKSA9PSAyKTsKKyAgICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxC
ZWhhdmlvclggPSBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGlmICgh
b3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRy
PENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JZOworICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRl
c3BhY2UoKTsKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICBvdmVyc2Nyb2xsQmVo
YXZpb3JZID0gb3ZlcnNjcm9sbEJlaGF2aW9yWDsKKyAgICBlbHNlIHsKKyAgICAgICAgb3ZlcnNj
cm9sbEJlaGF2aW9yWSA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAg
ICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKCFtX3JhbmdlLmF0
RW5kKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclgsIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxC
ZWhhdmlvciwgKm92ZXJzY3JvbGxCZWhhdmlvclksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogewogICAgIHN3aXRjaCAocHJvcGVydHkp
IHsKQEAgLTU1NTcsNiArNTU5OSw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hv
cnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogICAgIH0KICAg
ICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcmZs
b3dTaG9ydGhhbmQoaW1wb3J0YW50KTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJl
aGF2aW9yOgorICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFu
ZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250OiB7CiAgICAgICAgIGNvbnN0
IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IG1fcmFuZ2UucGVlaygpOwogICAgICAgICBpZiAodG9r
ZW4uaWQoKSA+PSBDU1NWYWx1ZUNhcHRpb24gJiYgdG9rZW4uaWQoKSA8PSBDU1NWYWx1ZVN0YXR1
c0JhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaApp
bmRleCBiN2UxOWZiZDY0Li4zMDMzMjZmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC0xMTIsNiArMTEyLDggQEAgcHJpdmF0ZToKICAg
ICBib29sIGNvbnN1bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wg
Y29uc3VtZVBlcnNwZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKIAorICAgIGJvb2wgY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCk7CisKIHByaXZh
dGU6CiAgICAgLy8gSW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgbV9yYW5nZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2ZjFmMWI0YWQ4Li5mY2QwNDFjY2Fm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMDIsMTUgKzMwMiwyMiBA
QCBzdGF0aWMgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2VJblNjcm9sbGFibGVBcmVhKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYQogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBjb25z
dCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorc3RydWN0IElnbm9yZURlbHRhUmVxdWVzdCB7Cisg
ICAgYm9vbCBpZ25vcmVYIHsgZmFsc2UgfTsKKyAgICBib29sIGlnbm9yZVkgeyBmYWxzZSB9Owor
fTsKKworc3RhdGljIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJl
YSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0IEln
bm9yZURlbHRhUmVxdWVzdCYgaWdub3JlUmVxdWVzdCkKIHsKKyAgICBkb3VibGUgZGVsdGFYID0g
aWdub3JlUmVxdWVzdC5pZ25vcmVYID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFYKCk7CisgICAgZG91
YmxlIGRlbHRhWSA9IGlnbm9yZVJlcXVlc3QuaWdub3JlWSA/IDAgOiB3aGVlbEV2ZW50LmRlbHRh
WSgpOwogICAgIFNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0gd2hlZWxHcmFu
dWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkod2hlZWxFdmVudC5kZWx0YU1vZGUoKSk7CiAgICAg
Ym9vbCBkaWRIYW5kbGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0IGFic29sdXRl
RGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAgZGlkSGFuZGxl
V2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVgoKSA+
IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0
ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWCkp
CisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKGRl
bHRhWCA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5LCBh
YnNvbHV0ZURlbHRhKTsKICAgICAKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6
YWJzKHdoZWVsRXZlbnQuZGVsdGFZKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9
IHNjcm9sbGFibGVBcmVhLnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/IFNjcm9sbERv
d24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlm
IChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAgICAgZGlkSGFu
ZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwoZGVsdGFZID4gMCA/IFNjcm9s
bERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAg
IAogICAgIHJldHVybiBkaWRIYW5kbGVXaGVlbEV2ZW50OwogfQpAQCAtMzM2LDE5ICszNDMsMjUg
QEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3go
Tm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICBpZiAoIXNob3VsZEhhbmRsZUV2ZW50KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdub3JlUmVx
dWVzdDsKICAgICBpZiAoaXM8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0JveCkpCi0g
ICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGRvd25jYXN0PFJlbmRlckxp
c3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgcmV0dXJu
IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoZG93bmNhc3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlh
bEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQsIGlnbm9yZVJlcXVlc3QpOwogCiAgICAgUmVuZGVy
Qm94KiBjdXJyZW50RW5jbG9zaW5nQm94ID0gJmluaXRpYWxFbmNsb3NpbmdCb3g7CisgICAgYm9v
bCBpZ25vcmVEZWx0YVggPSBmYWxzZTsKKyAgICBib29sIGlnbm9yZURlbHRhWSA9IGZhbHNlOwor
ICAgIGF1dG8qIGRvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gt
PmRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpOwogICAgIHdoaWxlIChjdXJyZW50RW5jbG9z
aW5nQm94KSB7CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogYm94TGF5ZXIgPSBjdXJyZW50RW5j
bG9zaW5nQm94LT5sYXllcigpKSB7CiAgICAgICAgICAgICBhdXRvIHBsYXRmb3JtRXZlbnQgPSB3
aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2ZW50KCk7CiAgICAgICAgICAgICBib29sIHNj
cm9sbGluZ1dhc0hhbmRsZWQ7CiAgICAgICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewotICAg
ICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERl
bHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOworICAgICAgICAgICAgICAg
IGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9j
aXR5KGlnbm9yZURlbHRhWCA/IDAgOiBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgaWdu
b3JlRGVsdGFZID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRW
ZWxvY2l0eSk7CiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGJveExheWVy
LT5oYW5kbGVXaGVlbEV2ZW50KGNvcGllZEV2ZW50KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVB
cmVhKCpib3hMYXllciwgd2hlZWxFdmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGlnbm9yZVJlcXVlc3QgPSB7IGlnbm9yZURlbHRhWCwgaWdub3JlRGVsdGFZIH07
CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50LCBpZ25vcmVSZXF1ZXN0KTsKKyAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRsZWQpIHsKICAgICAgICAg
ICAgICAgICBzdG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmVsZW1lbnQoKTsKQEAg
LTM1OSw2ICszNzIsMTggQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlh
dGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICAgICAgaWYgKHN0
b3BFbGVtZW50LmdldCgpICYmIHN0b3BFbGVtZW50LmdldCgpID09IGN1cnJlbnRFbmNsb3NpbmdC
b3gtPmVsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgICAgIGJvb2wg
aXNEb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50
KCkgPT0gZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50OworICAgICAgICBpZiAoIWlzRG9jdW1lbnRT
Y3JvbGxpbmdFbGVtZW50ICYmICFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2luZ0JveC0+
c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
KQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFpc0RvY3Vt
ZW50U2Nyb2xsaW5nRWxlbWVudCAmJiAhaWdub3JlRGVsdGFZICYmIGN1cnJlbnRFbmNsb3NpbmdC
b3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6
QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWSA9IHRydWU7CisgICAgICAgIGlmIChpZ25v
cmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKSB7CisgICAgICAgICAgICAvLyBXZSBjbGFpbSB0aGF0
IHRoZSBldmVudCB3YXMgaGFuZGxlZCBzbyB0aGF0IGl0IGlzIG5vdCBwcm9wYWdhdGVkIHRvIHRo
ZSBhbmNlc3RvciBmcmFtZXMuCisgICAgICAgICAgICBpZiAoc3RvcEVsZW1lbnQpCisgICAgICAg
ICAgICAgICAgc3RvcEVsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCk7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGN1cnJlbnRFbmNs
b3NpbmdCb3ggPSBjdXJyZW50RW5jbG9zaW5nQm94LT5jb250YWluaW5nQmxvY2soKTsKICAgICAg
ICAgaWYgKCFjdXJyZW50RW5jbG9zaW5nQm94IHx8IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmlzUmVu
ZGVyVmlldygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDUxMjdiNDkwZjQuLmE4OGVkYjQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKQEAgLTQyMCw2ICs0MjAsMjYgQEAgYm9vbCBGcmFtZVZpZXc6OmRpZEZpcnN0TGF5
b3V0KCkgY29uc3QKICAgICByZXR1cm4gbGF5b3V0Q29udGV4dCgpLmRpZEZpcnN0TGF5b3V0KCk7
CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6Omhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3IoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHRoZSBpbXBhY3Qg
b2Ygb3ZlcnNjcm9sbC1iZWhhdmlvciBpcyBsaW1pdGVkIGluIGN1cnJlbnQgZnJhcm1lLgorICAg
IC8vIFNob3VsZCBvdmVyc2Nyb2xsLWJlaGF2aW9yIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgYSBz
dWJmcmFtZT8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzUxMjkK
KyAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICBhdXRvIHNjcm9s
bGluZ09iamVjdCA9IGRvY3VtZW50ICYmIGRvY3VtZW50LT5zY3JvbGxpbmdFbGVtZW50KCkgPyBk
b2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpLT5yZW5kZXJlcigpIDogbnVsbHB0cjsKKyAgICBp
ZiAoIXNjcm9sbGluZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCk7CisgICAgcmV0dXJuIHNjcm9sbGluZ09iamVjdC0+
c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBG
cmFtZVZpZXc6OnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgYXV0
byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0byBzY3JvbGxpbmdPYmpl
Y3QgPSBkb2N1bWVudCAmJiBkb2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpID8gZG9jdW1lbnQt
PnNjcm9sbGluZ0VsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CisgICAgaWYgKCFzY3Jv
bGxpbmdPYmplY3QpCisgICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6dmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4gc2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgpLm92
ZXJzY3JvbGxCZWhhdmlvclkoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKaW5kZXggOWViMTk1ZGQ4Ni4uNzhkYzE0M2E4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCkBAIC03NDAsNiArNzQwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVub2JzY3Vy
ZWRDb250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGlu
dGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIHNjcm9s
bFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRWaXNpYmxlU2Ny
b2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCmluZGV4IDIyYzlmNmFiMjMuLmJhNzJkOWI0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwKQEAgLTYzNSw2ICs2MzUsOSBAQCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ6CiBz
eW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAKK292ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
aW5kZXggNjBmYjZmNzk5OS4uMmUwOTA4YzExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAg
LTcxNiw2ICs3MTYsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9s
bGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwogICAgIHNjcm9sbGluZ05v
ZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZpc2libGVTaXplKCkpOwog
CiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFtZXRlcnM7CisgICAgc2Ny
b2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFy
ZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNjcm9sbFBhcmFtZXRlcnMu
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVs
YXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpOwog
ICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJs
ZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFyYW1ldGVycy5o
YXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYgaG9y
aXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IGJkNDc4
NGI5MzguLjMwNTA2OTAwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY4LDYgKzY4LDkgQEAg
ZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVjdCBT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9u
dGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworICAg
IE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3Jv
bGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNj
cm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVsYXN0
aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApp
bmRleCBjMmJiMTRlMGM4Li4xZjJmZWFjNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTM5LDcgKzEzOSwxMCBAQCBXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbgogICAgICAgICAgICAgICAgIGF1dG8mIHNjcm9sbGluZ05vZGUgPSBk
b3duY2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpOwogICAgICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZl
bnQpOwogCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC53YXNIYW5kbGVkKSB7CisgICAgICAg
ICAgICAgICAgYm9vbCBzdG9wcGVkQnlPdmVyc2Nyb2xsQmVoYXZpb3IgPSAod2hlZWxFdmVudC5k
ZWx0YVgoKSAmJiBzY3JvbGxpbmdOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAh
PSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICAgICAgICAgIHx8ICh3aGVl
bEV2ZW50LmRlbHRhWSgpICYmIHNjcm9sbGluZ05vZGUudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pOworCisgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdC53YXNIYW5kbGVkIHx8IHN0b3BwZWRCeU92ZXJzY3JvbGxCZWhhdmlvcikgewogICAg
ICAgICAgICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQo
c2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgd2hlZWxFdmVudCwgbV9hbGxvd0xhdGNo
aW5nKTsKICAgICAgICAgICAgICAgICAgICAgbV9nZXN0dXJlU3RhdGUubm9kZURpZEhhbmRsZUV2
ZW50KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVsRXZlbnQpOwogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4
IGMyYjFhOTk3MjUuLjk4ODcwNTllMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEz
NCw2ICsxMzQsMTYgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVk
Tm9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkg
PT0gc2Nyb2xsaW5nTm9kZUlEKCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3I7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVy
biBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsK
K30KKwogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CiAgICAgaWYg
KCFjYW5IYXZlU2Nyb2xsYmFycygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDhmN2NjMDcy
Ny4uNzc1YjNjYTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xNDYsNiArMTQ2LDggQEAg
cHJvdGVjdGVkOgogICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJi
ZXJCYW5kKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7
IH0KICAgICB2b2lkIHNldFRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9h
dFNpemUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNT
aXplRm9yUnViYmVyQmFuZCA9IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisg
ICAgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25z
dDsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBj
b25zdDsKICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3Rp
Y2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2Fs
U2Nyb2xsRWxhc3RpY2l0eTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMuaAppbmRleCBlYWUwOTNiMWVmLi40Zjk2MzE3MjcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTkyLDYgKzkyLDkgQEAg
cHJpdmF0ZToKICAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAorICAgIGJvb2wgc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBib29sIHNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRl
OworCiAgICAgdm9pZCByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhy
ZWFkKCk7CiAKICAgICBTY3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggMTg4Njdm
OTdlMy4uNWRjOGI3ODcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMubW0KQEAgLTE5Nyw2ICsxOTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xs
Q29udHJvbGxlclRpbWVyPiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpj
cgogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hv
cml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkg
Y29uc3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgc3dpdGNoIChob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgp
KSB7CiAgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QXV0b21hdGljOiB7CiAgICAgICAgIGJvb2wg
c2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyA9IGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFy
KCkgfHwgIWhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtMjE5LDYgKzIyMiw5IEBA
IGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpv
bnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcFZlcnRpY2Fs
U3RyZWNoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHN3aXRjaCAodmVydGljYWxT
Y3JvbGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6
IHsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZFZl
cnRpY2FsU2Nyb2xsYmFyKCkgfHwgIWhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CkBA
IC0zODAsNiArMzg2LDE2IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjp2aWV3cG9ydFNpemUoKSBjb25zdAogfQogI2VuZGlmCiAKK2Jvb2wgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJl
Y2goKSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkuaG9yaXpvbnRhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKworYm9vbCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRTdG9wVmVydGljYWxT
dHJlY2goKSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkudmVydGljYWxPdmVy
c2Nyb2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVz
dENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJl
YUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNv
biByZWFzb24pIGNvbnN0CiB7CiAgICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5n
V2hlZWxFdmVudHMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDMx
N2I2NTJmY2UuLjE1NGE5NDRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMu
aApAQCAtNDAsNiArNDAsMTIgQEAgZW51bSBjbGFzcyBTY3JvbGxUeXBlIDogYm9vbCB7CiAgICAg
UHJvZ3JhbW1hdGljCiB9OwogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4
X3QgeworICAgIEF1dG8gPSAwLAorICAgIENvbnRhaW4sCisgICAgTm9uZQorfTsKKwogZW51bSBT
Y3JvbGxEaXJlY3Rpb24gOiB1aW50OF90IHsKICAgICBTY3JvbGxVcCwKICAgICBTY3JvbGxEb3du
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNmFlZTlhYzhh
ZS4uZmNjY2RlYjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CkBAIC0xMjUsNiArMTI1LDkgQEAgcHVibGljOgogICAgIGJvb2wgY29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0Nv
bnRlbnRFZGdlOyB9CiAgICAgdm9pZCBzZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRn
ZShib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKSB7IG1fY29uc3RyYWluc1Nj
cm9sbGluZ1RvQ29udGVudEVkZ2UgPSBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsg
fQogCisgICAgdmlydHVhbCBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorICAg
IHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
Y29uc3QgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICB2b2lkIHNl
dFZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5IHNjcm9sbEVsYXN0aWNp
dHkpIHsgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxFbGFzdGljaXR5OyB9CiAg
ICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxTY3JvbGxFbGFzdGljaXR5PihtX3ZlcnRpY2FsU2Nyb2xsRWxhc3Rp
Y2l0eSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5oCmluZGV4IDUyZjI5NTMxYzMuLjg0NWEzMzNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTExMyw2ICsxMTMs
MTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBzY3JvbGxFeHRlbnQoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOwog
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BI
b3Jpem9udGFsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNl
bmRpZgogfTsKIAogZW51bSBjbGFzcyBXaGVlbEV2ZW50U3RhdHVzIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0
NGIuLjA2MmZkZGY3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMjQ4LDcgKzI0OCw4IEBAIGJvb2wgU2Nyb2xsQ29udHJv
bGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
bV9vdmVyZmxvd1Njcm9sbERlbHRhLnNldFdpZHRoKG1fb3ZlcmZsb3dTY3JvbGxEZWx0YS53aWR0
aCgpICsgZGVsdGFYKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc2hvdWxk
U3RyZXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCghZGVsdGFYIHx8ICFtX2NsaWVu
dC5zaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpKSAmJiAoIWRlbHRhWSB8fCAhbV9jbGllbnQu
c2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkpKQorICAgICAgICAgICAgICAgICAgICBzaG91bGRT
dHJldGNoID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNjJiMmJk
Mjk5OS4uNjU3NjdmYTYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwcml2YXRlOgogICAgIGJvb2wg
aXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRT
dG9wSG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkU3Rv
cFZlcnRpY2FsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBib29sIG1faGF2ZVNjcm9s
bGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlOwog
ICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggNWY2NTMwM2NlYS4u
MjY4ODQ2ZWNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbQpAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JN
YWM6OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlclRo
dW1iCiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29vcmRpbmF0
ZXM7CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFN0b3BIb3Jpem9udGFsU3Ry
ZWNoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCitib29s
IFNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdAorewor
ICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkg
PT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRlNzE3NDUwNjIuLjc4MWExYjlkM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQyNyw2ICszNDI3LDE2
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShyZWN0KTsK
IH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjp2
ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiByZW5kZXJl
cigpLnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9vbCBzY3Jv
bGxiYXJIaWRkZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIHJldHVybiBz
Y3JvbGxiYXIgJiYgc2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5bGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNWY1NGQwZWMzYi4uYWYzNmU3NDA3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ4Myw2ICs0ODMsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gaG9y
aXpvbnRhbFNjcm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNv
bnN0IHsgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJzY3JvbGxCZWhh
dmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3Zl
cnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7
CisKICAgICBib29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCAyMDJhYWRjYWFjLi5lYTJhM2JmMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdS
ZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hhZG93
RGF0YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJhY2tncm91
bmREYXRhLmgiCkBAIC0zMjcsNiArMzI4LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJm
bG93SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxv
d0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNp
YmxlKCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwg
b3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhh
dmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3Zl
cnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZp
b3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkg
dmlzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5o
ZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxp
Z24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVy
aXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTEsNiArODk1LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdz
Lm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92
ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JY
KE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwg
b3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZv
aWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFS
KG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0
PHVuc2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7
IG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsg
fQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhl
cml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAg
ICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0
aWNhbEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3Zl
cnRpY2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NzAsNiArMTQ3Niw5IEBAIHB1
YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAg
c3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6Vmlz
aWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4g
T3ZlcmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRp
YWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
OyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2
aW9yWSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGlj
IENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGlj
IERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGlu
ZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1
cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBhNzcxMWE2MzFmLi40
NWUwZTViMjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02NCw2ICs2NCw4IEBAIFN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAg
ICwgc2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBz
Y3JvbGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAg
ICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6
OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9y
WShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVo
YXZpb3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFu
Z2UoKSkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG1hc2tCb3hJbWFn
ZShOaW5lUGllY2VJbWFnZTo6VHlwZTo6TWFzaykKQEAgLTE0MCw2ICsxNDIsOCBAQCBpbmxpbmUg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25z
dCBTdHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkK
ICAgICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92
ZXJzY3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9s
bEJlaGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVu
dCA/IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZl
cyhvLmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigq
by5jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQp
CkBAIC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYg
c2Nyb2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFw
QXJlYSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJl
aGF2aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJl
aGF2aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFF
cXVpdmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRp
cmVjdGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5h
bHRUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxMjI4NzZkMDc5Li40ZmI1Nzg0OWM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEzMSw2ICsxMzEsOSBAQCBwdWJsaWM6CiAgICAgRGF0
YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisgICAg
dW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgor
ICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZp
b3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY29udGVudDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291bnRlckRpcmVjdGl2ZXM7CiAgICAg
U3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAppbmRleCAzYTBkNGI4NzE4Li41ZTc3NzYyMjhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIxNTAsNiArMjE1MCw5
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYVNlc3Npb25NZXRhZGF0YT46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBNZWRpYVNlc3Npb25NCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxh
YmxlQXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xs
YWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworICAgIGVuY29kZXIgPDwgcGFyYW1l
dGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOworICAgIGVuY29kZXIgPDwgcGFyYW1l
dGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKKwogICAgIGVuY29kZXIgPDwgcGFyYW1l
dGVycy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsKICAgICBlbmNvZGVyIDw8IHBhcmFtZXRl
cnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5OwogCkBAIC0yMTY3LDYgKzIxNzAsMTEgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBTY3IKIAogYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMmIHBhcmFtcykKIHsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy5ob3Jpem9u
dGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1zLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbXMuaG9yaXpv
bnRhbFNjcm9sbEVsYXN0aWNpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbXMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTlmODZkMjhmOC4u
ZjRlYTc1NTVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xs
VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgpAQCAtODg0LDYgKzg4NSwxNSBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRJbnN0YWxsbWVu
dENvbmZpZ3VyYXRpb24+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7CisgICAgdXNpbmcgdmFs
dWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3IsCisgICAg
V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAgIFdlYkNvcmU6Ok92ZXJzY3Jv
bGxCZWhhdmlvcjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5v
bmUKKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpD
b2xvclNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJDb3Jl
OjpDb2xvclNwYWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5k
ZXggZTA0Y2FkY2EyZC4uZjRjMTFiZjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sCkBAIC0xMzkzLDYgKzEzOTMsMTMgQEAgU3ludGhldGljRWRpdGluZ0NvbW1h
bmRzRW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFN5bnRoZXRp
YyBFZGl0aW5nIENvbW1hbmRzIgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQor
ICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJl
YWRhYmxlRGVzY3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisg
IGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoK
ICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCA5YzVlNDUwMTI4Li5hNjY2ZDI5YWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLm1tCkBAIC0yMzAsMTIgKzIzMCwzMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBT
Y3JvbAogICAgIFNldEZvclNjb3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdlKG1fdXBkYXRpbmdGcm9t
U3RhdGVOb2RlLCB0cnVlKTsKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5
ZXIpCisgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykKICAgICAgICAg
fHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0
ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVh
Y2hhYmxlQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRpb24p
CiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxPcmlnaW4pKSB7CiAgICAgICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICBVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcgPSB0
aGlzLT5zY3JvbGxWaWV3KCk7CisKKyAgICAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzQz
MTU5OTcpOiBVSVNjcm9sbFZpZXcgc2hvdWxkIGhhdmUgc29tZSBraW5kIG9mIHN1cHBvcnQgZm9y
IG92ZXJzY3JvbGwtYmVoYXZpb3IgdG8gZW5hYmxlL2Rpc2FibGU6CisgICAgICAgIC8vIC0gbm9u
LWxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBzY3JvbGwgY2hhaW5pbmcpLgor
ICAgICAgICAvLyAtIGxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBib3VuY2lu
ZykuCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgLy8gaWYgKHNjcm9sbGlu
Z1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3Zl
cnNjcm9sbEJlaGF2aW9ySG9yaXpvbnRhbCA9IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9t
V2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
KCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vICAgICBzY3JvbGxW
aWV3Lm92ZXJzY3JvbGxCZWhhdmlvclZlcnRpY2FsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlv
ckZyb21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vIH0KKyNlbmRp
ZgorICAgICAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcgd2hlbiBib3Ro
IG92ZXJmbG93LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8vIFVJU2Nyb2xs
Vmlldzo6YWx3YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4KKyAgICAgICAg
aWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgICAgIHNjcm9s
bFZpZXcuYm91bmNlcyA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6
Tm9uZQorICAgICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlv
cjo6Tm9uZQorICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAgIGlm
IChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1f
c2Nyb2xsVmlld0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRl
ID0gYWRvcHROUyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IGJkYWE1YzcyMDkuLjIwOGZjNDA2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAt
MTkxLDYgKzE5MSw3IEBACiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5
VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2Vi
S2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJu
TWVkaWFDb250cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA4NjhiYzYxMGM4Li5iYTEyYzkzZGE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
QEAgLTY2Nyw2ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIEBZRVMsIFdlYktpdFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKIAorICAgICAgICBATk8sIFdl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVT
LCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVp
cmtLZXksCkBAIC0zMTk5LDYgKzMyMDAsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3Jl
YXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0
VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9y
S2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwor
LSAodm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBb
c2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01W
aWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
NGZhNzM4M2Q2My4uNjBkNDNlOWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02NTMsNiArNjUzLDcg
QEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJu
YWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIC0gKEJPT0wpd2ViU1FMRW5hYmxlZDsKIAogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDg1ZDY5NDNl
MzYuLjVkZDkxNzE5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTMxODEsNiArMzE4MSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldo
aWxlTG9hZGluZ1F1aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5h
YmxlZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGlu
Z3Muc2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhl
dGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsK
ICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNl
cyBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
SW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggOWE4NzVk
NDc5ZS4uZjNmOTIyZWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yMjEsNiAr
MjIxLDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoW2lu
XSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtv
dXQsIHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIG92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJFU1VMVCBzZXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVT
VUxUIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCmluZGV4IDJhMjEyMWFkYjkuLmEyZjFiOGUzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xOTgsNiArMTk4LDgg
QEAKIAogI2RlZmluZSBXZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgIldlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIgog
CisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgorCiAjZGVmaW5lIFdlYktpdFVzZXJUaW1p
bmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0VXNlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZp
bmUgV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0UmVzb3Vy
Y2VUaW1pbmdFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
UHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
Y3BwCmluZGV4IDkzZGU4YTMyMGEuLmNlZTY0NGJlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTM0MSw2ICszNDEsOCBAQCB2b2lkIFdlYlByZWZl
cmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVm
ZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGRlZmF1bHRzLCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5j
ZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZh
dWx0cywgQ0ZTVFIoV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VL
ZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVs
dHMsIENGU1RSKFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZC
b29sZWFuRmFsc2UpOwpAQCAtMjI2OSw2ICsyMjcxLDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5j
ZXM6OnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJu
IFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09L
OworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOwor
fQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVk
KF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMjQzN2IwZTc2Mi4uMjYwNGQ5ZTE0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNjUsNiArMjY1
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRJ
bnNwZWN0b3JBZGRpdGlvbnNFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVu
YWJsZWQoQk9PTCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wpOwogICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChf
T3V0XyBCT09MKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDY3ZmU2NDEz
NzUuLjM5YzY2OWFhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzM0
LDYgKzUzMzQsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
SVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAg
c2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBo
ciA9IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7Cisg
ICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRP
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJp
dmF0ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAppbmRleCBlN2M1ODM2NzgyLi5iMWExMjAxNWZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCkBAIC0xMzYsNiArMTM2LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25z
KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUK
ICAgICAgICAgICAgIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzID0gdmFsdWU7CiAgICAg
ICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOldlYkdQVUVuYWJsZWQiKQogICAgICAg
ICAgICAgZW5hYmxlV2ViR1BVID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsK
KyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6T3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZCIpCisgICAgICAgICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgPSBwYXJzZUJv
b2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImlu
dGVybmFsOkNTU0xvZ2ljYWxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNTU0xvZ2ljYWwg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImludGVybmFsOkxpbmVIZWlnaHRVbml0c0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmgKaW5kZXggYzVjOGM4NTk5Mi4uMmNhNjE5OTQwZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5oCkBAIC00Nyw2ICs0Nyw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAg
ICAgYm9vbCBlbmFibGVDb2xvckZpbHRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVTZWxl
Y3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlV2Vi
R1BVIHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciB7IGZhbHNl
IH07CiAgICAgYm9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUxpbmVIZWlnaHRVbml0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25F
bmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQppbmRleCA4N2MwNGQ5MmZhLi4yOTBhNTBjODBiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04ODcsNiArODg3LDcgQEAgc3RhdGljIHZvaWQg
ZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQog
ICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQ6WUVTXTsKICAgICBbcHJl
ZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVT
XTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZ
RVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOllFU107
CiB9CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAtMTAzNCw2ICsxMDM1LDcgQEAg
c3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0
aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRp
b25zLmVuYWJsZUNvbG9yRmlsdGVyOwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1No
YWRvd0JvdW5kYXJpZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFk
b3dCb3VuZGFyaWVzOwogICAgIHByZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBvcHRpb25zLmVu
YWJsZVdlYkdQVTsKKyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0g
b3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiAgICAgcHJlZmVyZW5jZXMuQ1NTTG9n
aWNhbEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJlZmVyZW5jZXMu
bGluZUhlaWdodFVuaXRzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlTGluZUhlaWdodFVuaXRzOwog
ICAgIHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xp
Y2tBdHRyaWJ1dGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAppbmRleCBkMGI5ZDhjN2U3Li5jYzY1N2FkNTQ4IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTgwNSw2ICs4MDUsNyBAQCBzdGF0
aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZl
cmVuY2VzKQogICAgIC8vIEZJWE1FOiBXZWJHTDIKICAgICAvLyBGSVhNRTogV2ViUlRDCiAgICAg
cHJlZnNQcml2YXRlLT5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFRSVUUpOwor
ICAgIHByZWZzUHJpdmF0ZS0+c2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChUUlVFKTsKIH0K
IAogc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhJV2Vi
UHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQpAQCAtOTI1LDYgKzkyNiw3IEBAIHN0YXRpYyB2b2lk
IHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcywgY29uc3QKICAgICBwcmVmZXJlbmNlcy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChv
cHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwogICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFn
ZUNhY2hlKG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgcHJlZnNQcml2YXRl
LT5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKG9wdGlvbnMuZW5hYmxlQ1NTT01W
aWV3U21vb3RoU2Nyb2xsaW5nKTsKKyAgICBwcmVmc1ByaXZhdGUtPnNldE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQob3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKTsKIH0K
IAogc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404095</attachid>
            <date>2020-07-12 07:35:20 -0700</date>
            <delta_ts>2020-07-12 08:54:49 -0700</delta_ts>
            <desc>WIP-patch-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-007-0713.diff</filename>
            <type>text/plain</type>
            <size>62666</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNzcxNGI2OWY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGVkIGlm
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgaXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYt
ZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi5hNjc3YzRkNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgcmVzdWx0ID0gIm92ZXJzY3JvbGxCZWhhdmlvciIgaW4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgICBkb2N1bWVudC53cml0ZShg
JHtyZXN1bHR9IHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBp
ZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLmApOworCisgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3It
dmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NTUwZmY0NGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci12YWxpZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MgdGVz
dCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1l
bmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iYjUwNThk
MmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNj
cm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1lbmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciByZXN1bHQgPSAib3ZlcnNjcm9s
bEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKGAke3Jlc3VsdH0gdGVzdCBvdmVyc2Nyb2xs
QmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
IGlzIGVuYWJsZWQuYCk7CisgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwt
eG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApp
bmRleCA3MmFjMWNkZGYyLi40YzQ0ZmQyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0
ZWQudHh0CkBAIC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJm
bG93LXdyYXAgCiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJz
Y3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRk
aW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1i
b3R0b20gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggNTAzNDBm
MDE2MC4uNDM3ZDE4NzU0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXgg
aGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14
IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBk
b2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBh
c3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBw
b3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggaGFzIGluaXRpYWwgdmFsdWUgYXV0byAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9s
bC1iZWhhdmlvci14IGRvZXMgbm90IGluaGVyaXQgCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwt
YmVoYXZpb3IteSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Ny
b2xsLWJlaGF2aW9yLXkgZG9lcyBub3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVo
YXZpb3IvaW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwK
aW5kZXggZTQ5ZmE0OWJjNC4uZmRlNWRlZGVlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
aW5oZXJpdGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRy
dWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAppbmRleCAz
MjRmM2M3YTk0Li4yY2Y5ZDc0MTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXBy
b3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJv
cC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKQEAgLTE5Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxp
bmUtd2lkdGgKIFBBU1Mgb3ZlcmZsb3ctd3JhcCAKIFBBU1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3Zl
cmZsb3cteSAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci14IAorUEFTUyBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkgCiBQQVNTIHBhZGRpbmctYmxvY2stZW5kIAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0
YXJ0IAogUEFTUyBwYWRkaW5nLWJvdHRvbSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWJiYTNhODQzNS4uYTI2NjcyOTZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTMwMzcsNiArMzAzNywxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVk
U3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQog
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxv
d1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVy
biBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2
aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQ
b29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29t
QWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1Rv
cCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCBy
ZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhM2M3NmNk
ZGZmLi5jNWYyNDYxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVu
ZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0
RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24u
aCIKQEAgLTIyMDUsNiArMjIwNiw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6Vmlz
aWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKKyAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQoreworICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOworICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKKyAgICBjYXNlIE92ZXJzY3Jv
bGxCZWhhdmlvcjo6Q29udGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b250YWluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZp
b3IoKSBjb25zdAoreworICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1
cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgor
ICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0aWVzLmpzb24KaW5kZXggMmFjYjA5YzEyNy4uY2ZhZWZkOTZmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCkBAIC0zMjg5LDYgKzMyODksNTMgQEAKICAgICAgICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJv
cGRlZi1vdmVyZmxvdy15IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CisgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteCIsCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkiCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAic2V0dGluZ3Mt
ZmxhZyI6ICJvdmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
InN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50Igor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9y
LyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIs
CisgICAgICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImNv
ZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6ICJv
dmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6
IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVm
LW92ZXJzY3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAg
ICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAg
ICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1w
cm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3Jv
bGxCZWhhdmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAicGFk
ZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAg
ICAgICAgImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
aW5kZXggYWIwZGY3YzhkZC4uZjJkMTRmYmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KQEAgLTEzOTMsNiArMTM5Myw5IEBAIHBpbmNoLXpvb20KIC8vIGF1dG8KIHNt
b290aAogCisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisvLyBjb250YWluCisKIC8vIGhhbmdpbmct
cHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHAKaW5kZXggYTAyYTgxOTBiOC4uMTE4YWVhMTJlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTI1NSw2ICsyNTUsOCBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHdlYmtpdE1hcmdpbkNvbGxhcHNlU2hv
cnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJu
IGdldDJWYWx1ZXMob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldDJWYWx1ZXMob3ZlcnNjcm9sbEJl
aGF2aW9yU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAg
ICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nQmxvY2s6CkBAIC0xMTc3LDYgKzExNzksMTAgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
Zmxvd1k6CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5
T3ZlcmZsb3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQg
PSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nQm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAKaW5kZXggNWE3ZDgwNGRhZC4uZDdjY2MxYzI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC03Niw2ICs3Niw3IEBAIENT
U1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJs
ZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOwogICAg
IHNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuQ1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBk
b2N1bWVudC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VT
eXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VT
eXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZTsKIH0KIApAQCAtMTAyLDYgKzEwMyw3IEBAIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBiKQogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVy
cmVkQ1NTUGFyc2VyRW5hYmxlZAogICAgICAgICAmJiBhLnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9
PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0RvY3VtZW50U2VjdXJp
dHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCisgICAgICAgICYmIGEub3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAg
ICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRl
eCA3NzNiODU0MjMwLi4wZTMwNTJjNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckNvbnRleHQuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICBib29sIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBzY3Jv
bGxCZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgb3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBz
dXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW4geyBmYWxzZSB9OwpAQCAtMTA5LDcgKzExMCw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250
ZXh0SGFzaCB7CiAgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAxMQogI2VuZGlmCiAgICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhh
dmlvckVuYWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAxMgotICAgICAgICAgICAgJiBrZXku
bW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAg
dGhpcyBsYXN0LgorICAgICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAg
ICAgICAgICAgICAgICAgPDwgMTMKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDE0OyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAg
ICAgaGFzaCBePSBXVEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBh
dGhzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cAppbmRleCA1ZGRhMjEyZGM3Li4yZDBhNDA0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC02ODMsNiArNjgzLDExIEBAIGJv
b2wgQ1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlkCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVl
VmlzaWJsZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVTY3JvbGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZU92ZXJsYXk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WTogLy8gdmlzaWJsZSB8IGhp
ZGRlbiB8IHNjcm9sbCB8IGF1dG8gfCBvdmVybGF5IHwgLXdlYmtpdC1wYWdlZC14IHwgLXdlYmtp
dC1wYWdlZC15IChvdmVybGF5IGlzIGEgc3lub255bSBmb3IgYXV0bykKICAgICAgICAgcmV0dXJu
IHZhbHVlSUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4g
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlT3ZlcmxheSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0
UGFnZWRYIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvclk6CisgICAgICAgIGlmICghY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbnRhaW4gfHwgdmFsdWVJRCA9
PSBDU1NWYWx1ZU5vbmU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrQWZ0ZXI6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJyZWFrQmVmb3JlOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdm9pZFBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZUxlZnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJpZ2h0IHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVSZWN0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVyc28gfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZUF2b2lkQ29sdW1uIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW47CkBAIC05MzgsNiArOTQz
LDggQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXA6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZs
b3dZOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb2lu
dGVyRXZlbnRzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKICAgICBjYXNlIENTU1By
b3BlcnR5UmVzaXplOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAppbmRleCA5OTk1NWRmNTMzLi5iMzRjNjE5MmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjM2MSw2ICsyMzYx
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVTY3JvbGxCZWhh
dmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nCiAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChy
YW5nZSk7CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0g
cmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZh
bHVlSUQgIT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30K
Kwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewog
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0
aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsK
QEAgLTM5NDgsNiArMzk1NiwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2Vy
OjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgICAgICBp
ZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsK
KyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENT
U1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246CkBAIC01NTM3LDYg
KzU1NTAsMzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBsYWNlU2VsZlNob3J0
aGFuZChib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDU1NQcm9w
ZXJ0eVBhcnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9y
dGFudCkKK3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOworICAgIGlmICghbV9jb250ZXh0Lm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICht
X3JhbmdlLmF0RW5kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NW
YWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9y
YW5nZSk7CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclk7CisgICAgbV9y
YW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAg
ICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Nyb2xsQmVoYXZpb3JYOworICAgIGVsc2Ug
eworICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlv
cihtX3JhbmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAg
ICBpZiAoIW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclgsIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWCwgaW1wb3J0YW50
KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWSwgaW1wb3J0YW50
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VT
aG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAg
c3dpdGNoIChwcm9wZXJ0eSkgewpAQCAtNTU1Nyw2ICs1NTk5LDggQEAgYm9vbCBDU1NQcm9wZXJ0
eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBv
cnRhbnQpCiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0
dXJuIGNvbnN1bWVPdmVyZmxvd1Nob3J0aGFuZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6
IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7
CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgp
IDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5oCmluZGV4IGI3ZTE5ZmJkNjQuLjMwMzMyNmZmNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTExMiw2ICsxMTIs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGltcG9y
dGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRhbnQp
OwogCisgICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1w
b3J0YW50KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9rZW5S
YW5nZSBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDZmMWYx
YjRhZDguLmZjZDA0MWNjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTMwMiwxNSArMzAyLDIyIEBAIHN0YXRpYyB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZUluU2Ny
b2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhCiAjZW5kaWYKIH0KIAot
c3RhdGljIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdHJ1Y3QgSWdub3Jl
RGVsdGFSZXF1ZXN0IHsKKyAgICBib29sIGlnbm9yZVggeyBmYWxzZSB9OworICAgIGJvb2wgaWdu
b3JlWSB7IGZhbHNlIH07Cit9OworCitzdGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVB
cmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgY29uc3QgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVSZXF1ZXN0KQogeworICAg
IGRvdWJsZSBkZWx0YVggPSBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggPyAwIDogd2hlZWxFdmVudC5k
ZWx0YVgoKTsKKyAgICBkb3VibGUgZGVsdGFZID0gaWdub3JlUmVxdWVzdC5pZ25vcmVZID8gMCA6
IHdoZWVsRXZlbnQuZGVsdGFZKCk7CiAgICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVs
YXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRl
bHRhTW9kZSgpKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKLSAgICBp
ZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFYKCkpKQot
ICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbCh3aGVl
bEV2ZW50LmRlbHRhWCgpID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3Jh
bnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0g
c3RkOjphYnMoZGVsdGFYKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxh
YmxlQXJlYS5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Ny
b2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAgIGlmIChmbG9hdCBhYnNv
bHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkpCi0gICAgICAgIGRpZEhh
bmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFZ
KCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1
dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVkp
KQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbChk
ZWx0YVkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJz
b2x1dGVEZWx0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZlbnQ7CiB9CkBA
IC0zMzYsMTkgKzM0MywyNSBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3By
aWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvbnN0IFdoZQogICAgIGlmICghc2hv
dWxkSGFuZGxlRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIElnbm9yZURlbHRh
UmVxdWVzdCBpZ25vcmVSZXF1ZXN0OwogICAgIGlmIChpczxSZW5kZXJMaXN0Qm94Pihpbml0aWFs
RW5jbG9zaW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEo
ZG93bmNhc3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQp
OworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShkb3duY2FzdDxSZW5k
ZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudCwgaWdub3JlUmVxdWVz
dCk7CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xv
c2luZ0JveDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3Jl
RGVsdGFZID0gZmFsc2U7CisgICAgYXV0byogZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50ID0gY3Vy
cmVudEVuY2xvc2luZ0JveC0+ZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCk7CiAgICAgd2hp
bGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBib3hM
YXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1dG8g
cGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKICAg
ICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0
Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3Jt
RXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndp
ZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7
CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlX
aXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1E
ZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhl
aWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNI
YW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwotICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWdub3JlUmVxdWVzdCA9IHsgaWdub3JlRGVsdGFY
LCBpZ25vcmVEZWx0YVkgfTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0g
ZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdoZWVsRXZlbnQsIGlnbm9yZVJl
cXVlc3QpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFu
ZGxlZCkgewogICAgICAgICAgICAgICAgIHN0b3BFbGVtZW50ID0gY3VycmVudEVuY2xvc2luZ0Jv
eC0+ZWxlbWVudCgpOwpAQCAtMzU5LDYgKzM3MiwxOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVl
bEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvbnN0IFdo
ZQogICAgICAgICBpZiAoc3RvcEVsZW1lbnQuZ2V0KCkgJiYgc3RvcEVsZW1lbnQuZ2V0KCkgPT0g
Y3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAKKyAgICAgICAgYm9vbCBpc0RvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCA9IGN1cnJlbnRFbmNs
b3NpbmdCb3gtPmVsZW1lbnQoKSA9PSBkb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQ7CisgICAgICAg
IGlmICghaXNEb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQgJiYgIWlnbm9yZURlbHRhWCAmJiBjdXJy
ZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Ny
b2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAg
ICAgICBpZiAoIWlzRG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50ICYmICFpZ25vcmVEZWx0YVkgJiYg
Y3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFZID0gdHJ1ZTsK
KyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAmJiBpZ25vcmVEZWx0YVkpIHsKKyAgICAgICAgICAg
IC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50IHdhcyBoYW5kbGVkIHNvIHRoYXQgaXQgaXMgbm90
IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9yIGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChzdG9w
RWxlbWVudCkKKyAgICAgICAgICAgICAgICBzdG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdC
b3gtPmVsZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAg
ICAgICAgY3VycmVudEVuY2xvc2luZ0JveCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5p
bmdCbG9jaygpOwogICAgICAgICBpZiAoIWN1cnJlbnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVu
Y2xvc2luZ0JveC0+aXNSZW5kZXJWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNTEyN2I0OTBmNC4uZWJlMWM1NmIzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDIwLDYgKzQyMCwyOCBAQCBib29sIEZyYW1l
Vmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBjb25zdAogICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCku
ZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJl
bnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIGlzIGxpbWl0ZWQgaW4gY3Vy
cmVudCBmcmFybWUuCisgICAgLy8gU2hvdWxkIG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdlIHRo
ZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRy
YWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgp
OworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnNjcm9s
bGluZ0VsZW1lbnQoKSA/IGRvY3VtZW50LT5zY3JvbGxpbmdFbGVtZW50KCktPnJlbmRlcmVyKCkg
OiBudWxscHRyOworICAgIGlmICghc2Nyb2xsaW5nT2JqZWN0KQorICAgICAgICByZXR1cm4gU2Ny
b2xsYWJsZUFyZWE6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4g
c2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKK30KKworT3Zl
cnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB0aGUgaW1wYWN0IG9mIG92ZXJzY3Jv
bGwtYmVoYXZpb3IgaXMgbGltaXRlZCBpbiBjdXJyZW50IGZyYXJtZS4KKyAgICAvLyBTaG91bGQg
b3ZlcnNjcm9sbC1iZWhhdmlvciBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGEgc3ViZnJhbWU/IGh0
dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy81MTI5CisgICAgYXV0byog
ZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0byBzY3JvbGxpbmdPYmplY3Qg
PSBkb2N1bWVudCAmJiBkb2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpID8gZG9jdW1lbnQtPnNj
cm9sbGluZ0VsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CisgICAgaWYgKCFzY3JvbGxp
bmdPYmplY3QpCisgICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6dmVydGljYWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4gc2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgpLm92ZXJz
Y3JvbGxCZWhhdmlvclkoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKaW5kZXggOWViMTk1ZGQ4Ni4uNzhkYzE0M2E4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC03NDAsNiArNzQwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVub2JzY3VyZWRD
b250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGludGVy
ZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJS
ZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFRv
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRWaXNpYmxlU2Nyb2xs
ZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCmluZGV4IDIyYzlmNmFiMjMuLmJhNzJkOWI0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKQEAgLTYzNSw2ICs2MzUsOSBAQCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ6CiBzeW50
aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAKK292ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5k
ZXggNjBmYjZmNzk5OS4uMmUwOTA4YzExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTcx
Niw2ICs3MTYsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbGlu
Z05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwogICAgIHNjcm9sbGluZ05vZGUu
c2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZpc2libGVTaXplKCkpOwogCiAg
ICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFtZXRlcnM7CisgICAgc2Nyb2xs
UGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEu
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNjcm9sbFBhcmFtZXRlcnMudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0
aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAg
IHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFy
ZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFyYW1ldGVycy5oYXNF
bmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYgaG9yaXpv
bnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IGJkNDc4NGI5
MzguLjMwNTA2OTAwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY4LDYgKzY4LDkgQEAgZW51
bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVjdCBTY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFs
T3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworICAgIE92
ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxC
ZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVsYXN0aWNp
dHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRl
eCBjMmJiMTRlMGM4Li4xZjJmZWFjNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTM5LDcgKzEzOSwxMCBAQCBXaGVlbEV2ZW50
SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbgogICAgICAgICAgICAgICAgIGF1dG8mIHNjcm9sbGluZ05vZGUgPSBkb3du
Y2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpOwogICAgICAgICAgICAgICAg
IGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQp
OwogCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC53YXNIYW5kbGVkKSB7CisgICAgICAgICAg
ICAgICAgYm9vbCBzdG9wcGVkQnlPdmVyc2Nyb2xsQmVoYXZpb3IgPSAod2hlZWxFdmVudC5kZWx0
YVgoKSAmJiBzY3JvbGxpbmdOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAhPSBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICAgICAgICAgIHx8ICh3aGVlbEV2
ZW50LmRlbHRhWSgpICYmIHNjcm9sbGluZ05vZGUudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pOworCisgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdC53YXNIYW5kbGVkIHx8IHN0b3BwZWRCeU92ZXJzY3JvbGxCZWhhdmlvcikgewogICAgICAg
ICAgICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQoc2Ny
b2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgd2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5n
KTsKICAgICAgICAgICAgICAgICAgICAgbV9nZXN0dXJlU3RhdGUubm9kZURpZEhhbmRsZUV2ZW50
KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVsRXZlbnQpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGMy
YjFhOTk3MjUuLjk4ODcwNTllMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEzNCw2
ICsxMzQsMTYgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9k
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0g
c2Nyb2xsaW5nTm9kZUlEKCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3I7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiBt
X3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKK30K
KwogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CiAgICAgaWYgKCFj
YW5IYXZlU2Nyb2xsYmFycygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDhmN2NjMDcyNy4u
Nzc1YjNjYTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xNDYsNiArMTQ2LDggQEAgcHJv
dGVjdGVkOgogICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJC
YW5kKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0K
ICAgICB2b2lkIHNldFRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9hdFNp
emUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNTaXpl
Rm9yUnViYmVyQmFuZCA9IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisgICAg
T3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdDsK
KyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25z
dDsKICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVs
YXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2FsU2Ny
b2xsRWxhc3RpY2l0eTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMuaAppbmRleCBlYWUwOTNiMWVmLi40Zjk2MzE3MjcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTkyLDYgKzkyLDkgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5k
aWYKIAorICAgIGJvb2wgc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIHNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOwor
CiAgICAgdm9pZCByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFk
KCk7CiAKICAgICBTY3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggMTg4NjdmOTdl
My4uNWRjOGI3ODcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMubW0KQEAgLTE5Nyw2ICsxOTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29u
dHJvbGxlclRpbWVyPiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpjcgog
CiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6
b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29u
c3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgc3dpdGNoIChob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpKSB7
CiAgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QXV0b21hdGljOiB7CiAgICAgICAgIGJvb2wgc2Ny
b2xsYmFyc0FsbG93U3RyZXRjaGluZyA9IGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCkg
fHwgIWhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtMjE5LDYgKzIyMiw5IEBAIGJv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcFZlcnRpY2FsU3Ry
ZWNoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHN3aXRjaCAodmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsK
ICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZFZlcnRp
Y2FsU2Nyb2xsYmFyKCkgfHwgIWhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CkBAIC0z
ODAsNiArMzg2LDE2IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjp2aWV3cG9ydFNpemUoKSBjb25zdAogfQogI2VuZGlmCiAKK2Jvb2wgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2go
KSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkuaG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKworYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJl
Y2goKSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkudmVydGljYWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENv
bXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiBy
ZWFzb24pIGNvbnN0CiB7CiAgICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hl
ZWxFdmVudHMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5
cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDMxN2I2
NTJmY2UuLjE1NGE5NDRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApA
QCAtNDAsNiArNDAsMTIgQEAgZW51bSBjbGFzcyBTY3JvbGxUeXBlIDogYm9vbCB7CiAgICAgUHJv
Z3JhbW1hdGljCiB9OwogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3Qg
eworICAgIEF1dG8gPSAwLAorICAgIENvbnRhaW4sCisgICAgTm9uZQorfTsKKwogZW51bSBTY3Jv
bGxEaXJlY3Rpb24gOiB1aW50OF90IHsKICAgICBTY3JvbGxVcCwKICAgICBTY3JvbGxEb3duLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNmFlZTlhYzhhZS4u
ZmNjY2RlYjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC0xMjUsNiArMTI1LDkgQEAgcHVibGljOgogICAgIGJvb2wgY29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRl
bnRFZGdlOyB9CiAgICAgdm9pZCBzZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShi
b29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKSB7IG1fY29uc3RyYWluc1Njcm9s
bGluZ1RvQ29udGVudEVkZ2UgPSBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQog
CisgICAgdmlydHVhbCBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorICAgIHZp
cnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3QgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICB2b2lkIHNldFZl
cnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5IHNjcm9sbEVsYXN0aWNpdHkp
IHsgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxFbGFzdGljaXR5OyB9CiAgICAg
U2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxTY3JvbGxFbGFzdGljaXR5PihtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5oCmluZGV4IDUyZjI5NTMxYzMuLjg0NWEzMzNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTExMyw2ICsxMTMsMTEg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBzY3JvbGxFeHRlbnQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOwogI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BIb3Jp
em9udGFsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRp
ZgogfTsKIAogZW51bSBjbGFzcyBXaGVlbEV2ZW50U3RhdHVzIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0NGIu
LjA2MmZkZGY3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Nj
cm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5tbQpAQCAtMjQ4LDcgKzI0OCw4IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxl
cjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgbV9v
dmVyZmxvd1Njcm9sbERlbHRhLnNldFdpZHRoKG1fb3ZlcmZsb3dTY3JvbGxEZWx0YS53aWR0aCgp
ICsgZGVsdGFYKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc2hvdWxkU3Ry
ZXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCghZGVsdGFYIHx8ICFtX2NsaWVudC5z
aG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpKSAmJiAoIWRlbHRhWSB8fCAhbV9jbGllbnQuc2hv
dWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkpKQorICAgICAgICAgICAgICAgICAgICBzaG91bGRTdHJl
dGNoID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5
OS4uNjU3NjdmYTYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNB
bHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRTdG9w
SG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkU3RvcFZl
cnRpY2FsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBib29sIG1faGF2ZVNjcm9sbGVk
U2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlOwogICAg
IEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggNWY2NTMwM2NlYS4uMjY4
ODQ2ZWNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5tbQpAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6
OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlclRodW1i
CiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7
CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNo
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCitib29sIFNj
cm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdAoreworICAg
IHJldHVybiBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRlNzE3NDUwNjIuLjc4MWExYjlkM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQyNyw2ICszNDI3LDE2IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShyZWN0KTsKIH0K
IAorT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3Jv
bGxCZWhhdmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjp2ZXJ0
aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigp
LnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9vbCBzY3JvbGxi
YXJIaWRkZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIHJldHVybiBzY3Jv
bGxiYXIgJiYgc2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKaW5kZXggNWY1NGQwZWMzYi4uYWYzNmU3NDA3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ4Myw2ICs0ODMsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gaG9yaXpv
bnRhbFNjcm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0
IHsgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNj
cm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisK
ICAgICBib29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAy
MDJhYWRjYWFjLi5lYTJhM2JmMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxl
Q29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdSZW5k
ZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0
YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJhY2tncm91bmRE
YXRhLmgiCkBAIC0zMjcsNiArMzI4LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93
SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Js
b2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxl
KCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3Zl
cmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNj
cm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JY
KTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlz
aWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJp
dGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24o
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRl
ZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTEsNiArODk1LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92
ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJm
bG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92
ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3Zl
cnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQg
c2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1f
cmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVu
c2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1f
aW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQog
ICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0
ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAg
dm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNh
bEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRp
Y2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NzAsNiArMTQ3Niw5IEBAIHB1Ymxp
YzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3Rh
dGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJs
ZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3Zl
cmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxP
dmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9
CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9y
WSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENs
ZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERp
c3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsg
fQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4g
VUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBhNzcxMWE2MzFmLi40NWUw
ZTViMjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02NCw2ICs2NCw4IEBAIFN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwg
c2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3Jv
bGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwg
b3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6Omlu
aXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZp
b3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2Uo
KSkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG1hc2tCb3hJbWFnZShO
aW5lUGllY2VJbWFnZTo6VHlwZTo6TWFzaykKQEAgLTE0MCw2ICsxNDIsOCBAQCBpbmxpbmUgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBT
dHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAg
ICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJz
Y3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJl
aGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/
IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhv
LmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5j
b3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBA
IC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Ny
b2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJl
YSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVp
dmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVj
dGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRU
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxMjI4NzZkMDc5Li40ZmI1Nzg0OWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmgKQEAgLTEzMSw2ICsxMzEsOSBAQCBwdWJsaWM6CiAgICAgRGF0YVJl
ZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisgICAgdW5z
aWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorICAg
IHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IK
KwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY29udGVudDsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291bnRlckRpcmVjdGl2ZXM7CiAgICAgU3Ry
aW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCAzYTBkNGI4NzE4Li41ZTc3NzYyMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIxNTAsNiArMjE1MCw5IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYVNlc3Npb25NZXRhZGF0YT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBNZWRpYVNlc3Npb25NCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKKwogICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsKICAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMu
dmVydGljYWxTY3JvbGxFbGFzdGljaXR5OwogCkBAIC0yMTY3LDYgKzIxNzAsMTEgQEAgdm9pZCBB
cmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBTY3IKIAogYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMmIHBhcmFtcykKIHsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy5ob3Jpem9udGFs
T3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1zLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbXMuaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbXMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTlmODZkMjhmOC4uZjRl
YTc1NTVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlw
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgpAQCAtODg0LDYgKzg4NSwxNSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRJbnN0YWxsbWVudENv
bmZpZ3VyYXRpb24+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3IsCisgICAgV2Vi
Q29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvcjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUK
KyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb2xv
clNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJDb3JlOjpD
b2xvclNwYWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXgg
ZTA0Y2FkY2EyZC4uZjRjMTFiZjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCkBAIC0xMzkzLDYgKzEzOTMsMTMgQEAgU3ludGhldGljRWRpdGluZ0NvbW1hbmRz
RW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFN5bnRoZXRpYyBF
ZGl0aW5nIENvbW1hbmRzIgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBo
dW1hblJlYWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisgIGNh
dGVnb3J5OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAg
dHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCA5YzVlNDUwMTI4Li5hNjY2ZDI5YWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLm1tCkBAIC0yMzAsMTIgKzIzMCwzMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3Jv
bAogICAgIFNldEZvclNjb3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdlKG1fdXBkYXRpbmdGcm9tU3Rh
dGVOb2RlLCB0cnVlKTsKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIp
CisgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykKICAgICAgICAgfHwg
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVhY2hh
YmxlQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRpb24pCiAg
ICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxPcmlnaW4pKSB7CiAgICAgICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgICAgICBVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcgPSB0aGlz
LT5zY3JvbGxWaWV3KCk7CisKKyAgICAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzQzMTU5
OTcpOiBVSVNjcm9sbFZpZXcgc2hvdWxkIGhhdmUgc29tZSBraW5kIG9mIHN1cHBvcnQgZm9yIG92
ZXJzY3JvbGwtYmVoYXZpb3IgdG8gZW5hYmxlL2Rpc2FibGU6CisgICAgICAgIC8vIC0gbm9uLWxv
Y2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBzY3JvbGwgY2hhaW5pbmcpLgorICAg
ICAgICAvLyAtIGxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBib3VuY2luZyku
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgLy8gaWYgKHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3ZlcnNj
cm9sbEJlaGF2aW9ySG9yaXpvbnRhbCA9IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2Vi
S2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCku
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vICAgICBzY3JvbGxWaWV3
Lm92ZXJzY3JvbGxCZWhhdmlvclZlcnRpY2FsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZy
b21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vIH0KKyNlbmRpZgor
ICAgICAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcgd2hlbiBib3RoIG92
ZXJmbG93LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8vIFVJU2Nyb2xsVmll
dzo6YWx3YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4KKyAgICAgICAgaWYg
KHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgICAgIHNjcm9sbFZp
ZXcuYm91bmNlcyA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMo
KS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZQorICAgICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6
Tm9uZQorICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Ny
b2xsVmlld0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0g
YWRvcHROUyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdp
dGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmlu
ZGV4IGJkYWE1YzcyMDkuLjIwOGZjNDA2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTkx
LDYgKzE5MSw3IEBACiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBs
b2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVk
aWFDb250cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA4NjhiYzYxMGM4Li5iYTEyYzkzZGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAg
LTY2Nyw2ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIEBZRVMsIFdlYktpdFZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKIAorICAgICAgICBATk8sIFdlYktp
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
QE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwK
ICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtL
ZXksCkBAIC0zMTk5LDYgKzMyMDAsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRv
cklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Vmlz
dWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5
OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAo
dm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2Vs
ZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNGZh
NzM4M2Q2My4uNjBkNDNlOWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02NTMsNiArNjUzLDcgQEAg
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxO
b3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIC0gKEJPT0wpd2ViU1FMRW5hYmxlZDsKIAogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDg1ZDY5NDNlMzYu
LjVkZDkxNzE5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KQEAgLTMxODEsNiArMzE4MSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxl
TG9hZGluZ1F1aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Mu
c2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGlj
RWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAg
ICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggOWE4NzVkNDc5
ZS4uZjNmOTIyZWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yMjEsNiArMjIx
LDggQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU2IDogSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTUKICAgICBIUkVTVUxUIHNldEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoW2luXSBC
T09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtvdXQs
IHJldHZhbF0gQk9PTCopOwogICAgIEhSRVNVTFQgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVk
KFtpbl0gQk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJFU1VMVCBzZXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxU
IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IDJhMjEyMWFkYjkuLmEyZjFiOGUzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xOTgsNiArMTk4LDggQEAK
IAogI2RlZmluZSBXZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZFByZWZl
cmVuY2VLZXkgIldlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIgogCisj
ZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJL
aXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgorCiAjZGVmaW5lIFdlYktpdFVzZXJUaW1pbmdF
bmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0VXNlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUg
V2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0UmVzb3VyY2VU
aW1pbmdFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CmluZGV4IDkzZGU4YTMyMGEuLmNlZTY0NGJlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTM0MSw2ICszNDEsOCBAQCB2b2lkIFdlYlByZWZlcmVu
Y2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJl
bmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRl
ZmF1bHRzLCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtl
eSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0
cywgQ0ZTVFIoV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBrQ0ZCb29sZWFuRmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMs
IENGU1RSKFdlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuRmFsc2UpOwpAQCAtMjI2OSw2ICsyMjcxLDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6
OnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJl
dHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0T3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOwor
fQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
KEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQor
CiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9P
dXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggMjQzN2IwZTc2Mi4uMjYwNGQ5ZTE0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNjUsNiArMjY1LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRJbnNw
ZWN0b3JBZGRpdGlvbnNFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJs
ZWQoQk9PTCk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG92ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wpOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
c2V0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0
XyBCT09MKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDY3ZmU2NDEzNzUu
LjM5YzY2OWFhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzM0LDYg
KzUzMzQsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdl
Yk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0
dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9
IHByZWZzUHJpdmF0ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7CisgICAg
aWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJpdmF0
ZS0+Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxF
RChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cAppbmRleCBlN2M1ODM2NzgyLi5iMWExMjAxNWZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwCkBAIC0xMzYsNiArMTM2LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNv
bnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAg
ICAgICAgICAgIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzID0gdmFsdWU7CiAgICAgICAg
IGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOldlYkdQVUVuYWJsZWQiKQogICAgICAgICAg
ICAgZW5hYmxlV2ViR1BVID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAg
ICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6T3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZCIpCisgICAgICAgICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgPSBwYXJzZUJvb2xl
YW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVy
bmFsOkNTU0xvZ2ljYWxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNTU0xvZ2ljYWwgPSBw
YXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkg
PT0gImludGVybmFsOkxpbmVIZWlnaHRVbml0c0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmgKaW5kZXggYzVjOGM4NTk5Mi4uMmNhNjE5OTQwZCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oCkBAIC00Nyw2ICs0Nyw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAg
Ym9vbCBlbmFibGVDb2xvckZpbHRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVTZWxlY3Rp
b25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViR1BV
IHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciB7IGZhbHNlIH07
CiAgICAgYm9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUxp
bmVIZWlnaHRVbml0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQppbmRleCA4N2MwNGQ5MmZhLi4yOTBhNTBjODBiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04ODcsNiArODg3LDcgQEAgc3RhdGljIHZvaWQgZW5h
YmxlRXhwZXJpbWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAg
IFtwcmVmZXJlbmNlcyBzZXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVy
ZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsK
ICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNd
OworICAgIFtwcmVmZXJlbmNlcyBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOllFU107CiB9
CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAtMTAzNCw2ICsxMDM1LDcgQEAgc3Rh
dGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9u
cyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZUNvbG9yRmlsdGVyOwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRv
d0JvdW5kYXJpZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dC
b3VuZGFyaWVzOwogICAgIHByZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBvcHRpb25zLmVuYWJs
ZVdlYkdQVTsKKyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiAgICAgcHJlZmVyZW5jZXMuQ1NTTG9naWNh
bEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJlZmVyZW5jZXMubGlu
ZUhlaWdodFVuaXRzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlTGluZUhlaWdodFVuaXRzOwogICAg
IHByZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tB
dHRyaWJ1dGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJU
cmVlLmNwcAppbmRleCBkMGI5ZDhjN2U3Li4yODJhYzY0ZDFjIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTgwNSw2ICs4MDUsNyBAQCBzdGF0aWMg
dm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVu
Y2VzKQogICAgIC8vIEZJWE1FOiBXZWJHTDIKICAgICAvLyBGSVhNRTogV2ViUlRDCiAgICAgcHJl
ZnNQcml2YXRlLT5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFRSVUUpOworICAg
IHByZWZzUHJpdmF0ZS0+c2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChUUlVFKTsKIH0KIAog
c3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhJV2ViUHJl
ZmVyZW5jZXMqIHByZWZlcmVuY2VzKQpAQCAtOTI1LDYgKzkyNiw3IEBAIHN0YXRpYyB2b2lkIHNl
dFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNl
cywgY29uc3QKICAgICBwcmVmZXJlbmNlcy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChvcHRp
b25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwogICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNh
Y2hlKG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgcHJlZnNQcml2YXRlLT5z
ZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nKTsKKyAgICBwcmVmc1ByaXZhdGUtPnNldE92ZXJzY3JvbGxCZWhhdmlv
ckVuYWJsZWQob3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IpOwogfQogCiBzdGF0aWMg
U3RyaW5nIGFwcGxpY2F0aW9uSWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404100</attachid>
            <date>2020-07-12 08:54:49 -0700</date>
            <delta_ts>2020-08-31 22:48:39 -0700</delta_ts>
            <desc>WIP-patch-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-008-0713.diff</filename>
            <type>text/plain</type>
            <size>62165</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNzcxNGI2OWY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGVkIGlm
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgaXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYt
ZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi5hNjc3YzRkNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgcmVzdWx0ID0gIm92ZXJzY3JvbGxCZWhhdmlvciIgaW4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgICBkb2N1bWVudC53cml0ZShg
JHtyZXN1bHR9IHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBp
ZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLmApOworCisgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3It
dmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NTUwZmY0NGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci12YWxpZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MgdGVz
dCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1l
bmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iYjUwNThk
MmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNj
cm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1lbmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciByZXN1bHQgPSAib3ZlcnNjcm9s
bEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKGAke3Jlc3VsdH0gdGVzdCBvdmVyc2Nyb2xs
QmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
IGlzIGVuYWJsZWQuYCk7CisgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwt
eG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApp
bmRleCA3MmFjMWNkZGYyLi40YzQ0ZmQyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0
ZWQudHh0CkBAIC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJm
bG93LXdyYXAgCiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJz
Y3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRk
aW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1i
b3R0b20gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggNTAzNDBm
MDE2MC4uNDM3ZDE4NzU0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXgg
aGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14
IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBk
b2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBh
c3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBw
b3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggaGFzIGluaXRpYWwgdmFsdWUgYXV0byAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9s
bC1iZWhhdmlvci14IGRvZXMgbm90IGluaGVyaXQgCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwt
YmVoYXZpb3IteSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Ny
b2xsLWJlaGF2aW9yLXkgZG9lcyBub3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVo
YXZpb3IvaW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwK
aW5kZXggZTQ5ZmE0OWJjNC4uZmRlNWRlZGVlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
aW5oZXJpdGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRy
dWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAppbmRleCAz
MjRmM2M3YTk0Li4yY2Y5ZDc0MTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXBy
b3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJv
cC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKQEAgLTE5Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxp
bmUtd2lkdGgKIFBBU1Mgb3ZlcmZsb3ctd3JhcCAKIFBBU1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3Zl
cmZsb3cteSAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci14IAorUEFTUyBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkgCiBQQVNTIHBhZGRpbmctYmxvY2stZW5kIAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0
YXJ0IAogUEFTUyBwYWRkaW5nLWJvdHRvbSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWJiYTNhODQzNS4uYTI2NjcyOTZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTMwMzcsNiArMzAzNywxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVk
U3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQog
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxv
d1goKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVy
biBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2
aW9yWCgpLCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQ
b29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29t
QWRqdXN0ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1Rv
cCwgJlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCBy
ZW5kZXJlcik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhM2M3NmNk
ZGZmLi5jNWYyNDYxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVu
ZGVyU3R5bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0
RmxhZ3MuaCIKICNpbmNsdWRlICJUaGVtZVR5cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24u
aCIKQEAgLTIyMDUsNiArMjIwNiw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6Vmlz
aWJsZTsKIH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKKyAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQoreworICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOworICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKKyAgICBjYXNlIE92ZXJzY3Jv
bGxCZWhhdmlvcjo6Q29udGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b250YWluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZp
b3IoKSBjb25zdAoreworICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1
cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgor
ICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0aWVzLmpzb24KaW5kZXggMmFjYjA5YzEyNy4uY2ZhZWZkOTZmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCkBAIC0zMjg5LDYgKzMyODksNTMgQEAKICAgICAgICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJv
cGRlZi1vdmVyZmxvdy15IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib3Zl
cnNjcm9sbC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7
CisgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteCIsCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkiCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAic2V0dGluZ3Mt
ZmxhZyI6ICJvdmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
InN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50Igor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9y
LyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVz
IjogWworICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIs
CisgICAgICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImNv
ZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6ICJv
dmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6
IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVm
LW92ZXJzY3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAg
ICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisg
ICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAg
ICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1w
cm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3Jv
bGxCZWhhdmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJo
dHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNj
cm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAicGFk
ZGluZyI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAg
ICAgICAgImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
aW5kZXggYWIwZGY3YzhkZC4uZjJkMTRmYmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KQEAgLTEzOTMsNiArMTM5Myw5IEBAIHBpbmNoLXpvb20KIC8vIGF1dG8KIHNt
b290aAogCisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisvLyBjb250YWluCisKIC8vIGhhbmdpbmct
cHVuY3R1YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHAKaW5kZXggYTAyYTgxOTBiOC4uMTE4YWVhMTJlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTI1NSw2ICsyNTUsOCBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHdlYmtpdE1hcmdpbkNvbGxhcHNlU2hv
cnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJu
IGdldDJWYWx1ZXMob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldDJWYWx1ZXMob3ZlcnNjcm9sbEJl
aGF2aW9yU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAg
ICByZXR1cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nQmxvY2s6CkBAIC0xMTc3LDYgKzExNzksMTAgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVy
Zmxvd1k6CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5
T3ZlcmZsb3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQg
PSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nQm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAKaW5kZXggNWE3ZDgwNGRhZC4uZDdjY2MxYzI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC03Niw2ICs3Niw3IEBAIENT
U1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJs
ZWQgPSBkb2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOwogICAg
IHNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuQ1NTT01WaWV3U21v
b3RoU2Nyb2xsaW5nRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBk
b2N1bWVudC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VT
eXN0ZW1BcHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VT
eXN0ZW1BcHBlYXJhbmNlKCkgOiBmYWxzZTsKIH0KIApAQCAtMTAyLDYgKzEwMyw3IEBAIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBiKQogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVy
cmVkQ1NTUGFyc2VyRW5hYmxlZAogICAgICAgICAmJiBhLnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9
PSBiLnNjcm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0RvY3VtZW50U2VjdXJp
dHlPcmlnaW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCisgICAgICAgICYmIGEub3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAg
ICAgICAgJiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRl
eCA3NzNiODU0MjMwLi4wZTMwNTJjNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckNvbnRleHQuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICBib29sIGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBzY3Jv
bGxCZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgb3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBz
dXBwb3J0IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW4geyBmYWxzZSB9OwpAQCAtMTA5LDcgKzExMCw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250
ZXh0SGFzaCB7CiAgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAg
ICAgICAgICAgICAgICA8PCAxMQogI2VuZGlmCiAgICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhh
dmlvckVuYWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAxMgotICAgICAgICAgICAgJiBrZXku
bW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAg
dGhpcyBsYXN0LgorICAgICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAg
ICAgICAgICAgICAgICAgPDwgMTMKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDE0OyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAg
ICAgaGFzaCBePSBXVEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBh
dGhzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cAppbmRleCA1ZGRhMjEyZGM3Li4yZDBhNDA0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC02ODMsNiArNjgzLDExIEBAIGJv
b2wgQ1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlkCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVl
VmlzaWJsZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVTY3JvbGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZU92ZXJsYXk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WTogLy8gdmlzaWJsZSB8IGhp
ZGRlbiB8IHNjcm9sbCB8IGF1dG8gfCBvdmVybGF5IHwgLXdlYmtpdC1wYWdlZC14IHwgLXdlYmtp
dC1wYWdlZC15IChvdmVybGF5IGlzIGEgc3lub255bSBmb3IgYXV0bykKICAgICAgICAgcmV0dXJu
IHZhbHVlSUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4g
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlT3ZlcmxheSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0
UGFnZWRYIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvclk6CisgICAgICAgIGlmICghY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdmFsdWVJRCA9
PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbnRhaW4gfHwgdmFsdWVJRCA9
PSBDU1NWYWx1ZU5vbmU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrQWZ0ZXI6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJyZWFrQmVmb3JlOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdm9pZFBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZUxlZnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJpZ2h0IHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVSZWN0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVyc28gfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZUF2b2lkQ29sdW1uIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW47CkBAIC05MzgsNiArOTQz
LDggQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXA6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZs
b3dZOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb2lu
dGVyRXZlbnRzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKICAgICBjYXNlIENTU1By
b3BlcnR5UmVzaXplOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAppbmRleCA5OTk1NWRmNTMzLi5iMzRjNjE5MmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjM2MSw2ICsyMzYx
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVTY3JvbGxCZWhh
dmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nCiAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChy
YW5nZSk7CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0g
cmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZh
bHVlSUQgIT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30K
Kwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewog
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0
aE9yUGVyY2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsK
QEAgLTM5NDgsNiArMzk1NiwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2Vy
OjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgICAgICBp
ZiAoIW1fY29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsK
KyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENT
U1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246CkBAIC01NTM3LDYg
KzU1NTAsMzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBsYWNlU2VsZlNob3J0
aGFuZChib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDU1NQcm9w
ZXJ0eVBhcnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9y
dGFudCkKK3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVy
c2Nyb2xsQmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOworICAgIGlmICghbV9jb250ZXh0Lm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICht
X3JhbmdlLmF0RW5kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NW
YWx1ZT4gb3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9y
YW5nZSk7CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclk7CisgICAgbV9y
YW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAg
ICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Nyb2xsQmVoYXZpb3JYOworICAgIGVsc2Ug
eworICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlv
cihtX3JhbmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAg
ICBpZiAoIW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclgsIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWCwgaW1wb3J0YW50
KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksIENTU1By
b3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWSwgaW1wb3J0YW50
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VT
aG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAg
c3dpdGNoIChwcm9wZXJ0eSkgewpAQCAtNTU1Nyw2ICs1NTk5LDggQEAgYm9vbCBDU1NQcm9wZXJ0
eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBv
cnRhbnQpCiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0
dXJuIGNvbnN1bWVPdmVyZmxvd1Nob3J0aGFuZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9s
bEJlaGF2aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6
IHsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7
CiAgICAgICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgp
IDw9IENTU1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5oCmluZGV4IGI3ZTE5ZmJkNjQuLjMwMzMyNmZmNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTExMiw2ICsxMTIs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGltcG9y
dGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRhbnQp
OwogCisgICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1w
b3J0YW50KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9rZW5S
YW5nZSBtX3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDZmMWYx
YjRhZDguLmZjZDA0MWNjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTMwMiwxNSArMzAyLDIyIEBAIHN0YXRpYyB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZUluU2Ny
b2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhCiAjZW5kaWYKIH0KIAot
c3RhdGljIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdHJ1Y3QgSWdub3Jl
RGVsdGFSZXF1ZXN0IHsKKyAgICBib29sIGlnbm9yZVggeyBmYWxzZSB9OworICAgIGJvb2wgaWdu
b3JlWSB7IGZhbHNlIH07Cit9OworCitzdGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVB
cmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgY29uc3QgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVSZXF1ZXN0KQogeworICAg
IGRvdWJsZSBkZWx0YVggPSBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggPyAwIDogd2hlZWxFdmVudC5k
ZWx0YVgoKTsKKyAgICBkb3VibGUgZGVsdGFZID0gaWdub3JlUmVxdWVzdC5pZ25vcmVZID8gMCA6
IHdoZWVsRXZlbnQuZGVsdGFZKCk7CiAgICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVs
YXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRl
bHRhTW9kZSgpKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKLSAgICBp
ZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFYKCkpKQot
ICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbCh3aGVl
bEV2ZW50LmRlbHRhWCgpID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3Jh
bnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0g
c3RkOjphYnMoZGVsdGFYKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxh
YmxlQXJlYS5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Ny
b2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAgIGlmIChmbG9hdCBhYnNv
bHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkpCi0gICAgICAgIGRpZEhh
bmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFZ
KCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1
dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVkp
KQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbChk
ZWx0YVkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJz
b2x1dGVEZWx0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZlbnQ7CiB9CkBA
IC0zMzYsMTkgKzM0MywyNSBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3By
aWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvbnN0IFdoZQogICAgIGlmICghc2hv
dWxkSGFuZGxlRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIElnbm9yZURlbHRh
UmVxdWVzdCBpZ25vcmVSZXF1ZXN0OwogICAgIGlmIChpczxSZW5kZXJMaXN0Qm94Pihpbml0aWFs
RW5jbG9zaW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEo
ZG93bmNhc3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQp
OworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShkb3duY2FzdDxSZW5k
ZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudCwgaWdub3JlUmVxdWVz
dCk7CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xv
c2luZ0JveDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3Jl
RGVsdGFZID0gZmFsc2U7CisgICAgYXV0byogZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50ID0gY3Vy
cmVudEVuY2xvc2luZ0JveC0+ZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCk7CiAgICAgd2hp
bGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBib3hM
YXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1dG8g
cGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKICAg
ICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0
Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3Jt
RXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndp
ZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7
CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlX
aXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1E
ZWx0YS53aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhl
aWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNI
YW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwotICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNj
cm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWdub3JlUmVxdWVzdCA9IHsgaWdub3JlRGVsdGFY
LCBpZ25vcmVEZWx0YVkgfTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0g
ZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdoZWVsRXZlbnQsIGlnbm9yZVJl
cXVlc3QpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFu
ZGxlZCkgewogICAgICAgICAgICAgICAgIHN0b3BFbGVtZW50ID0gY3VycmVudEVuY2xvc2luZ0Jv
eC0+ZWxlbWVudCgpOwpAQCAtMzU5LDYgKzM3MiwxOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVl
bEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvbnN0IFdo
ZQogICAgICAgICBpZiAoc3RvcEVsZW1lbnQuZ2V0KCkgJiYgc3RvcEVsZW1lbnQuZ2V0KCkgPT0g
Y3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAKKyAgICAgICAgYm9vbCBpc0RvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCA9IGN1cnJlbnRFbmNs
b3NpbmdCb3gtPmVsZW1lbnQoKSA9PSBkb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQ7CisgICAgICAg
IGlmICghaXNEb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQgJiYgIWlnbm9yZURlbHRhWCAmJiBjdXJy
ZW50RW5jbG9zaW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Ny
b2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVEZWx0YVggPSB0cnVlOworICAg
ICAgICBpZiAoIWlzRG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50ICYmICFpZ25vcmVEZWx0YVkgJiYg
Y3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGFZID0gdHJ1ZTsK
KyAgICAgICAgaWYgKGlnbm9yZURlbHRhWCAmJiBpZ25vcmVEZWx0YVkpIHsKKyAgICAgICAgICAg
IC8vIFdlIGNsYWltIHRoYXQgdGhlIGV2ZW50IHdhcyBoYW5kbGVkIHNvIHRoYXQgaXQgaXMgbm90
IHByb3BhZ2F0ZWQgdG8gdGhlIGFuY2VzdG9yIGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChzdG9w
RWxlbWVudCkKKyAgICAgICAgICAgICAgICBzdG9wRWxlbWVudCA9IGN1cnJlbnRFbmNsb3NpbmdC
b3gtPmVsZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAg
ICAgICAgY3VycmVudEVuY2xvc2luZ0JveCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5p
bmdCbG9jaygpOwogICAgICAgICBpZiAoIWN1cnJlbnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVu
Y2xvc2luZ0JveC0+aXNSZW5kZXJWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNTEyN2I0OTBmNC4uZWJlMWM1NmIzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDIwLDYgKzQyMCwyOCBAQCBib29sIEZyYW1l
Vmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBjb25zdAogICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCku
ZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJl
bnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIGlzIGxpbWl0ZWQgaW4gY3Vy
cmVudCBmcmFybWUuCisgICAgLy8gU2hvdWxkIG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdlIHRo
ZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRy
YWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgp
OworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnNjcm9s
bGluZ0VsZW1lbnQoKSA/IGRvY3VtZW50LT5zY3JvbGxpbmdFbGVtZW50KCktPnJlbmRlcmVyKCkg
OiBudWxscHRyOworICAgIGlmICghc2Nyb2xsaW5nT2JqZWN0KQorICAgICAgICByZXR1cm4gU2Ny
b2xsYWJsZUFyZWE6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4g
c2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKK30KKworT3Zl
cnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB0aGUgaW1wYWN0IG9mIG92ZXJzY3Jv
bGwtYmVoYXZpb3IgaXMgbGltaXRlZCBpbiBjdXJyZW50IGZyYXJtZS4KKyAgICAvLyBTaG91bGQg
b3ZlcnNjcm9sbC1iZWhhdmlvciBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGEgc3ViZnJhbWU/IGh0
dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy81MTI5CisgICAgYXV0byog
ZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0byBzY3JvbGxpbmdPYmplY3Qg
PSBkb2N1bWVudCAmJiBkb2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpID8gZG9jdW1lbnQtPnNj
cm9sbGluZ0VsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CisgICAgaWYgKCFzY3JvbGxp
bmdPYmplY3QpCisgICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6dmVydGljYWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4gc2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgpLm92ZXJz
Y3JvbGxCZWhhdmlvclkoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKaW5kZXggOWViMTk1ZGQ4Ni4uNzhkYzE0M2E4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC03NDAsNiArNzQwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVub2JzY3VyZWRD
b250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGludGVy
ZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJS
ZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFRv
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRWaXNpYmxlU2Nyb2xs
ZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCmluZGV4IDIyYzlmNmFiMjMuLmJhNzJkOWI0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKQEAgLTYzNSw2ICs2MzUsOSBAQCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ6CiBzeW50
aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAKK292ZXJzY3Jv
bGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5k
ZXggNjBmYjZmNzk5OS4uMmUwOTA4YzExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTcx
Niw2ICs3MTYsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbGlu
Z05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwogICAgIHNjcm9sbGluZ05vZGUu
c2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZpc2libGVTaXplKCkpOwogCiAg
ICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFtZXRlcnM7CisgICAgc2Nyb2xs
UGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEu
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNjcm9sbFBhcmFtZXRlcnMudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0
aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAg
IHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFy
ZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFyYW1ldGVycy5oYXNF
bmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYgaG9yaXpv
bnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IGJkNDc4NGI5
MzguLjMwNTA2OTAwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY4LDYgKzY4LDkgQEAgZW51
bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVjdCBTY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFs
T3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworICAgIE92
ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxC
ZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVsYXN0aWNp
dHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRl
eCBjMmJiMTRlMGM4Li4xZjJmZWFjNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTM5LDcgKzEzOSwxMCBAQCBXaGVlbEV2ZW50
SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbgogICAgICAgICAgICAgICAgIGF1dG8mIHNjcm9sbGluZ05vZGUgPSBkb3du
Y2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpOwogICAgICAgICAgICAgICAg
IGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQp
OwogCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC53YXNIYW5kbGVkKSB7CisgICAgICAgICAg
ICAgICAgYm9vbCBzdG9wcGVkQnlPdmVyc2Nyb2xsQmVoYXZpb3IgPSAod2hlZWxFdmVudC5kZWx0
YVgoKSAmJiBzY3JvbGxpbmdOb2RlLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAhPSBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAgICAgICAgICAgIHx8ICh3aGVlbEV2
ZW50LmRlbHRhWSgpICYmIHNjcm9sbGluZ05vZGUudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pOworCisgICAgICAgICAgICAgICAgaWYgKHJl
c3VsdC53YXNIYW5kbGVkIHx8IHN0b3BwZWRCeU92ZXJzY3JvbGxCZWhhdmlvcikgewogICAgICAg
ICAgICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQoc2Ny
b2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgd2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5n
KTsKICAgICAgICAgICAgICAgICAgICAgbV9nZXN0dXJlU3RhdGUubm9kZURpZEhhbmRsZUV2ZW50
KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVsRXZlbnQpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGMy
YjFhOTk3MjUuLjk4ODcwNTllMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEzNCw2
ICsxMzQsMTYgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9k
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0g
c2Nyb2xsaW5nTm9kZUlEKCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xs
QmVoYXZpb3I7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiBt
X3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKK30K
KwogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CiAgICAgaWYgKCFj
YW5IYXZlU2Nyb2xsYmFycygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDhmN2NjMDcyNy4u
Nzc1YjNjYTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xNDYsNiArMTQ2LDggQEAgcHJv
dGVjdGVkOgogICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJC
YW5kKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0K
ICAgICB2b2lkIHNldFRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9hdFNp
emUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNTaXpl
Rm9yUnViYmVyQmFuZCA9IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisgICAg
T3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdDsK
KyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25z
dDsKICAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVs
YXN0aWNpdHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2FsU2Ny
b2xsRWxhc3RpY2l0eTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMuaAppbmRleCBlYWUwOTNiMWVmLi40Zjk2MzE3MjcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTkyLDYgKzkyLDkgQEAgcHJp
dmF0ZToKICAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5k
aWYKIAorICAgIGJvb2wgc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIHNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOwor
CiAgICAgdm9pZCByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFk
KCk7CiAKICAgICBTY3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggMTg4NjdmOTdl
My4uNWRjOGI3ODcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMubW0KQEAgLTE5Nyw2ICsxOTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29u
dHJvbGxlclRpbWVyPiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpjcgog
CiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6
b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29u
c3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgc3dpdGNoIChob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpKSB7
CiAgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QXV0b21hdGljOiB7CiAgICAgICAgIGJvb2wgc2Ny
b2xsYmFyc0FsbG93U3RyZXRjaGluZyA9IGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCkg
fHwgIWhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtMjE5LDYgKzIyMiw5IEBAIGJv
b2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRh
bFN0cmV0Y2hpbmcoY29uc3QgUGxhCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcFZlcnRpY2FsU3Ry
ZWNoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHN3aXRjaCAodmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsK
ICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZFZlcnRp
Y2FsU2Nyb2xsYmFyKCkgfHwgIWhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CkBAIC0z
ODAsNiArMzg2LDE2IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjp2aWV3cG9ydFNpemUoKSBjb25zdAogfQogI2VuZGlmCiAKK2Jvb2wgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2go
KSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkuaG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKworYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJl
Y2goKSBjb25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkudmVydGljYWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKIHZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENv
bXBsZXRpb25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiBy
ZWFzb24pIGNvbnN0CiB7CiAgICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hl
ZWxFdmVudHMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5
cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDMxN2I2
NTJmY2UuLjE1NGE5NDRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApA
QCAtNDAsNiArNDAsMTIgQEAgZW51bSBjbGFzcyBTY3JvbGxUeXBlIDogYm9vbCB7CiAgICAgUHJv
Z3JhbW1hdGljCiB9OwogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3Qg
eworICAgIEF1dG8gPSAwLAorICAgIENvbnRhaW4sCisgICAgTm9uZQorfTsKKwogZW51bSBTY3Jv
bGxEaXJlY3Rpb24gOiB1aW50OF90IHsKICAgICBTY3JvbGxVcCwKICAgICBTY3JvbGxEb3duLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNmFlZTlhYzhhZS4u
ZmNjY2RlYjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC0xMjUsNiArMTI1LDkgQEAgcHVibGljOgogICAgIGJvb2wgY29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRl
bnRFZGdlOyB9CiAgICAgdm9pZCBzZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShi
b29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKSB7IG1fY29uc3RyYWluc1Njcm9s
bGluZ1RvQ29udGVudEVkZ2UgPSBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQog
CisgICAgdmlydHVhbCBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorICAgIHZp
cnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29u
c3QgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICB2b2lkIHNldFZl
cnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5IHNjcm9sbEVsYXN0aWNpdHkp
IHsgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxFbGFzdGljaXR5OyB9CiAgICAg
U2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxTY3JvbGxFbGFzdGljaXR5PihtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5oCmluZGV4IDUyZjI5NTMxYzMuLjg0NWEzMzNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTExMyw2ICsxMTMsMTEg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBzY3JvbGxFeHRlbnQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOwogI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BIb3Jp
em9udGFsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRp
ZgogfTsKIAogZW51bSBjbGFzcyBXaGVlbEV2ZW50U3RhdHVzIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0NGIu
LjA2MmZkZGY3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Nj
cm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5tbQpAQCAtMjQ4LDcgKzI0OCw4IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxl
cjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgbV9v
dmVyZmxvd1Njcm9sbERlbHRhLnNldFdpZHRoKG1fb3ZlcmZsb3dTY3JvbGxEZWx0YS53aWR0aCgp
ICsgZGVsdGFYKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc2hvdWxkU3Ry
ZXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCghZGVsdGFYIHx8ICFtX2NsaWVudC5z
aG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpKSAmJiAoIWRlbHRhWSB8fCAhbV9jbGllbnQuc2hv
dWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkpKQorICAgICAgICAgICAgICAgICAgICBzaG91bGRTdHJl
dGNoID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5
OS4uNjU3NjdmYTYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNB
bHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRTdG9w
SG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkU3RvcFZl
cnRpY2FsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBib29sIG1faGF2ZVNjcm9sbGVk
U2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlOwogICAg
IEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggNWY2NTMwM2NlYS4uMjY4
ODQ2ZWNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5tbQpAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6
OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlclRodW1i
CiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7
CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNo
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCitib29sIFNj
cm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdAoreworICAg
IHJldHVybiBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRlNzE3NDUwNjIuLjc4MWExYjlkM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQyNyw2ICszNDI3LDE2IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShyZWN0KTsKIH0K
IAorT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3Jv
bGxCZWhhdmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjp2ZXJ0
aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigp
LnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9vbCBzY3JvbGxi
YXJIaWRkZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIHJldHVybiBzY3Jv
bGxiYXIgJiYgc2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKaW5kZXggNWY1NGQwZWMzYi4uYWYzNmU3NDA3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ4Myw2ICs0ODMsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gaG9yaXpv
bnRhbFNjcm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0
IHsgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNj
cm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisK
ICAgICBib29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAy
MDJhYWRjYWFjLi5lYTJhM2JmMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxl
Q29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdSZW5k
ZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0
YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJhY2tncm91bmRE
YXRhLmgiCkBAIC0zMjcsNiArMzI4LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93
SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Js
b2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxl
KCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3Zl
cmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNj
cm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JY
KTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlz
aWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJp
dGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24o
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRl
ZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTEsNiArODk1LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92
ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJm
bG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92
ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3Zl
cnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQg
c2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1f
cmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVu
c2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1f
aW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQog
ICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0
ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAg
dm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNh
bEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRp
Y2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NzAsNiArMTQ3Niw5IEBAIHB1Ymxp
YzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3Rh
dGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJs
ZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3Zl
cmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxP
dmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9
CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9y
WSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENs
ZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERp
c3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsg
fQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4g
VUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBhNzcxMWE2MzFmLi40NWUw
ZTViMjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02NCw2ICs2NCw4IEBAIFN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwg
c2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3Jv
bGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwg
b3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6Omlu
aXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZp
b3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2Uo
KSkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG1hc2tCb3hJbWFnZShO
aW5lUGllY2VJbWFnZTo6VHlwZTo6TWFzaykKQEAgLTE0MCw2ICsxNDIsOCBAQCBpbmxpbmUgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBT
dHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5zY3JvbGxTbmFwUG9ydCkKICAg
ICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAjZW5kaWYKKyAgICAsIG92ZXJz
Y3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICwgb3ZlcnNjcm9sbEJl
aGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBjb250ZW50KG8uY29udGVudCA/
IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBjb3VudGVyRGlyZWN0aXZlcyhv
LmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxDb3VudGVyRGlyZWN0aXZlTWFwPigqby5j
b3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0VGV4dChvLmFsdFRleHQpCkBA
IC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgc2Ny
b2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAgICAmJiBzY3JvbGxTbmFwQXJl
YSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAgJiYgb3ZlcnNjcm9sbEJlaGF2
aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAgJiYgY29udGVudERhdGFFcXVp
dmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEoY291bnRlckRpcmVj
dGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYmIGFsdFRleHQgPT0gby5hbHRU
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxMjI4NzZkMDc5Li40ZmI1Nzg0OWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmgKQEAgLTEzMSw2ICsxMzEsOSBAQCBwdWJsaWM6CiAgICAgRGF0YVJl
ZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsKICNlbmRpZgogCisgICAgdW5z
aWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJzY3JvbGxCZWhhdmlvcgorICAg
IHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IK
KwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY29udGVudDsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291bnRlckRpcmVjdGl2ZXM7CiAgICAgU3Ry
aW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCAzYTBkNGI4NzE4Li41ZTc3NzYyMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIxNTAsNiArMjE1MCw5IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYVNlc3Npb25NZXRhZGF0YT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBNZWRpYVNlc3Npb25NCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOworICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKKwogICAgIGVuY29kZXIgPDwgcGFyYW1ldGVy
cy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsKICAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMu
dmVydGljYWxTY3JvbGxFbGFzdGljaXR5OwogCkBAIC0yMTY3LDYgKzIxNzAsMTEgQEAgdm9pZCBB
cmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBTY3IKIAogYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFy
YW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMmIHBhcmFtcykKIHsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy5ob3Jpem9udGFs
T3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1zLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbXMuaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbXMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTlmODZkMjhmOC4uZjRl
YTc1NTVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlw
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgpAQCAtODg0LDYgKzg4NSwxNSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRJbnN0YWxsbWVudENv
bmZpZ3VyYXRpb24+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3IsCisgICAgV2Vi
Q29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvcjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUK
KyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb2xv
clNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICBXZWJDb3JlOjpD
b2xvclNwYWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXgg
ZTA0Y2FkY2EyZC4uZjRjMTFiZjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCkBAIC0xMzkzLDYgKzEzOTMsMTMgQEAgU3ludGhldGljRWRpdGluZ0NvbW1hbmRz
RW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFN5bnRoZXRpYyBF
ZGl0aW5nIENvbW1hbmRzIgogICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBo
dW1hblJlYWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9yIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciBwcm90b3R5cGUiCisgIGNh
dGVnb3J5OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAg
dHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCA5YzVlNDUwMTI4Li5hNjY2ZDI5YWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlSU9TLm1tCkBAIC0yMzAsMTIgKzIzMCwzMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3Jv
bAogICAgIFNldEZvclNjb3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdlKG1fdXBkYXRpbmdGcm9tU3Rh
dGVOb2RlLCB0cnVlKTsKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIp
CisgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykKICAgICAgICAgfHwg
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVhY2hh
YmxlQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRpb24pCiAg
ICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxPcmlnaW4pKSB7CiAgICAgICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgICAgICBVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcgPSB0aGlz
LT5zY3JvbGxWaWV3KCk7CisKKyAgICAgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0vMzQzMTU5
OTcpOiBVSVNjcm9sbFZpZXcgc2hvdWxkIGhhdmUgc29tZSBraW5kIG9mIHN1cHBvcnQgZm9yIG92
ZXJzY3JvbGwtYmVoYXZpb3IgdG8gZW5hYmxlL2Rpc2FibGU6CisgICAgICAgIC8vIC0gbm9uLWxv
Y2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBzY3JvbGwgY2hhaW5pbmcpLgorICAg
ICAgICAvLyAtIGxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBib3VuY2luZyku
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgLy8gaWYgKHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgLy8gICAgIHNjcm9sbFZpZXcub3ZlcnNj
cm9sbEJlaGF2aW9ySG9yaXpvbnRhbCA9IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2Vi
S2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCku
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vICAgICBzY3JvbGxWaWV3
Lm92ZXJzY3JvbGxCZWhhdmlvclZlcnRpY2FsID0gY29udmVydE92ZXJzY3JvbGxCZWhhdmlvckZy
b21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAgIC8vIH0KKyNlbmRpZgor
ICAgICAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91bmNpbmcgd2hlbiBib3RoIG92
ZXJmbG93LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAgICAgIC8vIFVJU2Nyb2xsVmll
dzo6YWx3YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAgaGVyZS4KKyAgICAgICAgaWYg
KHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgICAgIHNjcm9sbFZp
ZXcuYm91bmNlcyA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMo
KS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9u
ZQorICAgICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVhUGFyYW1l
dGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6
Tm9uZQorICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Ny
b2xsVmlld0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Nyb2xsVmlld0RlbGVnYXRlID0g
YWRvcHROUyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdp
dGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmlu
ZGV4IGJkYWE1YzcyMDkuLjIwOGZjNDA2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTkx
LDYgKzE5MSw3IEBACiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGlyZWN0b3J5VXBs
b2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0
T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVk
aWFDb250cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA4NjhiYzYxMGM4Li5iYTEyYzkzZGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAg
LTY2Nyw2ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIEBZRVMsIFdlYktpdFZpc3VhbFZpZXdw
b3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKIAorICAgICAgICBATk8sIFdlYktp
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBX
ZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
QE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwK
ICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtL
ZXksCkBAIC0zMTk5LDYgKzMyMDAsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRv
cklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Vmlz
dWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5
OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAo
dm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2Vs
ZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFi
bGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNGZh
NzM4M2Q2My4uNjBkNDNlOWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02NTMsNiArNjUzLDcgQEAg
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxO
b3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIC0gKEJPT0wpd2ViU1FMRW5hYmxlZDsKIAogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDg1ZDY5NDNlMzYu
LjVkZDkxNzE5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KQEAgLTMxODEsNiArMzE4MSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxl
TG9hZGluZ1F1aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChbcHJlZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Mu
c2V0U3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGlj
RWRpdGluZ0NvbW1hbmRzRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAg
ICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xs
aW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggOWE4NzVkNDc5
ZS4uY2UwMTcyYmFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJm
YWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yNjksNCArMjY5
LDYgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU4IDogSVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTcKICAgICBIUkVTVUxUIHNldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoW2lu
XSBCT09MIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgbW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5h
YmxlZChbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0TW9kZXJu
VW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VM
VCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFsgb3V0LCByZXR2YWwgXSBCT09MKik7CisgICAg
SFJFU1VMVCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKaW5kZXggMmEyMTIxYWRiOS4uYTJmMWI4ZTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE5OCw2ICsxOTgs
OCBAQAogCiAjZGVmaW5lIFdlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVk
UHJlZmVyZW5jZUtleSAiV2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQi
CiAKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkg
IldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCisKICNkZWZpbmUgV2ViS2l0VXNlclRp
bWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKIAogI2Rl
ZmluZSBXZWJLaXRSZXNvdXJjZVRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNv
dXJjZVRpbWluZ0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5jcHAKaW5kZXggOTNkZThhMzIwYS4uY2VlNjQ0YmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzQxLDYgKzM0MSw4IEBAIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5
QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFBy
ZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJl
bmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRl
ZmF1bHRzLCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5j
ZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZh
dWx0cywgQ0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtD
RkJvb2xlYW5GYWxzZSk7CkBAIC0yMjY5LDYgKzIyNzEsMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJl
bmNlczo6c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1
cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAg
ICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJL
aXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7
Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQoX091dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCAyNDM3YjBlNzYyLi4yNjA0ZDllMTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2NSw2ICsy
NjUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNl
dEluc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggNjdmZTY0
MTM3NS4uMzljNjY5YWFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUz
MzQsNiArNTMzNCwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdl
ZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAg
ICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAg
IGhyID0gcHJlZnNQcml2YXRlLT5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsK
KyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNl
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQ
cml2YXRlLT5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAo
RkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwCmluZGV4IGU3YzU4MzY3ODIuLmIxYTEyMDE1ZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5jcHAKQEAgLTEzNiw2ICsxMzYsOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlv
bnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29s
dQogICAgICAgICAgICAgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgPSB2YWx1ZTsKICAg
ICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxlZCIpCiAgICAg
ICAgICAgICBlbmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUp
OworICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciA9IHBhcnNl
Qm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAi
aW50ZXJuYWw6Q1NTTG9naWNhbEVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNh
bCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAiaW50ZXJuYWw6TGluZUhlaWdodFVuaXRzRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuaAppbmRleCBjNWM4Yzg1OTkyLi4yY2E2MTk5NDBkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsK
ICAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNl
bGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVX
ZWJHUFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFs
c2UgfTsKICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5h
YmxlTGluZUhlaWdodFVuaXRzIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlv
bkVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCmluZGV4IDg3YzA0ZDkyZmEuLjI5MGE1MGM4MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg4Nyw2ICs4ODcsNyBAQCBzdGF0aWMgdm9p
ZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMp
CiAgICAgW3ByZWZlcmVuY2VzIHNldENTU1NoYWRvd1BhcnRzRW5hYmxlZDpZRVNdOwogICAgIFtw
cmVmZXJlbmNlcyBzZXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZ
RVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
OllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6WUVT
XTsKIH0KIAogLy8gQ2FsbGVkIGJlZm9yZSBlYWNoIHRlc3QuCkBAIC0xMDM0LDYgKzEwMzUsNyBA
QCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RP
cHRpb25zJiBvcHRpb25zKQogICAgIHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9w
dGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3Nz
U2hhZG93Qm91bmRhcmllc0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1No
YWRvd0JvdW5kYXJpZXM7CiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMu
ZW5hYmxlV2ViR1BVOworICAgIHByZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQg
PSBvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvcjsKICAgICBwcmVmZXJlbmNlcy5DU1NM
b2dpY2FsRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJlbmNl
cy5saW5lSGVpZ2h0VW5pdHNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVMaW5lSGVpZ2h0VW5pdHM7
CiAgICAgcHJlZmVyZW5jZXMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRD
bGlja0F0dHJpYnV0aW9uRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IGQwYjlkOGM3ZTcuLjYyNmFjODI1OTAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtOTI1LDYgKzkyNSw3IEBAIHN0
YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoSVdlYlByZWZlcmVuY2Vz
KiBwcmVmZXJlbmNlcywgY29uc3QKICAgICBwcmVmZXJlbmNlcy0+c2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwogICAgIHByZWZlcmVuY2VzLT5z
ZXRVc2VzUGFnZUNhY2hlKG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgcHJl
ZnNQcml2YXRlLT5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKG9wdGlvbnMuZW5h
YmxlQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nKTsKKyAgICBwcmVmc1ByaXZhdGUtPnNldE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQob3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IpOwog
fQogCiBzdGF0aWMgU3RyaW5nIGFwcGxpY2F0aW9uSWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407661</attachid>
            <date>2020-08-31 22:48:39 -0700</date>
            <delta_ts>2020-09-06 10:55:50 -0700</delta_ts>
            <desc>WIP-patch-supported-desktop-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-009-0901.diff</filename>
            <type>text/plain</type>
            <size>63054</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNzcxNGI2OWY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGVkIGlm
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgaXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYt
ZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi5hNjc3YzRkNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgcmVzdWx0ID0gIm92ZXJzY3JvbGxCZWhhdmlvciIgaW4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgICBkb2N1bWVudC53cml0ZShg
JHtyZXN1bHR9IHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBp
ZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLmApOworCisgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3It
dmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NTUwZmY0NGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci12YWxpZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MgdGVz
dCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1l
bmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iYjUwNThk
MmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNj
cm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1lbmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciByZXN1bHQgPSAib3ZlcnNjcm9s
bEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKGAke3Jlc3VsdH0gdGVzdCBvdmVyc2Nyb2xs
QmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
IGlzIGVuYWJsZWQuYCk7CisgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwt
eG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApp
bmRleCA3MmFjMWNkZGYyLi40YzQ0ZmQyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0
ZWQudHh0CkBAIC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJm
bG93LXdyYXAgCiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJz
Y3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRk
aW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1i
b3R0b20gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggMjIyYzhi
MmJkNS4uNjcyOTljMmNhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4
dApAQCAtMyw4ICszLDcgQEAgRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLWJsb2Nr
IGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gYXNzZXJ0X3RydWU6IG92ZXIKIEZBSUwgUHJvcGVydHkg
b3ZlcnNjcm9sbC1iZWhhdmlvci1ibG9jayBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LWlubGluZSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJl
aGF2aW9yLWlubGluZSBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRl
ZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xs
LWJlaGF2aW9yLWlubGluZSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggaGFzIGlu
aXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXNu
J3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2VzIG5v
dCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9w
ZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRf
dHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQg
aW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3Bl
cnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZp
b3IteCBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggZG9lcyBub3QgaW5oZXJpdCAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhh
dmlvci15IGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwt
YmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
aW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKaW5kZXgg
ODIzZDYyMzk0Ny4uZGE5M2JkNzVhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJp
dGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAt
LT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAppbmRleCA3ZWNjOGRk
OTk3Li5hMjdhNGEwODczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5p
dGlhbC14bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKQEAgLTE5Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxpbmUtd2lk
dGgKIFBBU1Mgb3ZlcmZsb3ctd3JhcCAKIFBBU1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3ZlcmZsb3ct
eSAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci14IAorUEFTUyBvdmVyc2Nyb2xsLWJlaGF2aW9y
LXkgCiBQQVNTIHBhZGRpbmctYmxvY2stZW5kIAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0YXJ0IAog
UEFTUyBwYWRkaW5nLWJvdHRvbSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYTNmMTMzOGIzNi4uYjkyYjhlYmExZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMwNjAsNiArMzA2MCwxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBjc3NW
YWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgp
LCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0
ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJl
bmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJl
cik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhM2M3NmNkZGZmLi5j
NWYyNDYxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5
bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3Mu
aCIKICNpbmNsdWRlICJUaGVtZVR5cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKQEAg
LTIyMDUsNiArMjIwNiw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsK
IH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQoreworICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOworICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhh
dmlvcjo6Q29udGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWlu
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBj
b25zdAoreworICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1cm4gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAg
ICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFsdWVBdXRv
OgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
aWVzLmpzb24KaW5kZXggMmFjYjA5YzEyNy4uY2ZhZWZkOTZmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uCkBAIC0zMjg5LDYgKzMyODksNTMgQEAKICAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJvcGRlZi1v
dmVyZmxvdy15IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9s
bC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CisgICAg
ICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3Jv
bGwtYmVoYXZpb3IteCIsCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9y
LXkiCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6
ICJvdmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1
cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9w
ZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg
ICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVzIjogWwor
ICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAg
ICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4t
cHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6ICJvdmVyc2Ny
b2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAg
ICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwiOiAi
aHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJz
Y3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3JvbGxCZWhh
dmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczov
L3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1i
ZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAicGFkZGluZyI6
IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAg
ImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXgg
NmJhYzAwMzI2Ni4uYzhjZmY3YTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KQEAgLTEzOTMsNiArMTM5Myw5IEBAIHBpbmNoLXpvb20KIC8vIGF1dG8KIHNtb290aAog
CisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisvLyBjb250YWluCisKIC8vIGhhbmdpbmctcHVuY3R1
YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAKaW5kZXggYTAyYTgxOTBiOC4uMTE4YWVhMTJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydGllcy5jcHAKQEAgLTI1NSw2ICsyNTUsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVz
OjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHdlYmtpdE1hcmdpbkNvbGxhcHNlU2hvcnRoYW5k
KCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuIGdldDJW
YWx1ZXMob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldDJWYWx1ZXMob3ZlcnNjcm9sbEJlaGF2aW9y
U2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAgICByZXR1
cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nQmxvY2s6CkBAIC0xMTc3LDYgKzExNzksMTAgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGll
czo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6
CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZs
b3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Ny
b2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5n
Qm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5j
cHAKaW5kZXggNWE3ZDgwNGRhZC4uZDdjY2MxYzI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC03Niw2ICs3Niw3IEBAIENTU1BhcnNl
ckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHNoZWV0QmFzCiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgPSBk
b2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOwogICAgIHNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVu
dC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1B
cHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1B
cHBlYXJhbmNlKCkgOiBmYWxzZTsKIH0KIApAQCAtMTAyLDYgKzEwMyw3IEBAIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBi
KQogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NT
UGFyc2VyRW5hYmxlZAogICAgICAgICAmJiBhLnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNj
cm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmln
aW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCisgICAgICAgICYmIGEub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAg
JiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRleCAwZWU1
NWJmYzgwLi5hNjBhMzc5Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBib29s
IGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBzY3JvbGxCZWhh
dmlvckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTA5LDcgKzExMCw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAxMQogI2VuZGlmCiAgICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhhdmlvckVu
YWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAxMgotICAgICAgICAgICAgJiBrZXkubW9kZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAgdGhpcyBs
YXN0LgorICAgICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAg
ICAgICAgICAgPDwgMTMKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IDE0OyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFz
aCBePSBXVEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRl
eCA4ZTg4ZmM5NWNkLi41NGUyNjMwNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC02ODMsNiArNjgzLDExIEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlkCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlVmlzaWJs
ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTY3Jv
bGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU92ZXJs
YXk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WTogLy8gdmlzaWJsZSB8IGhpZGRlbiB8
IHNjcm9sbCB8IGF1dG8gfCBvdmVybGF5IHwgLXdlYmtpdC1wYWdlZC14IHwgLXdlYmtpdC1wYWdl
ZC15IChvdmVybGF5IGlzIGEgc3lub255bSBmb3IgYXV0bykKICAgICAgICAgcmV0dXJuIHZhbHVl
SUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4gfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlT3ZlcmxheSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0UGFnZWRY
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7CisgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclk6CisgICAgICAgIGlmICghY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbnRhaW4gfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZU5vbmU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrQWZ0ZXI6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJyZWFrQmVmb3JlOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUF1
dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdm9p
ZFBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUxl
ZnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJpZ2h0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZWN0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVyc28gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lk
Q29sdW1uIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW47CkBAIC05MzgsNiArOTQzLDggQEAg
Ym9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXA6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb2ludGVyRXZl
bnRzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKICAgICBjYXNlIENTU1Byb3BlcnR5
UmVzaXplOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAppbmRleCBlNDA0ZDQ4ZWY4Li5iYTM4NTFjMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjM3NCw2ICsyMzc0LDE0IEBA
IHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVTY3JvbGxCZWhhdmlvcihD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nCiAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7
CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3Io
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2Uu
cGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQg
IT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3Rh
dGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVy
Y2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5
NjEsNiArMzk2OSwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJz
ZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgICAgICBpZiAoIW1f
Y29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBj
YXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1
cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5t
b2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246CkBAIC01NTUwLDYgKzU1NjMs
MzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBsYWNlU2VsZlNob3J0aGFuZChi
b29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDU1NQcm9wZXJ0eVBh
cnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCkK
K3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xs
QmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOworICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX3Jhbmdl
LmF0RW5kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4g
b3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclk7CisgICAgbV9yYW5nZS5j
b25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgIG92
ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Nyb2xsQmVoYXZpb3JYOworICAgIGVsc2UgeworICAg
ICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3Jh
bmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAo
IW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclgsIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWCwgaW1wb3J0YW50KTsKKyAg
ICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWSwgaW1wb3J0YW50KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhh
bmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgc3dpdGNo
IChwcm9wZXJ0eSkgewpAQCAtNTU3MCw2ICs1NjEyLDggQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNl
cjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuIGNv
bnN1bWVPdmVyZmxvd1Nob3J0aGFuZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2
aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6IHsKICAg
ICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7CiAgICAg
ICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgpIDw9IENT
U1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5oCmluZGV4IGI3ZTE5ZmJkNjQuLjMwMzMyNmZmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTExMiw2ICsxMTIsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGltcG9ydGFudCk7
CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogCisg
ICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50
KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBt
X3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGEyMzY2ZjFmYTAu
LjdhY2E5OTMwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMwMiwx
NSArMzAyLDIyIEBAIHN0YXRpYyB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZUluU2Nyb2xsYWJs
ZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhCiAjZW5kaWYKIH0KIAotc3RhdGlj
IGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJs
ZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdHJ1Y3QgSWdub3JlRGVsdGFS
ZXF1ZXN0IHsKKyAgICBib29sIGlnbm9yZVggeyBmYWxzZSB9OworICAgIGJvb2wgaWdub3JlWSB7
IGZhbHNlIH07Cit9OworCitzdGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKFNj
cm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgY29uc3QgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVSZXF1ZXN0KQogeworICAgIGRvdWJs
ZSBkZWx0YVggPSBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggPyAwIDogd2hlZWxFdmVudC5kZWx0YVgo
KTsKKyAgICBkb3VibGUgZGVsdGFZID0gaWdub3JlUmVxdWVzdC5pZ25vcmVZID8gMCA6IHdoZWVs
RXZlbnQuZGVsdGFZKCk7CiAgICAgU2Nyb2xsR3JhbnVsYXJpdHkgc2Nyb2xsR3JhbnVsYXJpdHkg
PSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh3aGVlbEV2ZW50LmRlbHRhTW9k
ZSgpKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKLSAgICBpZiAoZmxv
YXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFYKCkpKQotICAgICAg
ICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbCh3aGVlbEV2ZW50
LmRlbHRhWCgpID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3JhbnVsYXJp
dHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjph
YnMoZGVsdGFYKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJl
YS5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsTGVmdCwgc2Nyb2xsR3Jh
bnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURl
bHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdo
ZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFZKCkgPiAw
ID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVEZWx0
YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVkpKQorICAg
ICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbChkZWx0YVkg
PiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVE
ZWx0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZlbnQ7CiB9CkBAIC0zMzYs
MjQgKzM0MywzOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3ByaWF0ZUVu
Y2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvbnN0IFdoZQogICAgIGlmICghc2hvdWxkSGFu
ZGxlRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIElnbm9yZURlbHRhUmVxdWVz
dCBpZ25vcmVSZXF1ZXN0OwogICAgIGlmIChpczxSZW5kZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9z
aW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoZG93bmNh
c3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQpOworICAg
ICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShkb3duY2FzdDxSZW5kZXJMaXN0
Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudCwgaWdub3JlUmVxdWVzdCk7CiAK
ICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3ggPSAmaW5pdGlhbEVuY2xvc2luZ0Jv
eDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOworICAgIGJvb2wgaWdub3JlRGVsdGFZ
ID0gZmFsc2U7CisgICAgYXV0byogZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50ID0gY3VycmVudEVu
Y2xvc2luZ0JveC0+ZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCk7CiAgICAgd2hpbGUgKGN1
cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBib3hMYXllciA9
IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1dG8gcGxhdGZv
cm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKICAgICAgICAg
ICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0Zm9ybUV2
ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQt
PmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCks
IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CisgICAg
ICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVs
dGFzQW5kVmVsb2NpdHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53
aWR0aCgpLCBpZ25vcmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgp
LCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVk
ID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwotICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbElu
U2Nyb2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgaWdub3JlUmVxdWVzdCA9IHsgaWdub3JlRGVsdGFYLCBpZ25v
cmVEZWx0YVkgfTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Ny
b2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdoZWVsRXZlbnQsIGlnbm9yZVJlcXVlc3Qp
OworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGJvb2wg
aXNEb2N1bWVudFNjcm9sbGluZ0VsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50
KCkgPT0gZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50OworICAgICAgICBpZiAoIWlzRG9jdW1lbnRT
Y3JvbGxpbmdFbGVtZW50ICYmICFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2luZ0JveC0+
c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
KQorICAgICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFpc0RvY3Vt
ZW50U2Nyb2xsaW5nRWxlbWVudCAmJiAhaWdub3JlRGVsdGFZICYmIGN1cnJlbnRFbmNsb3NpbmdC
b3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6
QXV0bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhWSA9IHRydWU7CisgICAgICAgIGlmIChpZ25v
cmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKICAg
ICAgICAgY3VycmVudEVuY2xvc2luZ0JveCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5p
bmdCbG9jaygpOwogICAgICAgICBpZiAoIWN1cnJlbnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVu
Y2xvc2luZ0JveC0+aXNSZW5kZXJWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNGUzMzM1NzFlOS4uODBhNDcyYzVmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDE4LDYgKzQxOCwyOCBAQCBib29sIEZyYW1l
Vmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBjb25zdAogICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCku
ZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJl
bnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIGlzIGxpbWl0ZWQgdG8gdGhl
IGN1cnJlbnQgZnJhbWUuCisgICAgLy8gU2hvdWxkIG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdl
IHRoZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dn
LWRyYWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVu
dCgpOworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnNj
cm9sbGluZ0VsZW1lbnQoKSA/IGRvY3VtZW50LT5zY3JvbGxpbmdFbGVtZW50KCktPnJlbmRlcmVy
KCkgOiBudWxscHRyOworICAgIGlmICghc2Nyb2xsaW5nT2JqZWN0KQorICAgICAgICByZXR1cm4g
U2Nyb2xsYWJsZUFyZWE6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1
cm4gc2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKK30KKwor
T3ZlcnNjcm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSAgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB0aGUgaW1wYWN0IG9mIG92ZXJz
Y3JvbGwtYmVoYXZpb3IgaXMgbGltaXRlZCB0byB0aGUgY3VycmVudCBmcmFtZS4KKyAgICAvLyBT
aG91bGQgb3ZlcnNjcm9sbC1iZWhhdmlvciBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGEgc3ViZnJh
bWU/IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy81MTI5CisgICAg
YXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0byBzY3JvbGxpbmdP
YmplY3QgPSBkb2N1bWVudCAmJiBkb2N1bWVudC0+c2Nyb2xsaW5nRWxlbWVudCgpID8gZG9jdW1l
bnQtPnNjcm9sbGluZ0VsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CisgICAgaWYgKCFz
Y3JvbGxpbmdPYmplY3QpCisgICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6dmVydGljYWxP
dmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4gc2Nyb2xsaW5nT2JqZWN0LT5zdHlsZSgp
Lm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVS
ZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKaW5kZXggZDdlOGRiOWFmNC4uNjZlMzRkMWNlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCkBAIC03NDAsNiArNzQwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVub2Jz
Y3VyZWRDb250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVh
IGludGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3Zl
cnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIHNj
cm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXRWaXNpYmxl
U2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCmluZGV4IDJmODRjNWJjMGMuLmI1ODlhNmNiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKQEAgLTYzOSw2ICs2MzksOSBAQCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ6
CiBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAKK292
ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKIENTU09NVmlld1Nj
cm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKaW5kZXggNjBmYjZmNzk5OS4uMmUwOTA4YzExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
QEAgLTcxNiw2ICs3MTYsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNj
cm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9sbGluZwogICAgIHNjcm9sbGlu
Z05vZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVBcmVhLnZpc2libGVTaXplKCkp
OwogCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9sbFBhcmFtZXRlcnM7CisgICAg
c2Nyb2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJs
ZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHNjcm9sbFBhcmFtZXRl
cnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgp
OwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xs
YWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAgICAgc2Nyb2xsUGFyYW1ldGVy
cy5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxiYXIgJiYg
aG9yaXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IGJk
NDc4NGI5MzguLjMwNTA2OTAwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY4LDYgKzY4LDkg
QEAgZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVj
dCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9Owor
ICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJz
Y3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVs
YXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUg
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNw
cAppbmRleCA5MTYzYTM0MzczLi4yM2NjYjJhZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTQ0LDEyICsxNDQsMjYgQEAgV2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW4KIAogV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGlu
Z1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIFNjcm9sbGluZ1RyZWVOb2RlKiBub2RlKQogeworICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCBhZGp1c3RlZFdoZWVsRXZlbnQgPSBQbGF0Zm9ybVdoZWVsRXZlbnQod2hlZWxFdmVu
dCk7CisgICAgYm9vbCBpZ25vcmVEZWx0YVggPSBmYWxzZTsKKyAgICBib29sIGlnbm9yZURlbHRh
WSA9IGZhbHNlOwogICAgIHdoaWxlIChub2RlKSB7CiAgICAgICAgIGlmIChpczxTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7CiAgICAgICAgICAgICBhdXRvJiBzY3JvbGxpbmdO
b2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKTsKLSAgICAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdOb2RlLmhhbmRsZVdo
ZWVsRXZlbnQoYWRqdXN0ZWRXaGVlbEV2ZW50KTsKIAotICAgICAgICAgICAgaWYgKHJlc3VsdC53
YXNIYW5kbGVkKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nTm9kZS5ob3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKSB7CisgICAgICAg
ICAgICAgICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoYWRqdXN0
ZWRXaGVlbEV2ZW50LmRlbHRhWCgpKQorICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZFdoZWVs
RXZlbnQgPSBhZGp1c3RlZFdoZWVsRXZlbnQuY29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eSgwLCBh
ZGp1c3RlZFdoZWVsRXZlbnQuZGVsdGFZKCksIGFkanVzdGVkV2hlZWxFdmVudC5zY3JvbGxpbmdW
ZWxvY2l0eSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzY3JvbGxpbmdOb2Rl
LnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRv
KSB7CisgICAgICAgICAgICAgICAgaWdub3JlRGVsdGFZID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBpZiAoYWRqdXN0ZWRXaGVlbEV2ZW50LmRlbHRhWSgpKQorICAgICAgICAgICAgICAgICAgICBh
ZGp1c3RlZFdoZWVsRXZlbnQgPSBhZGp1c3RlZFdoZWVsRXZlbnQuY29weVdpdGhEZWx0YXNBbmRW
ZWxvY2l0eShhZGp1c3RlZFdoZWVsRXZlbnQuZGVsdGFYKCksIDAsIGFkanVzdGVkV2hlZWxFdmVu
dC5zY3JvbGxpbmdWZWxvY2l0eSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KHJlc3VsdC53YXNIYW5kbGVkIHx8IChpZ25vcmVEZWx0YVggJiYgaWdub3JlRGVsdGFZKSkgewog
ICAgICAgICAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLm5vZGVEaWRIYW5kbGVFdmVudChz
Y3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50LCBtX2FsbG93TGF0Y2hp
bmcpOwogICAgICAgICAgICAgICAgIG1fZ2VzdHVyZVN0YXRlLm5vZGVEaWRIYW5kbGVFdmVudChz
Y3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDIzMDFjOTY1
ODcuLjc1NTUwZWIxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEzNCw2ICsxMzQs
MTYgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9kZSgpIGNv
bnN0CiAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0gc2Nyb2xs
aW5nTm9kZUlEKCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3I7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6
dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKK30KKwogYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CiAgICAgaWYgKCFjYW5IYXZl
U2Nyb2xsYmFycygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggNDhmN2NjMDcyNy4uNzc1YjNj
YTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0xNDYsNiArMTQ2LDggQEAgcHJvdGVjdGVk
OgogICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKCkg
Y29uc3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KICAgICB2
b2lkIHNldFRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZChjb25zdCBGbG9hdFNpemUmIHRv
dGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCkgeyBtX3RvdGFsQ29udGVudHNTaXplRm9yUnVi
YmVyQmFuZCA9IHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogCisgICAgT3ZlcnNj
cm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdDsKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdDsKICAg
ICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNp
dHk7IH0KICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxh
c3RpY2l0eTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWMuaAppbmRleCBlYWUwOTNiMWVmLi40Zjk2MzE3MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTkyLDYgKzkyLDkgQEAgcHJpdmF0ZToK
ICAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAor
ICAgIGJvb2wgc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBib29sIHNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAg
dm9pZCByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKCk7CiAK
ICAgICBTY3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggYThjZTY5YWNmYi4uZDgx
OTY2NGI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWMubW0KQEAgLTE5MSw2ICsxOTEsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxl
clRpbWVyPiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpjcgogCiBib29s
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6b250YWxT
dHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsK
KyAgICBpZiAoc2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgc3dpdGNoIChob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpKSB7CiAgICAg
Y2FzZSBTY3JvbGxFbGFzdGljaXR5QXV0b21hdGljOiB7CiAgICAgICAgIGJvb2wgc2Nyb2xsYmFy
c0FsbG93U3RyZXRjaGluZyA9IGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgIWhh
c0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtMjEzLDYgKzIxNiw5IEBAIGJvb2wgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRhbFN0cmV0
Y2hpbmcoY29uc3QgUGxhCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkgY29uc3QKIHsKKyAgICBpZiAoc2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHN3aXRjaCAodmVydGljYWxTY3JvbGxFbGFz
dGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsKICAgICAg
ICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZFZlcnRpY2FsU2Ny
b2xsYmFyKCkgfHwgIWhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CkBAIC0zNzQsNiAr
MzgwLDE2IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Ojp2aWV3cG9ydFNpemUoKSBjb25zdAogfQogI2VuZGlmCiAKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2goKSBjb25z
dAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKworYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBj
b25zdAoreworICAgIHJldHVybiBzY3JvbGxpbmdOb2RlKCkudmVydGljYWxPdmVyc2Nyb2xsQmVo
YXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKIHZvaWQgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6ZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25Gb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbiByZWFzb24p
IGNvbnN0CiB7CiAgICAgaWYgKCFzY3JvbGxpbmdUcmVlKCkuaXNNb25pdG9yaW5nV2hlZWxFdmVu
dHMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDUzZjA3M2M2NjYu
LjMxZGY2NDYxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5
cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNDYs
NiArNDYsMTIgQEAgZW51bSBjbGFzcyBTY3JvbGxUeXBlIDogYm9vbCB7CiAgICAgUHJvZ3JhbW1h
dGljCiB9OwogCitlbnVtIGNsYXNzIE92ZXJzY3JvbGxCZWhhdmlvciA6IHVpbnQ4X3QgeworICAg
IEF1dG8gPSAwLAorICAgIENvbnRhaW4sCisgICAgTm9uZQorfTsKKwogZW51bSBTY3JvbGxEaXJl
Y3Rpb24gOiB1aW50OF90IHsKICAgICBTY3JvbGxVcCwKICAgICBTY3JvbGxEb3duLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGNhODZiYWE3MC4uYmEyOWZh
NzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xMjAs
NiArMTIwLDkgQEAgcHVibGljOgogICAgIGJvb2wgY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVu
dEVkZ2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdl
OyB9CiAgICAgdm9pZCBzZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShib29sIGNv
bnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKSB7IG1fY29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UgPSBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsgfQogCisgICAg
dmlydHVhbCBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigp
IGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorICAgIHZpcnR1YWwg
T3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgeyBy
ZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICB2b2lkIHNldFZlcnRpY2Fs
U2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5IHNjcm9sbEVsYXN0aWNpdHkpIHsgbV92
ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxFbGFzdGljaXR5OyB9CiAgICAgU2Nyb2xs
RWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTY3JvbGxFbGFzdGljaXR5PihtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSk7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDAwYjMyNjMxNjguLmUwMDUwOTI3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTExMyw2ICsxMTMsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBzY3JvbGxFeHRlbnQoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOwogI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BIb3Jpem9udGFs
U3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
U3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogfTsK
IAogZW51bSBjbGFzcyBXaGVlbEV2ZW50U3RhdHVzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IDAwNmZlMWNmYzcuLmVlMTg1
NjFjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5tbQpAQCAtMjUyLDcgKzI1Miw4IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgbV9vdmVyZmxv
d1Njcm9sbERlbHRhLnNldFdpZHRoKG1fb3ZlcmZsb3dTY3JvbGxEZWx0YS53aWR0aCgpICsgZGVs
dGFYKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc2hvdWxkU3RyZXRjaCA9
IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCghZGVsdGFYIHx8ICFtX2NsaWVudC5zaG91bGRT
dG9wSG9yaXpvbnRhbFN0cmVjaCgpKSAmJiAoIWRlbHRhWSB8fCAhbV9jbGllbnQuc2hvdWxkU3Rv
cFZlcnRpY2FsU3RyZWNoKCkpKQorICAgICAgICAgICAgICAgICAgICBzaG91bGRTdHJldGNoID0g
dHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5OS4uNjU3
NjdmYTYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5
UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Ny
b2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRTdG9wSG9yaXpv
bnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkU3RvcFZlcnRpY2Fs
U3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBib29sIG1faGF2ZVNjcm9sbGVkU2luY2VQ
YWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlOwogICAgIEludFJl
Y3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMDlkODA1OGI1Yi4uYWIzMzJhYTJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbQpAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldFZp
c2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlclRodW1iCiAgICAg
bV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7CiB9CiAK
K2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCitib29sIFNjcm9sbEFu
aW1hdG9yTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdAoreworICAgIHJldHVy
biBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNj
cm9sbEJlaGF2aW9yOjpOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IGZkMDJiNTFhMTIuLmVmZDI2ZmE3YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQ0Myw2ICszNDQzLDE2IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmIHJl
Y3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShyZWN0KTsKIH0KIAorT3Zl
cnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgpLm92ZXJzY3JvbGxCZWhh
dmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjp2ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxl
KCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9vbCBzY3JvbGxiYXJIaWRk
ZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIHJldHVybiBzY3JvbGxiYXIg
JiYgc2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggZDgzNzNhYWU4MS4uODEzMjNkMjkwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ4Myw2ICs0ODMsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNj
cm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0
dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJl
aGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICBi
b29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA2N2UyMzY5
YzcwLi4xOWZlYzgyNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3Rh
bnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHls
ZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgog
I2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJhY2tncm91bmREYXRhLmgi
CkBAIC0zMjcsNiArMzI4LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93IG92ZXJmbG93SW5saW5l
RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92
ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBvdmVyZmxvd0Jsb2NrRGly
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG92ZXJm
bG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZsb3dWaXNpYmxlKCkgY29u
c3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgb3ZlcmZsb3dZ
KCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVy
c2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJl
aGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JYKTsgfQor
ICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2liaWxpdHkgdmlzaWJpbGl0
eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+KG1faW5oZXJpdGVkRmxh
Z3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRpY2FsQWxpZ24oKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25vbkluaGVyaXRlZEZsYWdz
LnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTEsNiArODk1LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93
WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShP
dmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JYKE92ZXJzY3Jv
bGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9s
bEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0T3Zl
cnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5v
bkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0eSB2KSB7IG1faW5oZXJp
dGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZv
aWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFn
cy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBz
ZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBzZXRWZXJ0aWNhbEFsaWdu
KFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRhLCBtX3ZlcnRpY2FsQWxp
Z24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NzEsNiArMTQ3Nyw5IEBAIHB1YmxpYzoKICAg
ICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIE92
ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsgfQog
ICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT3ZlcmZsb3c6
OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Ny
b2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAg
c3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWSgpIHsg
cmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgc3RhdGljIENsZWFyIGlu
aXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAgc3RhdGljIERpc3BsYXlU
eXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6OklubGluZTsgfQogICAg
IHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkgeyByZXR1cm4gVUJOb3Jt
YWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAxNWMzZTkyOTI1Li4wYmRjYjY5OTlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02NCw2ICs2NCw4IEBAIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwgc2Nyb2xs
U25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAgICAgLCBzY3JvbGxTbmFw
QXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRpZgorICAgICwgb3ZlcnNj
cm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxP
dmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZKCkp
KQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdpbGxDaGFuZ2UoKSkKICAg
ICAsIG1hc2soRmlsbExheWVyOjpjcmVhdGUoRmlsbExheWVyVHlwZTo6TWFzaykpCiAgICAgLCBt
YXNrQm94SW1hZ2UoTmluZVBpZWNlSW1hZ2U6OlR5cGU6Ok1hc2spCkBAIC0xNDAsNiArMTQyLDgg
QEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIHNjcm9sbFNuYXBQb3J0KG8uc2Nyb2xs
U25hcFBvcnQpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShvLnNjcm9sbFNuYXBBcmVhKQogI2VuZGlm
CisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWCkKKyAgICAs
IG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZKQogICAgICwgY29udGVu
dChvLmNvbnRlbnQgPyBvLmNvbnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQogICAgICwgY291bnRl
ckRpcmVjdGl2ZXMoby5jb3VudGVyRGlyZWN0aXZlcyA/IG1ha2VVbmlxdWU8Q291bnRlckRpcmVj
dGl2ZU1hcD4oKm8uY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKICAgICAsIGFsdFRleHQo
by5hbHRUZXh0KQpAQCAtMjM5LDYgKzI0Myw4IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAg
ICAgICAgICYmIHNjcm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xsU25hcFBvcnQKICAgICAgICAgJiYg
c2Nyb2xsU25hcEFyZWEgPT0gby5zY3JvbGxTbmFwQXJlYQogI2VuZGlmCisgICAgICAgICYmIG92
ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JYCisgICAgICAgICYmIG92
ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZCiAgICAgICAgICYmIGNv
bnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRh
KGNvdW50ZXJEaXJlY3RpdmVzLCBvLmNvdW50ZXJEaXJlY3RpdmVzKQogICAgICAgICAmJiBhbHRU
ZXh0ID09IG8uYWx0VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggODE4Y2I2Mjc1NS4uZGU0
MWMzYmQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xMzEsNiArMTMxLDkgQEAgcHVibGlj
OgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxTbmFwQXJlYT4gc2Nyb2xsU25hcEFyZWE7CiAjZW5k
aWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclggOiAyOyAvLyBPdmVyc2Nyb2xs
QmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JZIDogMjsgLy8gT3ZlcnNj
cm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+IGNvbnRlbnQ7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJEaXJlY3RpdmVNYXA+IGNvdW50ZXJEaXJlY3Rp
dmVzOwogICAgIFN0cmluZyBhbHRUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNzEyN2Y5OWFiZS4uYTlmOTQ2ZDk2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yMTQ1
LDYgKzIxNDUsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFTZXNzaW9uTWV0YWRhdGE+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTWVkaWFTZXNzaW9uTQogCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKKyAgICBlbmNvZGVy
IDw8IHBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICBlbmNvZGVy
IDw8IHBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7CisKICAgICBlbmNvZGVy
IDw8IHBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk7CiAgICAgZW5jb2RlciA8
PCBwYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eTsKIApAQCAtMjE2Miw2ICsyMTY1
LDExIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2NyCiAKIGJvb2wgQXJndW1lbnRDb2RlcjxTY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbXMpCiB7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bXMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlv
cikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1zLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1zLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGE5
Zjg2ZDI4ZjguLmY0ZWE3NTU1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1E
YXRhQ3VlVmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KQEAgLTg4NCw2ICs4
ODUsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50
SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uPiB7CiAKIG5hbWVzcGFjZSBXVEYgewogCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcj4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2
aW9yLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bywKKyAgICBXZWJDb3Jl
OjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW4sCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJl
aGF2aW9yOjpOb25lCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6Q29sb3JTcGFjZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAg
ICAgV2ViQ29yZTo6Q29sb3JTcGFjZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCmluZGV4IDIxOTdjMjczOGUuLjA3MzczMjZjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTQyNCw2ICsxNDI0LDEzIEBAIFN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJs
ZSBTeW50aGV0aWMgRWRpdGluZyBDb21tYW5kcyIKICAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAog
CitPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1
ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlvciIK
KyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IgcHJv
dG90eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggODEwYWRjZDRlNS4uMDVk
NzljMmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMjMwLDEyICsyMzAsMzEgQEAgdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4oY29uc3QgU2Nyb2wKICAgICBTZXRGb3JTY29wZTxib29sPiB1cGRhdGluZ0NoYW5nZShtX3Vw
ZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CiAKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENv
bnRhaW5lckxheWVyKQorICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFBy
b3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMp
CiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlJlYWNoYWJsZUNvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVO
b2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9s
bFBvc2l0aW9uKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsT3JpZ2luKSkgewogICAgICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAgICAgVUlTY3JvbGxWaWV3ICpzY3Jv
bGxWaWV3ID0gdGhpcy0+c2Nyb2xsVmlldygpOworCisgICAgICAgIC8vIEZJWE1FKHJkYXI6Ly9w
cm9ibGVtLzM0MzE1OTk3KTogVUlTY3JvbGxWaWV3IHNob3VsZCBoYXZlIHNvbWUga2luZCBvZiBz
dXBwb3J0IGZvciBvdmVyc2Nyb2xsLWJlaGF2aW9yIHRvIGVuYWJsZS9kaXNhYmxlOgorICAgICAg
ICAvLyAtIG5vbi1sb2NhbCBib3VuZGFyeSBkZWZhdWx0IGFjdGlvbnMgKGUuZy4gc2Nyb2xsIGNo
YWluaW5nKS4KKyAgICAgICAgLy8gLSBsb2NhbCBib3VuZGFyeSBkZWZhdWx0IGFjdGlvbnMgKGUu
Zy4gYm91bmNpbmcpLgorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgICAgIC8vIGlm
IChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMpKSB7CisgICAgICAgIC8vICAgICBzY3Jv
bGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlvckhvcml6b250YWwgPSBjb252ZXJ0T3ZlcnNjcm9sbEJl
aGF2aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFibGVBcmVh
UGFyYW1ldGVycygpLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgICAgICAvLyAg
ICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JWZXJ0aWNhbCA9IGNvbnZlcnRPdmVyc2Ny
b2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzKCkudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IpOworICAgICAgICAv
LyB9CisjZW5kaWYKKyAgICAgICAgLy8gRm9yIG5vdywgd2Ugb25seSBkaXNhYmxlIGJvdW5jaW5n
IHdoZW4gYm90aCBvdmVyZmxvdy14IGFuZCBvdmVyZmxvdy15IGFyZSBub25lLgorICAgICAgICAv
LyBVSVNjcm9sbFZpZXc6OmFsd2F5c0JvdW5jZSogZnVuY3Rpb25zIGNhbm5vdCBoZWxwIGhlcmUu
CisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMpKSB7CisgICAgICAg
ICAgICBzY3JvbGxWaWV3LmJvdW5jZXMgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBPdmVyc2Nyb2xs
QmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgICYmIHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxh
YmxlQXJlYVBhcmFtZXRlcnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBPdmVyc2Ny
b2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgID8gTk8gOiBZRVM7CisgICAgICAgIH0KKwog
ICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKSkgewogICAgICAgICAg
ICAgaWYgKCFtX3Njcm9sbFZpZXdEZWxlZ2F0ZSkKICAgICAgICAgICAgICAgICBtX3Njcm9sbFZp
ZXdEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUg
YWxsb2NdIGluaXRXaXRoU2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZTp0aGlzXSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAppbmRleCAwODY4MDQ3Zjk1Li4yMzc1MmRkYTg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTE5Miw2ICsxOTIsNyBAQAogI2RlZmluZSBXZWJLaXREb3dubG9hZEF0dHJpYnV0
ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIgog
I2RlZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dERpcmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQiCisj
ZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggZDgxM2MyZGUzZC4uMWY3ZGI2
YWVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCkBAIC02NzAsNiArNjcwLDcgQEAgcHVibGljOgogICAgICAgICBAWUVTLCBXZWJL
aXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCiAKKyAgICAg
ICAgQE5PLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAg
ICAgICAgQFlFUywgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VL
ZXksCiAgICAgICAgIEBOTywgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21G
aWxlVVJMc1F1aXJrS2V5LApAQCAtMzIxMyw2ICszMjE0LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAq
Y2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9y
S2V5OldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCist
IChCT09MKW92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jv
b2xWYWx1ZUZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtl
eV07Cit9CisKKy0gKHZvaWQpc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDooQk9PTClmbGFn
Cit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpQ1NTT01WaWV3U2Ny
b2xsaW5nQVBJRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5Oldl
YktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCmluZGV4IGVhZjk1NTYzYmMuLmQ3N2Q5MzJmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjU5
LDYgKzY1OSw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtIChCT09MKXVzZXJHZXN0dXJl
UHJvbWlzZVByb3BhZ2F0aW9uRW5hYmxlZDsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
dmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgb3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
bGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDNiMTE0ZGIzNDcuLmI4NzRlZGRhNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTMxNzksNiArMzE3OSw3
IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKIAogICAg
IHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgdmlzdWFs
Vmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxl
ZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoW3ByZWZlcmVu
Y2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTY3JvbGxpbmdBUElF
bmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZF0pOwogICAgIHNl
dHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFtwcmVm
ZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggOWE4NzVkNDc5ZS4uY2UwMTcyYmFlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yNjksNCArMjY5LDYgQEAgaW50ZXJmYWNlIElXZWJQ
cmVmZXJlbmNlc1ByaXZhdGU4IDogSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTcKICAgICBIUkVTVUxU
IHNldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoW2luXSBCT09MIGVuYWJsZWQpOwogICAg
IEhSRVNVTFQgbW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChbb3V0LCByZXR2YWxdIEJP
T0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5h
YmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKFsgb3V0LCByZXR2YWwgXSBCT09MKik7CisgICAgSFJFU1VMVCBzZXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggMmEyMTIxYWRi
OS4uYTJmMWI4ZTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE5OCw2ICsxOTgsOCBAQAogCiAjZGVmaW5lIFdlYktp
dENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQiCiAKKyNkZWZpbmUgV2ViS2l0T3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQiCisKICNkZWZpbmUgV2ViS2l0VXNlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5ICJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKIAogI2RlZmluZSBXZWJLaXRSZXNvdXJjZVRp
bWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOTNkZThhMzIw
YS4uY2VlNjQ0YmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmNwcApAQCAtMzQxLDYgKzM0MSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVE
ZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENG
U1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdl
YktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZh
bHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxz
ZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0UmVz
aXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CkBAIC0y
MjY5LDYgKzIyNzEsMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VM
VCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKiBl
bmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
KyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgV2Vi
UHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCBlbmFibGVkKQor
eworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVy
ZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJl
ZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCogZW5hYmxl
ZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuaAppbmRleCAyNDM3YjBlNzYyLi4yNjA0ZDllMTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2NSw2ICsyNjUsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEluc3BlY3RvckFkZGl0aW9uc0Vu
YWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZpc3Vh
bFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChCT09MKTsKKyAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNl
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091dF8gQk9PTCop
OwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggYmY2OGE3MTQ1ZC4uZDVjZTVhZmRhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUzMzQsNiArNTMzNCwxMSBAQCBIUkVT
VUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBu
b3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRWaXN1YWxW
aWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5v
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkK
KyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRlLT5DU1NPTVZpZXdTY3Jv
bGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAg
cmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDA2NDU3ZGZk
ZmQuLjNhODIzMTUwYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTEz
OCw2ICsxMzgsOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAgICAgICAgICAgYWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMgPSB2YWx1ZTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVXZWJHUFUg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIikKKyAgICAgICAg
ICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6Q1NTTG9naWNhbEVu
YWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNhbCA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6TGlu
ZUhlaWdodFVuaXRzRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBj
NWM4Yzg1OTkyLi4yY2E2MTk5NDBkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUNvbG9y
RmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0Jv
dW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVXZWJHUFUgeyBmYWxzZSB9OworICAg
IGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJs
ZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlTGluZUhlaWdodFVuaXRzIHsg
ZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDZmN2RmMDY5
YzEuLmZlMmJmYTMzYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KQEAgLTgzOSw2ICs4MzksNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxG
ZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgW3ByZWZlcmVuY2VzIHNl
dENTU1NoYWRvd1BhcnRzRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRBc3BlY3RS
YXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CisgICAgW3ByZWZlcmVu
Y2VzIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6WUVTXTsKIH0KIAogLy8gQ2FsbGVkIGJl
Zm9yZSBlYWNoIHRlc3QuCkBAIC05ODYsNiArOTg3LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJl
ZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBw
cmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvbG9yRmlsdGVy
OwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVk
ID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzOwogICAgIHBy
ZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVdlYkdQVTsKKyAgICBwcmVm
ZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gb3B0aW9ucy5lbmFibGVPdmVyc2Ny
b2xsQmVoYXZpb3I7CiAgICAgcHJlZmVyZW5jZXMuQ1NTTG9naWNhbEVuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJlZmVyZW5jZXMubGluZUhlaWdodFVuaXRzRW5hYmxl
ZCA9IG9wdGlvbnMuZW5hYmxlTGluZUhlaWdodFVuaXRzOwogICAgIHByZWZlcmVuY2VzLmFkQ2xp
Y2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAxNGRj
M2QzNDNhLi5mMzY1MTdhNWIzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKQEAgLTkyNSw2ICs5MjUsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJl
bmNlc0ZvclRlc3RPcHRpb25zKElXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMsIGNvbnN0CiAg
ICAgcHJlZmVyZW5jZXMtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQob3B0aW9ucy51c2VFcGhl
bWVyYWxTZXNzaW9uKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc1BhZ2VDYWNoZShvcHRpb25z
LmVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIHByZWZzUHJpdmF0ZS0+c2V0Q1NTT01WaWV3
U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChvcHRpb25zLmVuYWJsZUNTU09NVmlld1Ntb290aFNjcm9s
bGluZyk7CisgICAgcHJlZnNQcml2YXRlLT5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKG9w
dGlvbnMuZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBs
aWNhdGlvbklkKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>407672</attachid>
            <date>2020-09-01 05:00:40 -0700</date>
            <delta_ts>2020-09-01 05:00:40 -0700</delta_ts>
            <desc>Testcase (setting overscroll-behavior on the iframe&apos;s html element)</desc>
            <filename>overscroll-behavior.html</filename>
            <type>text/html</type>
            <size>2912</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPk92ZXJzY3JvbGwgQmVo
YXZpb3I8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCI+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgogICAgPHN0eWxlPgogICAg
ICAuc2Nyb2xsaW5nIHsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93
LXk6IGF1dG87CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAg
ICB9CiAgICAgIC5zY3JvbGxDb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3Jh
ZGllbnQoMTM1ZGVnLCByZWQsIGJsdWUpOwogICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICBo
ZWlnaHQ6IDMwMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAg
IDxoMT5PdmVyc2Nyb2xsIEJlaGF2aW9yPC9oMT4KCiAgICA8aDI+b3ZlcmZsb3csIGF1dG88L2gy
PgogICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5nIiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6
IDIwMHB4OyI+CiAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGluZyIgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgb3ZlcnNjcm9sbC1iZWhhdmlvcjogYXV0bzsiPgogICAgICAgIDxk
aXYgY2xhc3M9InNjcm9sbENvbnRlbnQiPjE8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYg
Y2xhc3M9InNjcm9sbENvbnRlbnQiPjI8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxoMj5vdmVyZmxv
dywgY29udGFpbjwvaDI+CiAgICA8ZGl2IGNsYXNzPSJzY3JvbGxpbmciIHN0eWxlPSJ3aWR0aDog
MjAwcHg7IGhlaWdodDogMjAwcHg7Ij4KICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5nIiBzdHls
ZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250
YWluOyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsQ29udGVudCI+MzwvZGl2PgogICAgICA8
L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsQ29udGVudCI+NDwvZGl2PgogICAgPC9kaXY+
CgogICAgPGgyPm92ZXJmbG93LCBub25lPC9oMj4KICAgIDxkaXYgY2xhc3M9InNjcm9sbGluZyIg
c3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgogICAgICA8ZGl2IGNsYXNzPSJz
Y3JvbGxpbmciIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IG92ZXJzY3JvbGwt
YmVoYXZpb3I6IG5vbmU7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxDb250ZW50Ij41PC9k
aXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxDb250ZW50Ij42PC9kaXY+
CiAgICA8L2Rpdj4KCiAgICA8aDI+aWZyYW1lLCBhdXRvPC9oMj4KICAgIDxpZnJhbWUgc3R5bGU9
IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiIHNyY2RvYz0iPGlmcmFtZSBzdHlsZT0mcXVv
dDt3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7JnF1b3Q7IHNyY2RvYz0mcXVvdDsmYW1wO2x0
O2h0bWwgc3R5bGU9J292ZXJzY3JvbGwtYmVoYXZpb3I6IGF1dG8mYW1wO2d0OyZhbXA7bHQ7ZGl2
IHN0eWxlPSZhbXA7cXVvdDt3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgYmx1ZSk7JmFtcDtxdW90OyZhbXA7Z3Q7JmFt
cDtsdDsvZGl2JmFtcDtndDsmYW1wO2x0Oy9odG1sJmFtcDtndDsmcXVvdDs+PC9pZnJhbWU+PGRp
diBzdHlsZT0mcXVvdDt3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgYmx1ZSk7JnF1b3Q7PjwvZGl2PiI+PC9pZnJhbWU+
CgogICAgPGgyPmlmcmFtZSwgY29udGFpbjwvaDI+CiAgICA8aWZyYW1lIHN0eWxlPSJ3aWR0aDog
MjAwcHg7IGhlaWdodDogMjAwcHg7IiBzcmNkb2M9IjxpZnJhbWUgc3R5bGU9JnF1b3Q7d2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyZxdW90OyBzcmNkb2M9JnF1b3Q7JmFtcDtsdDtodG1sIHN0
eWxlPSdvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluJyZhbXA7Z3Q7JmFtcDtsdDtkaXYgc3R5
bGU9JmFtcDtxdW90O3dpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFja2dyb3VuZDogbGlu
ZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBibHVlKTsmYW1wO3F1b3Q7JmFtcDtndDsmYW1wO2x0
Oy9kaXYmYW1wO2d0OyZhbXA7bHQ7L2h0bWwmYW1wO2d0OyZxdW90Oz48L2lmcmFtZT48ZGl2IHN0
eWxlPSZxdW90O3dpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFja2dyb3VuZDogbGluZWFy
LWdyYWRpZW50KDEzNWRlZywgcmVkLCBibHVlKTsmcXVvdDs+PC9kaXY+Ij48L2lmcmFtZT4KCiAg
ICA8aDI+aWZyYW1lLCBub25lPC9oMj4KICAgIDxpZnJhbWUgc3R5bGU9IndpZHRoOiAyMDBweDsg
aGVpZ2h0OiAyMDBweDsiIHNyY2RvYz0iPGlmcmFtZSBzdHlsZT0mcXVvdDt3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7JnF1b3Q7IHNyY2RvYz0mcXVvdDsmYW1wO2x0O2h0bWwgc3R5bGU9J292
ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmUnJmFtcDtndDsmYW1wO2x0O2RpdiBzdHlsZT0mYW1wO3F1
b3Q7d2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGll
bnQoMTM1ZGVnLCByZWQsIGJsdWUpOyZhbXA7cXVvdDsmYW1wO2d0OyZhbXA7bHQ7L2RpdiZhbXA7
Z3Q7JmFtcDtsdDsvaHRtbCZhbXA7Z3Q7JnF1b3Q7PjwvaWZyYW1lPjxkaXYgc3R5bGU9JnF1b3Q7
d2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQo
MTM1ZGVnLCByZWQsIGJsdWUpOyZxdW90Oz48L2Rpdj4iPjwvaWZyYW1lPgogIDwvYm9keT4KPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408125</attachid>
            <date>2020-09-06 10:55:50 -0700</date>
            <delta_ts>2020-09-07 10:15:14 -0700</delta_ts>
            <desc>WIP-patch-supported-desktop-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-010-0907.diff</filename>
            <type>text/plain</type>
            <size>79076</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNzcxNGI2OWY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGVkIGlm
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgaXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYt
ZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi5hNjc3YzRkNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgcmVzdWx0ID0gIm92ZXJzY3JvbGxCZWhhdmlvciIgaW4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgICBkb2N1bWVudC53cml0ZShg
JHtyZXN1bHR9IHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBp
ZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLmApOworCisgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3It
dmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NTUwZmY0NGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci12YWxpZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MgdGVz
dCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1l
bmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iYjUwNThk
MmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNj
cm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1lbmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciByZXN1bHQgPSAib3ZlcnNjcm9s
bEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKGAke3Jlc3VsdH0gdGVzdCBvdmVyc2Nyb2xs
QmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
IGlzIGVuYWJsZWQuYCk7CisgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwt
eG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApp
bmRleCA3MmFjMWNkZGYyLi40YzQ0ZmQyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0
ZWQudHh0CkBAIC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJm
bG93LXdyYXAgCiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJz
Y3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRk
aW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1i
b3R0b20gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggMjIyYzhi
MmJkNS4uNjcyOTljMmNhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4
dApAQCAtMyw4ICszLDcgQEAgRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLWJsb2Nr
IGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gYXNzZXJ0X3RydWU6IG92ZXIKIEZBSUwgUHJvcGVydHkg
b3ZlcnNjcm9sbC1iZWhhdmlvci1ibG9jayBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LWlubGluZSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJl
aGF2aW9yLWlubGluZSBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRl
ZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xs
LWJlaGF2aW9yLWlubGluZSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggaGFzIGlu
aXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXNu
J3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2VzIG5v
dCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9w
ZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRf
dHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQg
aW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3Bl
cnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZp
b3IteCBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggZG9lcyBub3QgaW5oZXJpdCAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhh
dmlvci15IGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwt
YmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
aW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKaW5kZXgg
ODIzZDYyMzk0Ny4uZGE5M2JkNzVhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJp
dGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAt
LT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAppbmRleCA3ZWNjOGRk
OTk3Li5hMjdhNGEwODczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5p
dGlhbC14bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKQEAgLTE5Myw2ICsxOTMsOCBAQCBQQVNTIG91dGxpbmUtd2lk
dGgKIFBBU1Mgb3ZlcmZsb3ctd3JhcCAKIFBBU1Mgb3ZlcmZsb3cteCAKIFBBU1Mgb3ZlcmZsb3ct
eSAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci14IAorUEFTUyBvdmVyc2Nyb2xsLWJlaGF2aW9y
LXkgCiBQQVNTIHBhZGRpbmctYmxvY2stZW5kIAogUEFTUyBwYWRkaW5nLWJsb2NrLXN0YXJ0IAog
UEFTUyBwYWRkaW5nLWJvdHRvbSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYTNmMTMzOGIzNi4uYjkyYjhlYmExZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMwNjAsNiArMzA2MCwxMiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyZmxvd1goKSk7
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CiAgICAgICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJmbG93WSgpKTsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBjc3NW
YWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3RkOjptYXgoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yWCgp
LCBzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSk7CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0
ZWRQYWRkaW5nT3JNYXJnaW5QaXhlbFZhbHVlPCZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwgJlJl
bmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3A+KHN0eWxlLCByZW5kZXJl
cik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhM2M3NmNkZGZmLi5j
NWYyNDYxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5
bGVEZWZzLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3Mu
aCIKICNpbmNsdWRlICJUaGVtZVR5cGVzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKQEAg
LTIyMDUsNiArMjIwNiw0MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJsZTsK
IH0KIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKE92ZXJzY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQoreworICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOworICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhh
dmlvcjo6Q29udGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWlu
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBj
b25zdAoreworICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CisKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgorICAgICAgICByZXR1cm4gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpDb250YWluOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAg
ICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworICAgIGNhc2UgQ1NTVmFsdWVBdXRv
OgorICAgICAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87Cit9CisKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
aWVzLmpzb24KaW5kZXggMmFjYjA5YzEyNy4uY2ZhZWZkOTZmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uCkBAIC0zMjg5LDYgKzMyODksNTMgQEAKICAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtb3ZlcmZsb3ctMy8jcHJvcGRlZi1v
dmVyZmxvdy15IgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9s
bC1iZWhhdmlvciI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CisgICAg
ICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgIm92ZXJzY3Jv
bGwtYmVoYXZpb3IteCIsCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9y
LXkiCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6
ICJvdmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1
cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9w
ZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg
ICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiB7CisgICAgICAgICAgICAidmFsdWVzIjogWwor
ICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAgICAgICAgICAgICAgICAibm9uZSIsCisgICAg
ICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImNvZGVnZW4t
cHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6ICJvdmVyc2Ny
b2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAg
ICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRldmVsb3BtZW50IgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAgICAgICAgICAgICAgICJ1cmwiOiAi
aHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJz
Y3JvbGwtYmVoYXZpb3IteCIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92
ZXJzY3JvbGwtYmVoYXZpb3IteSI6IHsKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAg
ICAgICAgICAgImNvbnRhaW4iLAorICAgICAgICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAg
ICAgICAiYXV0byIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogeworICAgICAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3JvbGxCZWhh
dmlvciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczov
L3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1i
ZWhhdmlvci15IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAicGFkZGluZyI6
IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAg
ImxvbmdoYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXgg
NmJhYzAwMzI2Ni4uYzhjZmY3YTZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KQEAgLTEzOTMsNiArMTM5Myw5IEBAIHBpbmNoLXpvb20KIC8vIGF1dG8KIHNtb290aAog
CisvLyBvdmVyc2Nyb2xsLWJlaGF2aW9yCisvLyBjb250YWluCisKIC8vIGhhbmdpbmctcHVuY3R1
YXRpb24KIGFsbG93LWVuZAogZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAKaW5kZXggYTAyYTgxOTBiOC4uMTE4YWVhMTJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydGllcy5jcHAKQEAgLTI1NSw2ICsyNTUsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVz
OjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHdlYmtpdE1hcmdpbkNvbGxhcHNlU2hvcnRoYW5k
KCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuIGdldDJW
YWx1ZXMob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJuIGdldDJWYWx1ZXMob3ZlcnNjcm9sbEJlaGF2aW9y
U2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAgICByZXR1
cm4gZ2V0NFZhbHVlcyhwYWRkaW5nU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nQmxvY2s6CkBAIC0xMTc3LDYgKzExNzksMTAgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGll
czo6YXNUZXh0KCkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6
CiAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZs
b3c7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Ny
b2xsQmVoYXZpb3JZOgorICAgICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQ
cm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVBhZGRpbmdSaWdodDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5n
Qm90dG9tOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5j
cHAKaW5kZXggNWE3ZDgwNGRhZC4uZDdjY2MxYzI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC03Niw2ICs3Niw3IEBAIENTU1BhcnNl
ckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHNoZWV0QmFzCiAjZW5kaWYKICAgICBkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgPSBk
b2N1bWVudC5zZXR0aW5ncygpLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCgpOwogICAgIHNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZCgpOworICAgIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1bWVu
dC5zZXR0aW5ncygpLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoKTsKICAgICB1c2VTeXN0ZW1B
cHBlYXJhbmNlID0gZG9jdW1lbnQucGFnZSgpID8gZG9jdW1lbnQucGFnZSgpLT51c2VTeXN0ZW1B
cHBlYXJhbmNlKCkgOiBmYWxzZTsKIH0KIApAQCAtMTAyLDYgKzEwMyw3IEBAIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBi
KQogICAgICAgICAmJiBhLmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCA9PSBiLmRlZmVycmVkQ1NT
UGFyc2VyRW5hYmxlZAogICAgICAgICAmJiBhLnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9PSBiLnNj
cm9sbEJlaGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmln
aW4gPT0gYi5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luCisgICAgICAgICYmIGEub3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCA9PSBiLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKICAgICAgICAg
JiYgYS51c2VTeXN0ZW1BcHBlYXJhbmNlID09IGIudXNlU3lzdGVtQXBwZWFyYW5jZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRleCAwZWU1
NWJmYzgwLi5hNjBhMzc5Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckNvbnRleHQuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICBib29s
IGRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBzY3JvbGxCZWhh
dmlvckVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBzdXBwb3J0
IGdldE1hdGNoZWRDU1NSdWxlcy4KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4g
eyBmYWxzZSB9OwpAQCAtMTA5LDcgKzExMCw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFz
aCB7CiAgICAgICAgICAgICAmIGtleS5hdHRhY2htZW50RW5hYmxlZCAgICAgICAgICAgICAgICAg
ICAgICAgICA8PCAxMQogI2VuZGlmCiAgICAgICAgICAgICAmIGtleS5zY3JvbGxCZWhhdmlvckVu
YWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAxMgotICAgICAgICAgICAgJiBrZXkubW9kZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTM7IC8vIEtlZXAgdGhpcyBs
YXN0LgorICAgICAgICAgICAgJiBrZXkub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAg
ICAgICAgICAgPDwgMTMKKyAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IDE0OyAvLyBLZWVwIHRoaXMgbGFzdC4KICAgICAgICAgaGFz
aCBePSBXVEY6OmludEhhc2goYml0cyk7CiAgICAgICAgIHJldHVybiBoYXNoOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRl
eCA4ZTg4ZmM5NWNkLi41NGUyNjMwNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC02ODMsNiArNjgzLDExIEBAIGJvb2wgQ1NT
UGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlkCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlVmlzaWJs
ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTY3Jv
bGwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU92ZXJs
YXk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WTogLy8gdmlzaWJsZSB8IGhpZGRlbiB8
IHNjcm9sbCB8IGF1dG8gfCBvdmVybGF5IHwgLXdlYmtpdC1wYWdlZC14IHwgLXdlYmtpdC1wYWdl
ZC15IChvdmVybGF5IGlzIGEgc3lub255bSBmb3IgYXV0bykKICAgICAgICAgcmV0dXJuIHZhbHVl
SUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4gfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlT3ZlcmxheSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0UGFnZWRY
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7CisgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJzY3JvbGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclk6CisgICAgICAgIGlmICghY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbnRhaW4gfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZU5vbmU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrQWZ0ZXI6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJyZWFrQmVmb3JlOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUF1
dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdm9p
ZFBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVBhZ2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUxl
ZnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJpZ2h0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZWN0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVyc28gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lk
Q29sdW1uIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW47CkBAIC05MzgsNiArOTQzLDggQEAg
Ym9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1dyYXA6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb2ludGVyRXZl
bnRzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKICAgICBjYXNlIENTU1Byb3BlcnR5
UmVzaXplOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAppbmRleCBlNDA0ZDQ4ZWY4Li5iYTM4NTFjMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjM3NCw2ICsyMzc0LDE0IEBA
IHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVTY3JvbGxCZWhhdmlvcihD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nCiAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7
CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3Io
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgYXV0byB2YWx1ZUlEID0gcmFuZ2Uu
cGVlaygpLmlkKCk7CisgICAgaWYgKHZhbHVlSUQgIT0gQ1NTVmFsdWVBdXRvICYmIHZhbHVlSUQg
IT0gQ1NTVmFsdWVOb25lICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVDb250YWluKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKK30KKwogc3Rh
dGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlclJhZGl1c0Nvcm5lcihDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlKQogewogICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gY29uc3VtZUxlbmd0aE9yUGVy
Y2VudChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKQEAgLTM5
NjEsNiArMzk2OSwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJz
ZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgICAgICBpZiAoIW1f
Y29udGV4dC5zY3JvbGxCZWhhdmlvckVuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBj
YXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFtX2NvbnRleHQub3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1
cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVDbGlwKG1fcmFuZ2UsIG1fY29udGV4dC5t
b2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246CkBAIC01NTUwLDYgKzU1NjMs
MzUgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBsYWNlU2VsZlNob3J0aGFuZChi
b29sIGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDU1NQcm9wZXJ0eVBh
cnNlcjo6Y29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCkK
K3sKKyAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlPdmVyc2Nyb2xs
QmVoYXZpb3IpLmxlbmd0aCgpID09IDIpOworICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxC
ZWhhdmlvckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX3Jhbmdl
LmF0RW5kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4g
b3ZlcnNjcm9sbEJlaGF2aW9yWCA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7
CisgICAgaWYgKCFvdmVyc2Nyb2xsQmVoYXZpb3JYKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclk7CisgICAgbV9yYW5nZS5j
b25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCisgICAgICAgIG92
ZXJzY3JvbGxCZWhhdmlvclkgPSBvdmVyc2Nyb2xsQmVoYXZpb3JYOworICAgIGVsc2UgeworICAg
ICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvcihtX3Jh
bmdlKTsKKyAgICAgICAgbV9yYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgICAgICBpZiAo
IW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclgsIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWCwgaW1wb3J0YW50KTsKKyAg
ICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclksIENTU1Byb3BlcnR5
T3ZlcnNjcm9sbEJlaGF2aW9yLCAqb3ZlcnNjcm9sbEJlaGF2aW9yWSwgaW1wb3J0YW50KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhh
bmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgc3dpdGNo
IChwcm9wZXJ0eSkgewpAQCAtNTU3MCw2ICs1NjEyLDggQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNl
cjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuIGNv
bnN1bWVPdmVyZmxvd1Nob3J0aGFuZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2
aW9yU2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6IHsKICAg
ICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gbV9yYW5nZS5wZWVrKCk7CiAgICAg
ICAgIGlmICh0b2tlbi5pZCgpID49IENTU1ZhbHVlQ2FwdGlvbiAmJiB0b2tlbi5pZCgpIDw9IENT
U1ZhbHVlU3RhdHVzQmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5oCmluZGV4IGI3ZTE5ZmJkNjQuLjMwMzMyNmZmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTExMiw2ICsxMTIsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgY29uc3VtZVRyYW5zZm9ybU9yaWdpbihib29sIGltcG9ydGFudCk7
CiAgICAgYm9vbCBjb25zdW1lUGVyc3BlY3RpdmVPcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogCisg
ICAgYm9vbCBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50
KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnB1dHM6CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBt
X3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGEyMzY2ZjFmYTAu
LmRkYWJkOTZkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMwMiwx
NSArMzAyLDE3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZUluU2Nyb2xsYWJs
ZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhCiAjZW5kaWYKIH0KIAotc3RhdGlj
IGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJs
ZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitzdGF0aWMgYm9vbCBkaWRTY3Jv
bGxJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3Qg
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgY29uc3QgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVS
ZXF1ZXN0KQogeworICAgIGRvdWJsZSBkZWx0YVggPSBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggPyAw
IDogd2hlZWxFdmVudC5kZWx0YVgoKTsKKyAgICBkb3VibGUgZGVsdGFZID0gaWdub3JlUmVxdWVz
dC5pZ25vcmVZID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFZKCk7CiAgICAgU2Nyb2xsR3JhbnVsYXJp
dHkgc2Nyb2xsR3JhbnVsYXJpdHkgPSB3aGVlbEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0
eSh3aGVlbEV2ZW50LmRlbHRhTW9kZSgpKTsKICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQg
PSBmYWxzZTsKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKHdoZWVsRXZl
bnQuZGVsdGFYKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVB
cmVhLnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xs
TGVmdCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOworICAgIGlmIChmbG9hdCBh
YnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFYKSkKKyAgICAgICAgZGlkSGFuZGxlV2hlZWxF
dmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwoZGVsdGFYID4gMCA/IFNjcm9sbFJpZ2h0IDog
U2Nyb2xsTGVmdCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEpOwogICAgIAotICAg
IGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVkoKSkp
Ci0gICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKHdo
ZWVsRXZlbnQuZGVsdGFZKCkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxHcmFu
dWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBz
dGQ6OmFicyhkZWx0YVkpKQorICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFi
bGVBcmVhLnNjcm9sbChkZWx0YVkgPiAwID8gU2Nyb2xsRG93biA6IFNjcm9sbFVwLCBzY3JvbGxH
cmFudWxhcml0eSwgYWJzb2x1dGVEZWx0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdo
ZWVsRXZlbnQ7CiB9CkBAIC0zMzYsMjQgKzMzOCw0MSBAQCBzdGF0aWMgYm9vbCBoYW5kbGVXaGVl
bEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvbnN0IFdo
ZQogICAgIGlmICghc2hvdWxkSGFuZGxlRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIElnbm9yZURlbHRhUmVxdWVzdCBpZ25vcmVSZXF1ZXN0OwogICAgIGlmIChpczxSZW5kZXJM
aXN0Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSkKLSAgICAgICAgcmV0dXJuIGRpZFNjcm9sbElu
U2Nyb2xsYWJsZUFyZWEoZG93bmNhc3Q8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2luZ0Jv
eCksIHdoZWVsRXZlbnQpOworICAgICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJl
YShkb3duY2FzdDxSZW5kZXJMaXN0Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVu
dCwgaWdub3JlUmVxdWVzdCk7CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRFbmNsb3NpbmdCb3gg
PSAmaW5pdGlhbEVuY2xvc2luZ0JveDsKKyAgICBib29sIGlnbm9yZURlbHRhWCA9IGZhbHNlOwor
ICAgIGJvb2wgaWdub3JlRGVsdGFZID0gZmFsc2U7CisgICAgYm9vbCBiaWFzVG9WZXJ0aWNhbCA9
IGFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSA8PSBhYnMod2hlZWxFdmVudC5kZWx0YVkoKSk7Cisg
ICAgYXV0byogZG9jdW1lbnRTY3JvbGxpbmdFbGVtZW50ID0gY3VycmVudEVuY2xvc2luZ0JveC0+
ZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCk7CiAgICAgd2hpbGUgKGN1cnJlbnRFbmNsb3Np
bmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBib3hMYXllciA9IGN1cnJlbnRFbmNs
b3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1FdmVudCA9IHdo
ZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKICAgICAgICAgICAgIGJvb2wgc2Ny
b2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVs
dGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxh
dGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAgICAgICAg
YXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2Np
dHkoaWdub3JlRGVsdGFYID8gMCA6IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBpZ25v
cmVEZWx0YVkgPyAwIDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZl
bG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5ZXIt
PmhhbmRsZVdoZWVsRXZlbnQoY29waWVkRXZlbnQpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFy
ZWEoKmJveExheWVyLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgaWdub3JlUmVxdWVzdCA9IHsgaWdub3JlRGVsdGFYLCBpZ25vcmVEZWx0YVkgfTsK
KyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlkU2Nyb2xsSW5TY3JvbGxh
YmxlQXJlYSgqYm94TGF5ZXIsIHdoZWVsRXZlbnQsIGlnbm9yZVJlcXVlc3QpOworICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGJvb2wgaXNEb2N1bWVudFNj
cm9sbGluZ0VsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkgPT0gZG9jdW1l
bnRTY3JvbGxpbmdFbGVtZW50OworICAgICAgICBpZiAoIWlzRG9jdW1lbnRTY3JvbGxpbmdFbGVt
ZW50ICYmICFpZ25vcmVEZWx0YVggJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5bGUoKS5vdmVy
c2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAg
ICAgaWdub3JlRGVsdGFYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFpc0RvY3VtZW50U2Nyb2xsaW5n
RWxlbWVudCAmJiAhaWdub3JlRGVsdGFZICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCku
b3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAg
ICAgICAgIGlnbm9yZURlbHRhWSA9IHRydWU7CisgICAgICAgIGlmICgoaWdub3JlRGVsdGFYICYm
IGlnbm9yZURlbHRhWSkKKyAgICAgICAgICAgIHx8IChpZ25vcmVEZWx0YVggJiYgIWJpYXNUb1Zl
cnRpY2FsKQorICAgICAgICAgICAgfHwgKGlnbm9yZURlbHRhWSAmJiBiaWFzVG9WZXJ0aWNhbCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICBjdXJyZW50RW5jbG9zaW5nQm94
ID0gY3VycmVudEVuY2xvc2luZ0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIGlmICgh
Y3VycmVudEVuY2xvc2luZ0JveCB8fCBjdXJyZW50RW5jbG9zaW5nQm94LT5pc1JlbmRlclZpZXco
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NjIsNiArMjg4MSwxOSBAQCBib29s
IEV2ZW50SGFuZGxlcjo6Y29tcGxldGVXaWRnZXRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQsIGNvbgogICAgIHJldHVybiBwbGF0Zm9ybUNvbXBsZXRlUGxhdGZvcm1X
aWRnZXRXaGVlbEV2ZW50KGV2ZW50LCAqd2lkZ2V0LmdldCgpLCBzY3JvbGxhYmxlQXJlYSk7CiB9
CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZVBhcmVudEZyYW1lSWdub3JlRGVsdGFSZXF1ZXN0KEZyYW1l
JiBmcmFtZSwgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVEZWx0YSkKK3sKKyAgICBhdXRvKiBw
YXJlbnQgPSBmcmFtZS50cmVlKCkucGFyZW50KCk7CisgICAgY29uc3QgU2Nyb2xsYWJsZUFyZWEq
IHZpZXcgPSBmcmFtZS52aWV3KCk7CisgICAgaWYgKCFmcmFtZS5wYWdlKCkgfHwgIXBhcmVudCB8
fCAhdmlldykKKyAgICAgICAgcmV0dXJuOworICAgIGlmICh2aWV3LT5ob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICBpZ25v
cmVEZWx0YS5pZ25vcmVYID0gdHJ1ZTsKKyAgICBpZiAodmlldy0+dmVydGljYWxPdmVyc2Nyb2xs
QmVoYXZpb3IoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgIGlnbm9yZURl
bHRhLmlnbm9yZVkgPSB0cnVlOworICAgIGZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250
cm9sbGVyKCkudXBkYXRlSWdub3JlRGVsdGFSZXF1ZXN0KCpwYXJlbnQsIGlnbm9yZURlbHRhKTsK
K30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBldmVudCkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IG1fZnJhbWUuZG9jdW1l
bnQoKTsKQEAgLTI5NDcsMTIgKzI5NzksNDYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBib29sIGFsbG93
U2Nyb2xsaW5nID0gdHJ1ZTsKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCiAgICAg
YWxsb3dTY3JvbGxpbmcgPSBtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVy
KCkubGF0Y2hpbmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKG1fZnJhbWUsIHNjcm9sbGFibGVBcmVh
KTsKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdub3JlRGVsdGEgPSBtX2ZyYW1lLnBhZ2UoKS0+
c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkuZ2V0SWdub3JlRGVsdGFSZXF1ZXN0KG1fZnJhbWUp
OwogI2VuZGlmCiAgICAgaWYgKGFsbG93U2Nyb2xsaW5nKSB7CisgICAgICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCBhZGp1c3RlZFdoZWVsRXZlbnQgPSBQbGF0Zm9ybVdoZWVsRXZlbnQoZXZlbnQpOwor
I2lmIEVOQUJMRShXSEVFTF9FVkVOVF9MQVRDSElORykKKyAgICAgICAgaWYgKHNjcm9sbGFibGVB
cmVhID09IHZpZXcpIHsKKyAgICAgICAgICAgIGJvb2wgYmlhc1RvVmVydGljYWwgPSBhYnMoZXZl
bnQuZGVsdGFYKCkpIDw9IGFicyhldmVudC5kZWx0YVkoKSk7CisgICAgICAgICAgICBpZiAoaWdu
b3JlRGVsdGEuaWdub3JlWCAmJiAhYmlhc1RvVmVydGljYWwpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIW1fZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICAgICAgICAgICAgICB1cGRhdGVQ
YXJlbnRGcmFtZUlnbm9yZURlbHRhUmVxdWVzdChtX2ZyYW1lLCBpZ25vcmVEZWx0YSk7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYXV0byBwb3NpdGlvbiA9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigp
OworICAgICAgICAgICAgICAgIGF1dG8gbWluaW11bVBvc2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEt
Pm1pbmltdW1TY3JvbGxQb3NpdGlvbigpOworICAgICAgICAgICAgICAgIGF1dG8gbWF4aW11bVBv
c2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEtPm1heGltdW1TY3JvbGxQb3NpdGlvbigpOworICAgICAg
ICAgICAgICAgIGlmICgocG9zaXRpb24ueCgpIDw9IG1pbmltdW1Qb3NpdGlvbi54KCkgJiYgZXZl
bnQuZGVsdGFYKCkgPiAwKQorICAgICAgICAgICAgICAgICAgICB8fCAocG9zaXRpb24ueCgpID49
IG1heGltdW1Qb3NpdGlvbi54KCkgJiYgZXZlbnQuZGVsdGFYKCkgPCAwKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGlnbm9yZURlbHRhLmlnbm9yZVggJiYgaWdu
b3JlRGVsdGEuaWdub3JlWSkKKyAgICAgICAgICAgICAgICB8fCAoaWdub3JlRGVsdGEuaWdub3Jl
WSAmJiBiaWFzVG9WZXJ0aWNhbCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAgICAgICAgIGZsb2F0IGRlbHRhWCA9IGlnbm9yZURlbHRhLmlnbm9yZVggPyAwIDogZXZlbnQu
ZGVsdGFYKCk7CisgICAgICAgICAgICBmbG9hdCBkZWx0YVkgPSBpZ25vcmVEZWx0YS5pZ25vcmVZ
ID8gMCA6IGV2ZW50LmRlbHRhWSgpOworICAgICAgICAgICAgYWRqdXN0ZWRXaGVlbEV2ZW50ID0g
YWRqdXN0ZWRXaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZGVsdGFYLCBkZWx0
YVksIGV2ZW50LnNjcm9sbGluZ1ZlbG9jaXR5KCkpOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgLy8gRklYTUU6IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKCkgaXMgb25seSBjYWxs
ZWQgZm9yIEZyYW1lVmlldyBzY3JvbGxpbmcsIG5vdCBvdmVyZmxvdyBzY3JvbGxpbmcsIHdoaWNo
IGlzIGNvbmZ1c2luZy4KLSAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRG
b3JTY3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKLSAgICAgICAgcHJvY2Vzc1doZWVs
RXZlbnRGb3JTY3JvbGxTbmFwKGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CisgICAgICAgIGhhbmRs
ZWRFdmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGFkanVzdGVkV2hlZWxFdmVu
dCwgc2Nyb2xsYWJsZUFyZWEpOworICAgICAgICBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNu
YXAoYWRqdXN0ZWRXaGVlbEV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgfQorCisjaWYgRU5B
QkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQorICAgIGlmICghYWxsb3dTY3JvbGxpbmcgJiYgIW1f
ZnJhbWUuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgdXBkYXRlUGFyZW50RnJhbWVJZ25vcmVEZWx0
YVJlcXVlc3QobV9mcmFtZSwgaWdub3JlRGVsdGEpOworI2VuZGlmCisKICAgICByZXR1cm4gaGFu
ZGxlZEV2ZW50OwogfQogCkBAIC0yOTk4LDE0ICszMDY0LDE4IEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpkZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3
aGVlbEV2CiAgICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVy
KCkubGF0Y2hpbmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKG1fZnJhbWUsIGxhdGNoZWRTY3JvbGxl
cikpCiAgICAgICAgIHJldHVybjsKIAorICAgIElnbm9yZURlbHRhUmVxdWVzdCBpZ25vcmVEZWx0
YSA9IG1fZnJhbWUucGFnZSgpLT5zY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIoKS5nZXRJZ25vcmVE
ZWx0YVJlcXVlc3QobV9mcmFtZSk7CiAgICAgaWYgKGxhdGNoZWRTY3JvbGxlcikgewogICAgICAg
ICBpZiAobGF0Y2hlZFNjcm9sbGVyID09IG1fZnJhbWUudmlldygpKSB7CiAgICAgICAgICAgICAv
LyBGcmFtZVZpZXcgc2Nyb2xsaW5nIGlzIGhhbmRsZWQgdmlhIHByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKCkuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQogICAgICAgICBh
dXRvIHBsYXRmb3JtRXZlbnQgPSB3aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2ZW50KCk7
CiAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7CisgICAgICAgICAgICBpZiAoaWdub3JlRGVs
dGEuaWdub3JlWCkKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuc2V0V2lk
dGgoMCk7CisgICAgICAgICAgICBpZiAoaWdub3JlRGVsdGEuaWdub3JlWSkKKyAgICAgICAgICAg
ICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuc2V0SGVpZ2h0KDApOwogICAgICAgICAgICAgYXV0
byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHko
ZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWln
aHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CiAgICAgICAgICAgICBpZiAobGF0Y2hlZFNjcm9sbGVy
LT5oYW5kbGVXaGVlbEV2ZW50KGNvcGllZEV2ZW50KSkKICAgICAgICAgICAgICAgICB3aGVlbEV2
ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NGUzMzM1NzFlOS4uZDI0ZTQzNTliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NDE4LDYgKzQxOCwyOCBAQCBib29sIEZyYW1lVmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBjb25zdAog
ICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCkuZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAorT3ZlcnNj
cm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xs
LWJlaGF2aW9yIGlzIGxpbWl0ZWQgdG8gdGhlIGN1cnJlbnQgZnJhbWUuCisgICAgLy8gU2hvdWxk
IG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBo
dHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8q
IGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0
ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpID8gZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpIDogbnVsbHB0cjsKKyAgICBpZiAoIXNjcm9sbGlu
Z09iamVjdCkKKyAgICAgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCk7CisgICAgcmV0dXJuIHNjcm9sbGluZ09iamVjdC0+c3R5bGUoKS5vdmVy
c2Nyb2xsQmVoYXZpb3JYKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6OnZl
cnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJl
bnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIGlzIGxpbWl0ZWQgdG8gdGhl
IGN1cnJlbnQgZnJhbWUuCisgICAgLy8gU2hvdWxkIG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdl
IHRoZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dn
LWRyYWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVu
dCgpOworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpID8gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigp
IDogbnVsbHB0cjsKKyAgICBpZiAoIXNjcm9sbGluZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIFNj
cm9sbGFibGVBcmVhOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHJldHVybiBz
Y3JvbGxpbmdPYmplY3QtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiB2b2lk
IEZyYW1lVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBp
ZiAoIXBhcmVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkN2U4ZGI5YWY0Li42
NmUzNGQxY2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTc0MCw2ICs3NDAsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgdW5vYnNjdXJlZENvbnRlbnRTaXplQ2hhbmdlZCgpIGZpbmFsOwog
CiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgaW50ZXJmYWNlCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKwog
ICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVj
dCYpIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5h
bDsKICAgICB2b2lkIHNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0Jikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMmY4NGM1YmMwYy4uYjU4OWE2
Y2IxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjM5LDYgKzYzOSw5IEBAIHZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZDoKIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiAgIGluaXRpYWw6IHRydWUKIAorb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlh
bDogZmFsc2UKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDNm
MjU4ZmQ4NGQuLjNkMzhiODgwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhh
bmRsZXJNYWMubW0KQEAgLTc4Niw3ICs3ODYsNyBAQCBzdGF0aWMgU2Nyb2xsYWJsZUFyZWEqIHNj
cm9sbGFibGVBcmVhRm9yQm94KFJlbmRlckJveCYgYm94KQogfQogCiAvLyBGSVhNRTogVGhpcyBj
b3VsZCBiZSB3cml0dGVuIGluIHRlcm1zIG9mIFNjcm9sbGFibGVBcmVhOjplbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSgpLgotc3RhdGljIENvbnRhaW5lck5vZGUqIGZpbmRFbmNsb3NpbmdTY3JvbGxh
YmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIG5vZGUsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKK3N0YXRpYyBDb250YWluZXJOb2RlKiBmaW5kRW5jbG9zaW5nU2Nyb2xs
YWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKiBub2RlLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIElnbm9yZURlbHRhUmVxdWVzdCYgaWdub3JlRGVsdGEpCiB7CiAgICAg
YXV0byBiaWFzZWREZWx0YSA9IFNjcm9sbENvbnRyb2xsZXI6OndoZWVsRGVsdGFCaWFzaW5nVG93
YXJkc1ZlcnRpY2FsKHdoZWVsRXZlbnQpOwogCkBAIC04MDAsMTkgKzgwMCwyOSBAQCBzdGF0aWMg
Q29udGFpbmVyTm9kZSogZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIoQ29udGFpbmVy
Tm9kZSogbm9kZSwgY29ucwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAg
UmVuZGVyQm94KiBib3ggPSBjYW5kaWRhdGUtPnJlbmRlckJveCgpOwotICAgICAgICBpZiAoIWJv
eCB8fCAhYm94LT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAKLSAgICAgICAgYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBz
Y3JvbGxhYmxlQXJlYUZvckJveCgqYm94KTsKLSAgICAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYSkK
KyAgICAgICAgaWYgKCFib3gpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAo
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTWF5QmVnaW4gfHwg
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2FuY2VsbGVkKQot
ICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAgICAgICAgYXV0byogc2Nyb2xsYWJsZUFy
ZWEgPSBzY3JvbGxhYmxlQXJlYUZvckJveCgqYm94KTsKKyAgICAgICAgaWYgKHNjcm9sbGFibGVB
cmVhICYmIGJveC0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpIHsKKyAgICAg
ICAgICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VN
YXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VD
YW5jZWxsZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKIAotICAgICAgICBp
ZiAoKGJpYXNlZERlbHRhLmhlaWdodCgpID4gMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVk
VG9Ub3AoKSkgfHwgKGJpYXNlZERlbHRhLmhlaWdodCgpIDwgMCAmJiAhc2Nyb2xsYWJsZUFyZWEt
PnNjcm9sbGVkVG9Cb3R0b20oKSkKLSAgICAgICAgICAgIHx8IChiaWFzZWREZWx0YS53aWR0aCgp
ID4gMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9MZWZ0KCkpIHx8IChiaWFzZWREZWx0
YS53aWR0aCgpIDwgMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9SaWdodCgpKSkKLSAg
ICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgICAgICAgICBpZiAoKGJpYXNlZERlbHRh
LmhlaWdodCgpID4gMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9Ub3AoKSkgfHwgKGJp
YXNlZERlbHRhLmhlaWdodCgpIDwgMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9Cb3R0
b20oKSkKKyAgICAgICAgICAgICAgICB8fCAoYmlhc2VkRGVsdGEud2lkdGgoKSA+IDAgJiYgIXNj
cm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvTGVmdCgpKSB8fCAoYmlhc2VkRGVsdGEud2lkdGgoKSA8
IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvUmlnaHQoKSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBMZXQgRnJhbWVWaWV3
Ojpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIGRlY2lkZSB3aGljaCBub2RlJ3Mgb3ZlcnNj
cm9sbC1iYWh2aW9yIGlzIGVmZmVjdGl2ZSB0byBGcmFtZVZpZXcuCisgICAgICAgIGlmIChjYW5k
aWRhdGUgPT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpLmJvZHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBpZiAoY2FuZGlkYXRlICE9IG5vZGUgJiYgYm94LT5zdHlsZSgpLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAg
ICBpZ25vcmVEZWx0YS5pZ25vcmVYID0gdHJ1ZTsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZSAhPSBu
b2RlICYmIGJveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGEuaWdub3JlWSA9IHRydWU7Cisg
ICAgICAgIGlmICgoaWdub3JlRGVsdGEuaWdub3JlWCAmJiBpZ25vcmVEZWx0YS5pZ25vcmVZKQor
ICAgICAgICAgICAgfHwgKGlnbm9yZURlbHRhLmlnbm9yZVggJiYgIWJpYXNlZERlbHRhLmhlaWdo
dCgpKQorICAgICAgICAgICAgfHwgKGlnbm9yZURlbHRhLmlnbm9yZVkgJiYgIWJpYXNlZERlbHRh
LndpZHRoKCkpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBudWxscHRyOwpAQCAtODU5LDE4ICs4NjksMTcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW4KICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKIAorICAgIElnbm9yZURlbHRh
UmVxdWVzdCBpZ25vcmVEZWx0YTsKICAgICBpZiAoZXZlbnRUYXJnZXRJc1BsYXRmb3JtV2lkZ2V0
KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpKQogICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IHNjcm9s
bGFibGVBcmVhRm9yRXZlbnRUYXJnZXQod2hlZWxFdmVudFRhcmdldC5nZXQoKSk7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGF1dG8qIHNjcm9sbGFibGVDb250YWluZXIgPSBmaW5kRW5jbG9zaW5nU2Ny
b2xsYWJsZUNvbnRhaW5lcih3aGVlbEV2ZW50VGFyZ2V0LmdldCgpLCB3aGVlbEV2ZW50KTsKKyAg
ICAgICAgYXV0byogc2Nyb2xsYWJsZUNvbnRhaW5lciA9IGZpbmRFbmNsb3NpbmdTY3JvbGxhYmxl
Q29udGFpbmVyKHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCksIHdoZWVsRXZlbnQsIGlnbm9yZURlbHRh
KTsKICAgICAgICAgaWYgKHNjcm9sbGFibGVDb250YWluZXIpCiAgICAgICAgICAgICBzY3JvbGxh
YmxlQXJlYSA9IHNjcm9sbGFibGVBcmVhRm9yQ29udGFpbmVyTm9kZSgqc2Nyb2xsYWJsZUNvbnRh
aW5lcik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhID0gbWFrZVdl
YWtQdHIoc3RhdGljX2Nhc3Q8U2Nyb2xsYWJsZUFyZWEmPigqdmlldykpOwogICAgIH0KIAotICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRsZXI6
OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoKSAtIGV2ZW50IiA8PCB3aGVlbEV2ZW50IDw8ICIg
Zm91bmQgc2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQo
KSkgPDwgIiwgbGF0Y2hpbmcgc3RhdGUgaXMgIiA8PCBwYWdlLT5zY3JvbGxMYXRjaGluZ0NvbnRy
b2xsZXIoKSk7Ci0KICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEgJiYgcGFnZS0+aXNNb25pdG9yaW5n
V2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbEFuaW1hdG9yKCku
c2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsK
IApAQCAtODgwLDcgKzg4OSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2
ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgaWYgKG1f
ZnJhbWUuaXNNYWluRnJhbWUoKSAmJiB3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCiAgICAg
ICAgIHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygp
OwogCi0gICAgcGFnZS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkudXBkYXRlQW5kRmV0Y2hM
YXRjaGluZ1N0YXRlRm9yRnJhbWUobV9mcmFtZSwgd2hlZWxFdmVudCwgd2hlZWxFdmVudFRhcmdl
dCwgc2Nyb2xsYWJsZUFyZWEsIGlzT3ZlcldpZGdldCk7CisgICAgcGFnZS0+c2Nyb2xsTGF0Y2hp
bmdDb250cm9sbGVyKCkudXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUobV9mcmFt
ZSwgd2hlZWxFdmVudCwgd2hlZWxFdmVudFRhcmdldCwgc2Nyb2xsYWJsZUFyZWEsIGlnbm9yZURl
bHRhLCBpc092ZXJXaWRnZXQpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6cmVjb3JkV2hlZWxF
dmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNjBmYjZmNzk5OS4uMmUwOTA4YzExNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKQEAgLTcxNiw2ICs3MTYsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9s
bGluZwogICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVB
cmVhLnZpc2libGVTaXplKCkpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9s
bFBhcmFtZXRlcnM7CisgICAgc2Nyb2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwor
ICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxh
YmxlQXJlYS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRl
cnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFs
U2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxF
bGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAg
ICAgc2Nyb2xsUGFyYW1ldGVycy5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6
b250YWxTY3JvbGxiYXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29u
dHJvbGxlci5jcHAKaW5kZXggNjRhNmUzZWQwYi4uMTAxNzAxM2E3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xs
ZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgYm9vbCBTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6
OmxhdGNoaW5nQWxsb3dzU2Nyb2xsaW5nSW5GcmFtZShjb25zdCBGcmFtZSYgZnJhbWUKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyOjp1cGRhdGVB
bmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZShGcmFtZSYgZnJhbWUsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgUmVmUHRyPEVsZW1lbnQ+JiBsYXRjaGVkRWxlbWVudCwg
V2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIHNjcm9sbGFibGVBcmVhLCBib29sJiBpc092ZXJXaWRn
ZXQpCit2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGlu
Z1N0YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQsIFJlZlB0cjxFbGVtZW50PiYgbGF0Y2hlZEVsZW1lbnQsIFdlYWtQdHI8U2Nyb2xs
YWJsZUFyZWE+JiBzY3JvbGxhYmxlQXJlYSwgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVEZWx0
YSwgYm9vbCYgaXNPdmVyV2lkZ2V0KQogewogICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVyZVN0
YXJ0KCkpIHsKICAgICAgICAgLy8gV2UgY2FuIGhhdmUgZXhpc3Rpbmcgc3RhdGUgaGVyZSBiZWNh
dXNlIHN0YXRlIGlzIGNsZWFyZWQgb24gYSB0aW1lci4KQEAgLTExOCw2ICsxMTgsNyBAQCB2b2lk
IFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9y
RnJhbWUoRnJhbWUmIGZyYW1lLAogICAgICAgICAgICAgc3RhdGUud2hlZWxFdmVudEVsZW1lbnQg
PSBtYWtlV2Vha1B0cihsYXRjaGVkRWxlbWVudC5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoc2hv
dWxkTGF0Y2hUb1Njcm9sbGFibGVBcmVhKGZyYW1lLCBzY3JvbGxhYmxlQXJlYS5nZXQoKSwgbV9j
dW11bGF0aXZlRXZlbnREZWx0YSkpCiAgICAgICAgICAgICAgICAgc3RhdGUuc2Nyb2xsYWJsZUFy
ZWEgPSBzY3JvbGxhYmxlQXJlYTsKKyAgICAgICAgICAgIHN0YXRlLmlnbm9yZURlbHRhID0gaWdu
b3JlRGVsdGE7CiAgICAgICAgICAgICBzdGF0ZS5pc092ZXJXaWRnZXQgPSBpc092ZXJXaWRnZXQ7
CiAKICAgICAgICAgICAgIG1fZnJhbWVTdGF0ZVN0YWNrLmFwcGVuZChXVEZNb3ZlKHN0YXRlKSk7
CkBAIC0xMzEsOCArMTMyLDEwIEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyOjp1cGRh
dGVBbmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZShGcmFtZSYgZnJhbWUsCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGxhdGNoZWQgYXQgZ2VzdHVy
ZSBzdGFydCBiZWNhdXNlIG9mIHNtYWxsIGRlbHRhcy4gUmUtZXZhbHVhdGUgbGF0Y2hpbmcgYmFz
ZWQgb24gYWNjdW11bGF0ZWQgZGVsdGEuCi0gICAgICAgIGlmICghc3RhdGUtPnNjcm9sbGFibGVB
cmVhICYmIHNob3VsZExhdGNoVG9TY3JvbGxhYmxlQXJlYShmcmFtZSwgc2Nyb2xsYWJsZUFyZWEu
Z2V0KCksIG1fY3VtdWxhdGl2ZUV2ZW50RGVsdGEpKQorICAgICAgICBpZiAoIXN0YXRlLT5zY3Jv
bGxhYmxlQXJlYSAmJiBzaG91bGRMYXRjaFRvU2Nyb2xsYWJsZUFyZWEoZnJhbWUsIHNjcm9sbGFi
bGVBcmVhLmdldCgpLCBtX2N1bXVsYXRpdmVFdmVudERlbHRhKSkgewogICAgICAgICAgICAgc3Rh
dGUtPnNjcm9sbGFibGVBcmVhID0gc2Nyb2xsYWJsZUFyZWE7CisgICAgICAgICAgICBzdGF0ZS0+
aWdub3JlRGVsdGEgPSBpZ25vcmVEZWx0YTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmICgh
d2hlZWxFdmVudC51c2VMYXRjaGVkRXZlbnRFbGVtZW50KCkpCkBAIC0xNDMsMTAgKzE0NiwzNCBA
QCB2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0
YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLAogICAgICAgICAgICAgbGF0Y2hlZEVsZW1lbnQgPSBz
dGF0ZS53aGVlbEV2ZW50RWxlbWVudC5nZXQoKTsKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVh
ID0gc3RhdGUuc2Nyb2xsYWJsZUFyZWE7CiAgICAgICAgICAgICBpc092ZXJXaWRnZXQgPSBzdGF0
ZS5pc092ZXJXaWRnZXQ7CisgICAgICAgICAgICBpZ25vcmVEZWx0YSA9IHN0YXRlLmlnbm9yZURl
bHRhOwogICAgICAgICB9CiAgICAgfQogfQogCitJZ25vcmVEZWx0YVJlcXVlc3QgU2Nyb2xsTGF0
Y2hpbmdDb250cm9sbGVyOjpnZXRJZ25vcmVEZWx0YVJlcXVlc3QoY29uc3QgRnJhbWUmIGZyYW1l
KSBjb25zdAoreworICAgIGlmICghbV9mcmFtZVN0YXRlU3RhY2suaXNFbXB0eSgpKSB7CisgICAg
ICAgIGF1dG8qIGZyYW1lU3RhdGUgPSBzdGF0ZUZvckZyYW1lKGZyYW1lKTsKKyAgICAgICAgaWYg
KGZyYW1lU3RhdGUpCisgICAgICAgICAgICByZXR1cm4gZnJhbWVTdGF0ZS0+aWdub3JlRGVsdGE7
CisgICAgfQorCisgICAgcmV0dXJuIHsgZmFsc2UsIGZhbHNlIH07Cit9CisKK3ZvaWQgU2Nyb2xs
TGF0Y2hpbmdDb250cm9sbGVyOjp1cGRhdGVJZ25vcmVEZWx0YVJlcXVlc3QoY29uc3QgRnJhbWUm
IGZyYW1lLCBjb25zdCBJZ25vcmVEZWx0YVJlcXVlc3QmIGlnbm9yZURlbHRhRnJvbVN1YkZyYW1l
KQoreworICAgIGlmIChtX2ZyYW1lU3RhdGVTdGFjay5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBpZiAoYXV0byogZnJhbWVTdGF0ZSA9IHN0YXRlRm9yRnJhbWUoZnJhbWUpKSB7Cisg
ICAgICAgIGlmIChpZ25vcmVEZWx0YUZyb21TdWJGcmFtZS5pZ25vcmVYKQorICAgICAgICAgICAg
ZnJhbWVTdGF0ZS0+aWdub3JlRGVsdGEuaWdub3JlWCA9IHRydWU7CisgICAgICAgIGlmIChpZ25v
cmVEZWx0YUZyb21TdWJGcmFtZS5pZ25vcmVZKQorICAgICAgICAgICAgZnJhbWVTdGF0ZS0+aWdu
b3JlRGVsdGEuaWdub3JlWSA9IHRydWU7CisgICAgfQorfQorCiB2b2lkIFNjcm9sbExhdGNoaW5n
Q29udHJvbGxlcjo6cmVtb3ZlTGF0Y2hpbmdTdGF0ZUZvclRhcmdldChjb25zdCBFbGVtZW50JiBl
bGVtZW50KQogewogICAgIGlmIChtX2ZyYW1lU3RhdGVTdGFjay5pc0VtcHR5KCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJv
bGxlci5oCmluZGV4IDU2NDk2MTU5YzUuLjZkNGM5NmVjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5oCkBA
IC00NCw2ICs0NCwxMSBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudDsK
IGNsYXNzIFNjcm9sbGFibGVBcmVhOwogCitzdHJ1Y3QgSWdub3JlRGVsdGFSZXF1ZXN0IHsKKyAg
ICBib29sIGlnbm9yZVggeyBmYWxzZSB9OworICAgIGJvb2wgaWdub3JlWSB7IGZhbHNlIH07Cit9
OworCiBjbGFzcyBTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjEsNyArNjYsMTAgQEAgcHVibGljOgogICAgIC8vIFJl
dHVybnMgdHJ1ZSBpZiBubyBmcmFtZSBpcyBsYXRjaGVkLCBvciBsYXRjaGluZyBpcyBpbiB0aGUg
Z2l2ZW4gZnJhbWUgKGluIHdoaWNoIGNhc2UgbGF0Y2hlZFNjcm9sbGVyIHdpbGwgYmUgbm9uLW51
bGwpLgogICAgIGJvb2wgbGF0Y2hpbmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKGNvbnN0IEZyYW1l
JiwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIGxhdGNoZWRTY3JvbGxlcikgY29uc3Q7CiAKLSAg
ICB2b2lkIHVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZyYW1lKEZyYW1lJiwgY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPEVsZW1lbnQ+JiBsYXRjaGVkRWxlbWVudCwgV2Vh
a1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBib29sJiBpc092ZXJXaWRnZXQpOworICAgIHZvaWQgdXBk
YXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUoRnJhbWUmLCBjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBSZWZQdHI8RWxlbWVudD4mIGxhdGNoZWRFbGVtZW50LCBXZWFrUHRyPFNjcm9s
bGFibGVBcmVhPiYsIElnbm9yZURlbHRhUmVxdWVzdCYsIGJvb2wmIGlzT3ZlcldpZGdldCk7CisK
KyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgZ2V0SWdub3JlRGVsdGFSZXF1ZXN0KGNvbnN0IEZyYW1l
JikgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVJZ25vcmVEZWx0YVJlcXVlc3QoY29uc3QgRnJhbWUm
LCBjb25zdCBJZ25vcmVEZWx0YVJlcXVlc3QmIGlnbm9yZURlbHRhRnJvbVN1YkZyYW1lKTsKIAog
ICAgIHZvaWQgcmVtb3ZlTGF0Y2hpbmdTdGF0ZUZvclRhcmdldChjb25zdCBFbGVtZW50Jik7CiAg
ICAgdm9pZCByZW1vdmVMYXRjaGluZ1N0YXRlRm9yRnJhbWUoY29uc3QgRnJhbWUmKTsKQEAgLTcz
LDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgV2Vha1B0cjxFbGVtZW50PiB3aGVlbEV2ZW50
RWxlbWVudDsKICAgICAgICAgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gc2Nyb2xsYWJsZUFyZWE7
CiAgICAgICAgIEZyYW1lKiBmcmFtZSB7IG51bGxwdHIgfTsKKyAgICAgICAgSWdub3JlRGVsdGFS
ZXF1ZXN0IGlnbm9yZURlbHRhOwogICAgICAgICBib29sIGlzT3ZlcldpZGdldCB7IGZhbHNlIH07
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IGJkNDc4NGI5MzguLjY5ZDBmNjI0NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTY4LDYgKzY4LDkgQEAgZW51bSBjbGFzcyBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMgeworICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yIHsgT3ZlcnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8g
fTsKKwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgeyBT
Y3JvbGxFbGFzdGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKIApAQCAtODQsNyArODcsOSBA
QCBzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKIAogICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIG90aGVyKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250
YWxTY3JvbGxFbGFzdGljaXR5CisgICAgICAgIHJldHVybiBob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yID09IG90aGVyLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IKKyAgICAgICAgICAg
ICYmIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IG90aGVyLnZlcnRpY2FsT3ZlcnNjcm9s
bEJlaGF2aW9yCisgICAgICAgICAgICAmJiBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSA9PSBv
dGhlci5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eQogICAgICAgICAgICAgJiYgdmVydGljYWxT
Y3JvbGxFbGFzdGljaXR5ID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eQogICAgICAg
ICAgICAgJiYgaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9s
bGJhck1vZGUKICAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9PSBvdGhlci52
ZXJ0aWNhbFNjcm9sbGJhck1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggOTE2M2EzNDM3My4uMmFhOWJlZDRkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTE0NCwx
MSArMTQ0LDE0IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVuCiAKIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdUcmVlTm9kZSogbm9kZSkKIHsK
KyAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgYWRqdXN0ZWRXaGVlbEV2ZW50ID0gUGxhdGZvcm1XaGVl
bEV2ZW50KHdoZWVsRXZlbnQpOworICAgIGJvb2wgaWdub3JlRGVsdGFYID0gZmFsc2U7CisgICAg
Ym9vbCBpZ25vcmVEZWx0YVkgPSBmYWxzZTsKKyAgICBib29sIGJpYXNUb1ZlcnRpY2FsID0gYWJz
KHdoZWVsRXZlbnQuZGVsdGFYKCkpIDw9IGFicyh3aGVlbEV2ZW50LmRlbHRhWSgpKTsKICAgICB3
aGlsZSAobm9kZSkgewogICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+
KCpub2RlKSkgewogICAgICAgICAgICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSk7Ci0gICAgICAgICAgICBhdXRvIHJlc3Vs
dCA9IHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKLQorICAgICAg
ICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdOb2RlLmhhbmRsZVdoZWVsRXZlbnQoYWRqdXN0
ZWRXaGVlbEV2ZW50KTsKICAgICAgICAgICAgIGlmIChyZXN1bHQud2FzSGFuZGxlZCkgewogICAg
ICAgICAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLm5vZGVEaWRIYW5kbGVFdmVudChzY3Jv
bGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50LCBtX2FsbG93TGF0Y2hpbmcp
OwogICAgICAgICAgICAgICAgIG1fZ2VzdHVyZVN0YXRlLm5vZGVEaWRIYW5kbGVFdmVudChzY3Jv
bGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50KTsKQEAgLTE1Nyw2ICsxNjAs
MzAgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVs
RXZlbnRXaXRoTm9kZShjb25zdCBQbGF0Zm9ybVcKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5u
ZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKworICAgICAgICAgICAgaWYgKHNjcm9sbGluZ05vZGUuaG9yaXpvbnRhbE92ZXJzY3JvbGxC
ZWhhdmlvcigpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykgeworICAgICAgICAgICAgICAg
IGlnbm9yZURlbHRhWCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKGFkanVzdGVkV2hlZWxF
dmVudC5kZWx0YVgoKSkKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRXaGVlbEV2ZW50ID0g
YWRqdXN0ZWRXaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoMCwgYWRqdXN0ZWRX
aGVlbEV2ZW50LmRlbHRhWSgpLCBhZGp1c3RlZFdoZWVsRXZlbnQuc2Nyb2xsaW5nVmVsb2NpdHko
KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nTm9kZS52ZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvcigpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykgeworICAg
ICAgICAgICAgICAgIGlnbm9yZURlbHRhWSA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKGFk
anVzdGVkV2hlZWxFdmVudC5kZWx0YVkoKSkKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRX
aGVlbEV2ZW50ID0gYWRqdXN0ZWRXaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHko
YWRqdXN0ZWRXaGVlbEV2ZW50LmRlbHRhWCgpLCAwLCBhZGp1c3RlZFdoZWVsRXZlbnQuc2Nyb2xs
aW5nVmVsb2NpdHkoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpZ25vcmVE
ZWx0YVggfHwgaWdub3JlRGVsdGFZKSB7CisgICAgICAgICAgICAgICAgaWYgKGlnbm9yZURlbHRh
WCAmJiAhYmlhc1RvVmVydGljYWwgJiYgd2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSh3
aGVlbEV2ZW50KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdDo6dW5oYW5kbGVkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKGlnbm9yZURlbHRh
WCAmJiBpZ25vcmVEZWx0YVkpCisgICAgICAgICAgICAgICAgICAgIHx8IChpZ25vcmVEZWx0YVgg
JiYgIWJpYXNUb1ZlcnRpY2FsKQorICAgICAgICAgICAgICAgICAgICB8fCAoaWdub3JlRGVsdGFZ
ICYmIGJpYXNUb1ZlcnRpY2FsKSkgeworICAgICAgICAgICAgICAgICAgICBtX2xhdGNoaW5nQ29u
dHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQoc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQo
KSwgd2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgbV9n
ZXN0dXJlU3RhdGUubm9kZURpZEhhbmRsZUV2ZW50KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9k
ZUlEKCksIHdoZWVsRXZlbnQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2hlZWxFdmVu
dEhhbmRsaW5nUmVzdWx0OjpoYW5kbGVkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbFByb3h5Tm9kZT4oKm5vZGUpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggMjMw
MWM5NjU4Ny4uNzU1NTBlYjEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTM0LDYg
KzEzNCwxNiBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjppc0xhdGNoZWROb2Rl
KCkgY29uc3QKICAgICByZXR1cm4gc2Nyb2xsaW5nVHJlZSgpLmxhdGNoZWROb2RlSUQoKSA9PSBz
Y3JvbGxpbmdOb2RlSUQoKTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxC
ZWhhdmlvcjsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yOworfQor
CiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBpZiAoIWNh
bkhhdmVTY3JvbGxiYXJzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0OGY3Y2MwNzI3Li43
NzViM2NhMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTE0Niw2ICsxNDYsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgY29uc3QgRmxvYXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJh
bmQoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQog
ICAgIHZvaWQgc2V0VG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKGNvbnN0IEZsb2F0U2l6
ZSYgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKSB7IG1fdG90YWxDb250ZW50c1NpemVG
b3JSdWJiZXJCYW5kID0gdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAKKyAgICBP
dmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Owor
ICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0
OwogICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsU2Nyb2xsRWxh
c3RpY2l0eTsgfQogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMudmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5oCmluZGV4IGVhZTA5M2IxZWYuLjRmOTYzMTcyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtOTIsNiArOTIsOSBAQCBwcml2
YXRlOgogICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdCBvdmVycmlkZTsKICNlbmRp
ZgogCisgICAgYm9vbCBzaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIGJvb2wgc2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisK
ICAgICB2b2lkIHJlbGVhc2VSZWZlcmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQo
KTsKIAogICAgIFNjcm9sbENvbnRyb2xsZXIgbV9zY3JvbGxDb250cm9sbGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCBhOGNlNjlhY2Zi
Li5kODE5NjY0Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbQpAQCAtMTkxLDYgKzE5MSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250
cm9sbGVyVGltZXI+IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNyCiAK
IGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpv
bnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25z
dAogeworICAgIGlmIChzaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKICAgICBzd2l0Y2ggKGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkpIHsK
ICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBdXRvbWF0aWM6IHsKICAgICAgICAgYm9vbCBzY3Jv
bGxiYXJzQWxsb3dTdHJldGNoaW5nID0gaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIoKSB8
fCAhaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC0yMTMsNiArMjE2LDkgQEAgYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NIb3Jpem9udGFs
U3RyZXRjaGluZyhjb25zdCBQbGEKIAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50KSBjb25zdAogeworICAgIGlmIChzaG91bGRTdG9wVmVydGljYWxTdHJl
Y2goKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgc3dpdGNoICh2ZXJ0aWNhbFNjcm9s
bEVsYXN0aWNpdHkoKSkgewogICAgIGNhc2UgU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpYzogewog
ICAgICAgICBib29sIHNjcm9sbGJhcnNBbGxvd1N0cmV0Y2hpbmcgPSBoYXNFbmFibGVkVmVydGlj
YWxTY3JvbGxiYXIoKSB8fCAhaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIoKTsKQEAgLTM3
NCw2ICszODAsMTYgQEAgRmxvYXRTaXplIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OnZpZXdwb3J0U2l6ZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAorYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ05vZGUoKS5ob3Jpem9udGFsT3ZlcnNjcm9s
bEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCitib29sIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNob3VsZFN0b3BWZXJ0aWNhbFN0cmVj
aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ05vZGUoKS52ZXJ0aWNhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKwogdm9pZCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29t
cGxldGlvbkZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJl
YXNvbikgY29uc3QKIHsKICAgICBpZiAoIXNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3JpbmdXaGVl
bEV2ZW50cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggNTNmMDcz
YzY2Ni4uMzFkZjY0NjFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBA
IC00Niw2ICs0NiwxMiBAQCBlbnVtIGNsYXNzIFNjcm9sbFR5cGUgOiBib29sIHsKICAgICBQcm9n
cmFtbWF0aWMKIH07CiAKK2VudW0gY2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7
CisgICAgQXV0byA9IDAsCisgICAgQ29udGFpbiwKKyAgICBOb25lCit9OworCiBlbnVtIFNjcm9s
bERpcmVjdGlvbiA6IHVpbnQ4X3QgewogICAgIFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCA0Y2E4NmJhYTcwLi5i
YTI5ZmE3OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAg
LTEyMCw2ICsxMjAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9D
b250ZW50RWRnZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVu
dEVkZ2U7IH0KICAgICB2b2lkIHNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGJv
b2wgY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UpIHsgbV9jb25zdHJhaW5zU2Nyb2xs
aW5nVG9Db250ZW50RWRnZSA9IGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOyB9CiAK
KyAgICB2aXJ0dWFsIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2
aW9yKCkgY29uc3QgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisgICAgdmly
dHVhbCBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25z
dCB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKwogICAgIHZvaWQgc2V0VmVy
dGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHkgc2Nyb2xsRWxhc3RpY2l0eSkg
eyBtX3ZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9IHNjcm9sbEVsYXN0aWNpdHk7IH0KICAgICBT
Y3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PFNjcm9sbEVsYXN0aWNpdHk+KG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLmgKaW5kZXggMDBiMzI2MzE2OC4uZTAwNTA5Mjc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtMTEzLDYgKzExMywxMSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBMYXlvdXRTaXplIHNjcm9sbEV4dGVudCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdCA9IDA7CiAjZW5k
aWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcEhvcml6
b250YWxTdHJlY2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlm
CiB9OwogCiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRTdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggMDA2ZmUxY2ZjNy4u
ZWUxODU2MWM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tCkBAIC0yNTIsNyArMjUyLDggQEAgYm9vbCBTY3JvbGxDb250cm9sbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBtX292
ZXJmbG93U2Nyb2xsRGVsdGEuc2V0V2lkdGgobV9vdmVyZmxvd1Njcm9sbERlbHRhLndpZHRoKCkg
KyBkZWx0YVgpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzaG91bGRTdHJl
dGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoKCFkZWx0YVggfHwgIW1fY2xpZW50LnNo
b3VsZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkpICYmICghZGVsdGFZIHx8ICFtX2NsaWVudC5zaG91
bGRTdG9wVmVydGljYWxTdHJlY2goKSkpCisgICAgICAgICAgICAgICAgICAgIHNob3VsZFN0cmV0
Y2ggPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA2MmIyYmQyOTk5
Li42NTc2N2ZhNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMuaApAQCAtMTU3LDYgKzE1Nyw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0Fs
cmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwogI2VuZGlmCiAKKyAgICBib29sIHNob3VsZFN0b3BI
b3Jpem9udGFsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRTdG9wVmVy
dGljYWxTdHJlY2goKSBjb25zdCBvdmVycmlkZTsKKwogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRT
aW5jZVBhZ2VMb2FkOwogICAgIGJvb2wgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGU7CiAgICAg
SW50UmVjdCBtX3Zpc2libGVTY3JvbGxlclRodW1iUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCAwOWQ4MDU4YjViLi5hYjMz
MmFhMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLm1tCkBAIC0xNTY2LDYgKzE1NjYsMTYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
c2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIK
ICAgICBtX3Zpc2libGVTY3JvbGxlclRodW1iUmVjdCA9IHJlY3RJblZpZXdDb29yZGluYXRlczsK
IH0KIAorYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxkU3RvcEhvcml6b250YWxTdHJlY2go
KSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmhvcml6b250YWxPdmVyc2Ny
b2xsQmVoYXZpb3IoKSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKK2Jvb2wgU2Ny
b2xsQW5pbWF0b3JNYWM6OnNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSA9PSBP
dmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggZmQwMmI1MWExMi4uZWZkMjZmYTdhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zNDQzLDYgKzM0NDMsMTYgQEAg
dm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVj
dCYgcmVjdCkKICAgICAgICAgbV9yZXNpemVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3QpOwogfQog
CitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVo
YXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9s
bEJlaGF2aW9yWCgpOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgUmVuZGVyTGF5ZXI6OnZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCku
c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCk7Cit9CisKIHN0YXRpYyBib29sIHNjcm9sbGJh
ckhpZGRlbkJ5U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7CiAgICAgcmV0dXJuIHNjcm9s
bGJhciAmJiBzY3JvbGxiYXItPmlzSGlkZGVuQnlTdHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkODM3M2FhZTgxLi44MTMyM2QyOTBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDgzLDYgKzQ4Myw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBob3Jpem9u
dGFsU2Nyb2xsYmFyKCk7IH0KICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Qg
eyByZXR1cm4gdmVydGljYWxTY3JvbGxiYXIoKTsgfQogCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKwog
ICAgIGJvb2wgaG9yaXpvbnRhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIHZlcnRpY2FsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNvbnN0IGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDY3
ZTIzNjljNzAuLjE5ZmVjODI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVD
b25zdGFudHMuaCIKICNpbmNsdWRlICJSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIlNWR1JlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTaGFkb3dEYXRh
LmgiCiAjaW5jbHVkZSAiU2hhcGVWYWx1ZS5oIgogI2luY2x1ZGUgIlN0eWxlQmFja2dyb3VuZERh
dGEuaCIKQEAgLTMyNyw2ICszMjgsOSBAQCBwdWJsaWM6CiAgICAgT3ZlcmZsb3cgb3ZlcmZsb3dJ
bmxpbmVEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gb3ZlcmZsb3dYKCkgOiBvdmVyZmxvd1koKTsgfQogICAgIE92ZXJmbG93IG92ZXJmbG93Qmxv
Y2tEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
b3ZlcmZsb3dZKCkgOiBvdmVyZmxvd1goKTsgfQogICAgIGJvb2wgaXNPdmVyZmxvd1Zpc2libGUo
KSBjb25zdCB7IHJldHVybiBvdmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSB8fCBvdmVy
Zmxvd1koKSA9PSBPdmVyZmxvdzo6VmlzaWJsZTsgfQorCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IG92ZXJzY3JvbGxCZWhhdmlvclgoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Ny
b2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclgp
OyB9CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9yIG92ZXJzY3JvbGxCZWhhdmlvclkoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxPdmVyc2Nyb2xsQmVoYXZpb3I+KG1fcmFyZU5vbkluaGVyaXRl
ZERhdGEtPm92ZXJzY3JvbGxCZWhhdmlvclkpOyB9CiAgICAgCiAgICAgVmlzaWJpbGl0eSB2aXNp
YmlsaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlzaWJpbGl0eT4obV9pbmhlcml0
ZWRGbGFncy52aXNpYmlsaXR5KTsgfQogICAgIFZlcnRpY2FsQWxpZ24gdmVydGljYWxBbGlnbigp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZlcnRpY2FsQWxpZ24+KG1fbm9uSW5oZXJpdGVk
RmxhZ3MudmVydGljYWxBbGlnbik7IH0KQEAgLTg5MSw2ICs4OTUsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldE92ZXJmbG93WChPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3Zl
cmZsb3dYID0gIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZvaWQgc2V0T3ZlcmZs
b3dZKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy5vdmVyZmxvd1kgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4odik7IH0KKyAgICB2b2lkIHNldE92ZXJzY3JvbGxCZWhhdmlvclgoT3Zl
cnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBvdmVy
c2Nyb2xsQmVoYXZpb3JYLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odikpOyB9CisgICAgdm9pZCBz
ZXRPdmVyc2Nyb2xsQmVoYXZpb3JZKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpKTsgfQogICAgIHZvaWQgc2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5IHYpIHsgbV9p
bmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAg
ICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ24gdikgeyBtX25vbkluaGVyaXRl
ZEZsYWdzLnZlcnRpY2FsQWxpZ24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2
b2lkIHNldFZlcnRpY2FsQWxpZ25MZW5ndGgoTGVuZ3RoJiYgbGVuZ3RoKSB7IHNldFZlcnRpY2Fs
QWxpZ24oVmVydGljYWxBbGlnbjo6TGVuZ3RoKTsgU0VUX1ZBUihtX2JveERhdGEsIG1fdmVydGlj
YWxBbGlnbiwgV1RGTW92ZShsZW5ndGgpKTsgfQpAQCAtMTQ3MSw2ICsxNDc3LDkgQEAgcHVibGlj
OgogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0
aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WCgpIHsgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxl
OyB9CiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1koKSB7IHJldHVybiBPdmVy
Zmxvdzo6VmlzaWJsZTsgfQorICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92
ZXJzY3JvbGxCZWhhdmlvclgoKSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0K
KyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9yIGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JZ
KCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICBzdGF0aWMgQ2xl
YXIgaW5pdGlhbENsZWFyKCkgeyByZXR1cm4gQ2xlYXI6Ok5vbmU7IH0KICAgICBzdGF0aWMgRGlz
cGxheVR5cGUgaW5pdGlhbERpc3BsYXkoKSB7IHJldHVybiBEaXNwbGF5VHlwZTo6SW5saW5lOyB9
CiAgICAgc3RhdGljIEVVbmljb2RlQmlkaSBpbml0aWFsVW5pY29kZUJpZGkoKSB7IHJldHVybiBV
Qk5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDE1YzNlOTI5MjUuLjBiZGNi
Njk5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTY0LDYgKzY0LDggQEAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBz
Y3JvbGxTbmFwUG9ydChTdHlsZVNjcm9sbFNuYXBQb3J0OjpjcmVhdGUoKSkKICAgICAsIHNjcm9s
bFNuYXBBcmVhKFN0eWxlU2Nyb2xsU25hcEFyZWE6OmNyZWF0ZSgpKQogI2VuZGlmCisgICAgLCBv
dmVyc2Nyb2xsQmVoYXZpb3JYKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5p
dGlhbE92ZXJzY3JvbGxCZWhhdmlvclgoKSkpCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlv
clkoKSkpCiAgICAgLCB3aWxsQ2hhbmdlKFJlbmRlclN0eWxlOjppbml0aWFsV2lsbENoYW5nZSgp
KQogICAgICwgbWFzayhGaWxsTGF5ZXI6OmNyZWF0ZShGaWxsTGF5ZXJUeXBlOjpNYXNrKSkKICAg
ICAsIG1hc2tCb3hJbWFnZShOaW5lUGllY2VJbWFnZTo6VHlwZTo6TWFzaykKQEAgLTE0MCw2ICsx
NDIsOCBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgc2Nyb2xsU25hcFBvcnQoby5z
Y3JvbGxTbmFwUG9ydCkKICAgICAsIHNjcm9sbFNuYXBBcmVhKG8uc2Nyb2xsU25hcEFyZWEpCiAj
ZW5kaWYKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclgoby5vdmVyc2Nyb2xsQmVoYXZpb3JYKQor
ICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWShvLm92ZXJzY3JvbGxCZWhhdmlvclkpCiAgICAgLCBj
b250ZW50KG8uY29udGVudCA/IG8uY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBj
b3VudGVyRGlyZWN0aXZlcyhvLmNvdW50ZXJEaXJlY3RpdmVzID8gbWFrZVVuaXF1ZTxDb3VudGVy
RGlyZWN0aXZlTWFwPigqby5jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgYWx0
VGV4dChvLmFsdFRleHQpCkBAIC0yMzksNiArMjQzLDggQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8p
IGMKICAgICAgICAgJiYgc2Nyb2xsU25hcFBvcnQgPT0gby5zY3JvbGxTbmFwUG9ydAogICAgICAg
ICAmJiBzY3JvbGxTbmFwQXJlYSA9PSBvLnNjcm9sbFNuYXBBcmVhCiAjZW5kaWYKKyAgICAgICAg
JiYgb3ZlcnNjcm9sbEJlaGF2aW9yWCA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclgKKyAgICAgICAg
JiYgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9PSBvLm92ZXJzY3JvbGxCZWhhdmlvclkKICAgICAgICAg
JiYgY29udGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVh
bERhdGEoY291bnRlckRpcmVjdGl2ZXMsIG8uY291bnRlckRpcmVjdGl2ZXMpCiAgICAgICAgICYm
IGFsdFRleHQgPT0gby5hbHRUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCA4MThjYjYyNzU1
Li5kZTQxYzNiZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTEzMSw2ICsxMzEsOSBAQCBw
dWJsaWM6CiAgICAgRGF0YVJlZjxTdHlsZVNjcm9sbFNuYXBBcmVhPiBzY3JvbGxTbmFwQXJlYTsK
ICNlbmRpZgogCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWCA6IDI7IC8vIE92ZXJz
Y3JvbGxCZWhhdmlvcgorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclkgOiAyOyAvLyBP
dmVyc2Nyb2xsQmVoYXZpb3IKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY29u
dGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY291bnRlckRp
cmVjdGl2ZXM7CiAgICAgU3RyaW5nIGFsdFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA3MTI3Zjk5YWJlLi5hOWY5NDZkOTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTIxNDUsNiArMjE0NSw5IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYVNlc3Npb25NZXRhZGF0
YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNZWRpYVNlc3Npb25NCiAKIHZvaWQgQXJndW1l
bnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworICAgIGVu
Y29kZXIgPDwgcGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOworICAgIGVu
Y29kZXIgPDwgcGFyYW1ldGVycy52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcjsKKwogICAgIGVu
Y29kZXIgPDwgcGFyYW1ldGVycy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsKICAgICBlbmNv
ZGVyIDw8IHBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5OwogCkBAIC0yMTYyLDYg
KzIxNjUsMTEgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3IKIAogYm9vbCBBcmd1bWVudENvZGVy
PFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMmIHBhcmFtcykKIHsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtcy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1zLnZlcnRpY2FsT3ZlcnNjcm9sbEJl
aGF2aW9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbXMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbXMudmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggYTlmODZkMjhmOC4uZjRlYTc1NTVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgpAQCAtODg0
LDYgKzg4NSwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xs
QmVoYXZpb3IsCisgICAgV2ViQ29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvLAorICAgIFdl
YkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbiwKKyAgICBXZWJDb3JlOjpPdmVyc2Ny
b2xsQmVoYXZpb3I6Ok5vbmUKKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpDb2xvclNwYWNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKICAgICBXZWJDb3JlOjpDb2xvclNwYWNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKaW5kZXggMjE5N2MyNzM4ZS4uMDczNzMyNmNkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xNDI0LDYgKzE0MjQsMTMgQEAgU3ludGhl
dGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIFN5bnRoZXRpYyBFZGl0aW5nIENvbW1hbmRzIgogICBjYXRlZ29yeTogZXhwZXJpbWVu
dGFsCiAKK092ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVs
dFZhbHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2
aW9yIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJDU1MgT3ZlcnNjcm9sbCBCZWhhdmlv
ciBwcm90b3R5cGUiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogQ1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCA4MTBhZGNkNGU1
Li4wNWQ3OWMyZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCkBAIC0yMzAsMTIgKzIzMCwzMSBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihjb25zdCBTY3JvbAogICAgIFNldEZvclNjb3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdl
KG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlLCB0cnVlKTsKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0
ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Ny
b2xsQ29udGFpbmVyTGF5ZXIpCisgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFu
Z2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBh
cmFtcykKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlRvdGFsQ29udGVudHNTaXplKQogICAgICAgICB8
fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6UmVhY2hhYmxlQ29udGVudHNTaXplKQogICAgICAgICB8fCBzY3JvbGxpbmdT
dGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
U2Nyb2xsUG9zaXRpb24pCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxPcmlnaW4pKSB7CiAg
ICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICBVSVNjcm9sbFZpZXcg
KnNjcm9sbFZpZXcgPSB0aGlzLT5zY3JvbGxWaWV3KCk7CisKKyAgICAgICAgLy8gRklYTUUocmRh
cjovL3Byb2JsZW0vMzQzMTU5OTcpOiBVSVNjcm9sbFZpZXcgc2hvdWxkIGhhdmUgc29tZSBraW5k
IG9mIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwtYmVoYXZpb3IgdG8gZW5hYmxlL2Rpc2FibGU6Cisg
ICAgICAgIC8vIC0gbm9uLWxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9ucyAoZS5nLiBzY3Jv
bGwgY2hhaW5pbmcpLgorICAgICAgICAvLyAtIGxvY2FsIGJvdW5kYXJ5IGRlZmF1bHQgYWN0aW9u
cyAoZS5nLiBib3VuY2luZykuCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAg
Ly8gaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAgICAgICAgLy8gICAg
IHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJlaGF2aW9ySG9yaXpvbnRhbCA9IGNvbnZlcnRPdmVyc2Ny
b2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0ZU5vZGUuc2Nyb2xsYWJs
ZUFyZWFQYXJhbWV0ZXJzKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAgICAg
IC8vICAgICBzY3JvbGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlvclZlcnRpY2FsID0gY29udmVydE92
ZXJzY3JvbGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcik7CisgICAg
ICAgIC8vIH0KKyNlbmRpZgorICAgICAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGRpc2FibGUgYm91
bmNpbmcgd2hlbiBib3RoIG92ZXJmbG93LXggYW5kIG92ZXJmbG93LXkgYXJlIG5vbmUuCisgICAg
ICAgIC8vIFVJU2Nyb2xsVmlldzo6YWx3YXlzQm91bmNlKiBmdW5jdGlvbnMgY2Fubm90IGhlbHAg
aGVyZS4KKyAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHko
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxhYmxlQXJlYVBhcmFtcykpIHsKKyAg
ICAgICAgICAgIHNjcm9sbFZpZXcuYm91bmNlcyA9IHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxh
YmxlQXJlYVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92ZXJz
Y3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAgJiYgc2Nyb2xsaW5nU3RhdGVOb2RlLnNj
cm9sbGFibGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IE92
ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZQorICAgICAgICAgICAgPyBOTyA6IFlFUzsKKyAgICAgICAg
fQorCiAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsQ29udGFpbmVyTGF5ZXIpKSB7CiAgICAg
ICAgICAgICBpZiAoIW1fc2Nyb2xsVmlld0RlbGVnYXRlKQogICAgICAgICAgICAgICAgIG1fc2Ny
b2xsVmlld0RlbGVnYXRlID0gYWRvcHROUyhbW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxl
Z2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlOnRoaXNdKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCmluZGV4IDA4NjgwNDdmOTUuLjIzNzUyZGRhODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtMTkyLDYgKzE5Miw3IEBACiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0
cmlidXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Njcm9s
bGluZ0FQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBkODEzYzJkZTNkLi4x
ZjdkYjZhZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KQEAgLTY3MCw2ICs2NzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEBZRVMs
IFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKIAor
ICAgICAgICBATk8sIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5
LAogICAgICAgICBAWUVTLCBXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVy
ZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0TmVlZHNTdG9yYWdlQWNjZXNz
RnJvbUZpbGVVUkxzUXVpcmtLZXksCkBAIC0zMjEzLDYgKzMyMTQsMTYgQEAgc3RhdGljIE5TU3Ry
aW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6Zmxh
ZyBmb3JLZXk6V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9
CiAKKy0gKEJPT0wpb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZAoreworICAgIHJldHVybiBbc2Vs
ZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJl
bmNlS2V5XTsKK30KKworLSAodm9pZClzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOihCT09M
KWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAoQk9PTClDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JL
ZXk6V2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgKaW5kZXggZWFmOTU1NjNiYy4uZDc3ZDkzMmZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBA
IC02NTksNiArNjU5LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9k
ZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIC0gKEJPT0wpdXNlckdl
c3R1cmVQcm9taXNlUHJvcGFnYXRpb25FbmFibGVkOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggM2IxMTRkYjM0Ny4uYjg3NGVkZGE1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzE3OSw2ICsz
MTc5LDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQog
CiAgICAgc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKFtwcmVmZXJlbmNlcyB2
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZHNFbmFibGVkKFtwcmVmZXJlbmNlcyBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNF
bmFibGVkXSk7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChbcHJl
ZmVyZW5jZXMgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldENT
U09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Njcm9sbGlu
Z0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdF
bmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkXSk7CiAg
ICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
W3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCA5YTg3NWQ0NzllLi5jZTAxNzJiYWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKQEAgLTI2OSw0ICsyNjksNiBAQCBpbnRlcmZhY2Ug
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZTggOiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNwogICAgIEhS
RVNVTFQgc2V0QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhbaW5dIEJPT0wgZW5hYmxlZCk7
CiAgICAgSFJFU1VMVCBtb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9FbmFibGVkKFtvdXQsIHJldHZh
bF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRNb2Rlcm5VbnByZWZpeGVkV2ViQXVk
aW9FbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIG92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWQoWyBvdXQsIHJldHZhbCBdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAyYTIx
MjFhZGI5Li5hMmYxYjhlMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTk4LDYgKzE5OCw4IEBACiAKICNkZWZpbmUg
V2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZCIKIAorI2RlZmluZSBXZWJL
aXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0T3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZCIKKwogI2RlZmluZSBXZWJLaXRVc2VyVGltaW5nRW5hYmxlZFByZWZl
cmVuY2VLZXkgIldlYktpdFVzZXJUaW1pbmdFbmFibGVkIgogCiAjZGVmaW5lIFdlYktpdFJlc291
cmNlVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFJlc291cmNlVGltaW5nRW5hYmxl
ZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCA5M2Rl
OGEzMjBhLi5jZWU2NDRiZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCkBAIC0zNDEsNiArMzQxLDggQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlh
bGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0
cywgQ0ZTVFIoV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSksIGtD
RkJvb2xlYW5GYWxzZSk7CiAKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZT
VFIoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuRmFsc2UpOworCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdl
YktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVh
bkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJL
aXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsK
QEAgLTIyNjksNiArMjI3MSwyMCBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRWaXN1YWxW
aWV3cG9ydEFQSUVuYWJsZWQoQk9PTCBlbmFibGVkKQogICAgIHJldHVybiBTX09LOwogfQogCitI
UkVTVUxUIFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKF9PdXRfIEJP
T0wqIGVuYWJsZWQpCit7CisgICAgaWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4gRV9QT0lO
VEVSOworICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KFdlYktpdE92ZXJzY3JvbGxCZWhh
dmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VM
VCBXZWJQcmVmZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChCT09MIGVuYWJs
ZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQ
cmVmZXJlbmNlS2V5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBX
ZWJQcmVmZXJlbmNlczo6Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBCT09MKiBl
bmFibGVkKQogewogICAgIGlmICghZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IDI0MzdiMGU3NjIuLjI2MDRkOWUxNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjY1LDYgKzI2NSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SW5zcGVjdG9yQWRkaXRp
b25zRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
dmlzdWFsVmlld3BvcnRBUElFbmFibGVkKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wpOwor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBvdmVyc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKF9PdXRfIEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChfT3V0XyBC
T09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoX091dF8gQk9PTCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBiZjY4YTcxNDVkLi5kNWNlNWFmZGE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTMzNCw2ICs1MzM0LDExIEBA
IEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRp
b24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhyOwogICAgIHNldHRpbmdzLnNldFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmc1ByaXZh
dGUtPm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChGQUlMRUQo
aHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Muc2V0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPkNTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAg
ICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggMDY0
NTdkZmRmZC4uM2E4MjMxNTBhNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApA
QCAtMTM4LDYgKzEzOCw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBh
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImV4cGVyaW1lbnRhbDpXZWJHUFVFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdl
YkdQVSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2Ug
aWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiKQorICAg
ICAgICAgICAgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yID0gcGFyc2VCb29sZWFuVGVzdEhlYWRl
clZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJpbnRlcm5hbDpDU1NMb2dp
Y2FsRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVDU1NMb2dpY2FsID0gcGFyc2VCb29sZWFu
VGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJpbnRlcm5h
bDpMaW5lSGVpZ2h0VW5pdHNFbmFibGVkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmlu
ZGV4IGM1YzhjODU5OTIuLjJjYTYxOTk0MGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
aApAQCAtNDcsNiArNDcsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZW5hYmxl
Q29sb3JGaWx0ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hh
ZG93Qm91bmRhcmllcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07
CisgICAgYm9vbCBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgeyBmYWxzZSB9OwogICAgIGJvb2wg
ZW5hYmxlQ1NTTG9naWNhbCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVMaW5lSGVpZ2h0VW5p
dHMgeyBmYWxzZSB9OwogICAgIGJvb2wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggNmY3
ZGYwNjljMS4uZmUyYmZhMzNiMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQpAQCAtODM5LDYgKzgzOSw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1l
bnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBbcHJlZmVyZW5j
ZXMgc2V0Q1NTU2hhZG93UGFydHNFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFz
cGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOllFU107CiAgICAgW3ByZWZl
cmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6WUVTXTsKKyAgICBbcHJl
ZmVyZW5jZXMgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxs
ZWQgYmVmb3JlIGVhY2ggdGVzdC4KQEAgLTk4Niw2ICs5ODcsNyBAQCBzdGF0aWMgdm9pZCBzZXRX
ZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQog
ICAgIHByZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JG
aWx0ZXI7CiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0Vu
YWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAg
ICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOworICAg
IHByZWZlcmVuY2VzLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92
ZXJzY3JvbGxCZWhhdmlvcjsKICAgICBwcmVmZXJlbmNlcy5DU1NMb2dpY2FsRW5hYmxlZCA9IG9w
dGlvbnMuZW5hYmxlQ1NTTG9naWNhbDsKICAgICBwcmVmZXJlbmNlcy5saW5lSGVpZ2h0VW5pdHNF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVMaW5lSGVpZ2h0VW5pdHM7CiAgICAgcHJlZmVyZW5jZXMu
YWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9wdGlvbnMuYWRDbGlja0F0dHJpYnV0aW9uRW5h
YmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4
IDE0ZGMzZDM0M2EuLmYzNjUxN2E1YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcApAQCAtOTI1LDYgKzkyNSw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlBy
ZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcywgY29u
c3QKICAgICBwcmVmZXJlbmNlcy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChvcHRpb25zLnVz
ZUVwaGVtZXJhbFNlc3Npb24pOwogICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKG9w
dGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgcHJlZnNQcml2YXRlLT5zZXRDU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKG9wdGlvbnMuZW5hYmxlQ1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nKTsKKyAgICBwcmVmc1ByaXZhdGUtPnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJs
ZWQob3B0aW9ucy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IpOwogfQogCiBzdGF0aWMgU3RyaW5n
IGFwcGxpY2F0aW9uSWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408185</attachid>
            <date>2020-09-07 10:15:14 -0700</date>
            <delta_ts>2020-09-07 22:38:39 -0700</delta_ts>
            <desc>WIP-patch-supported-desktop-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-011-0908.diff</filename>
            <type>text/plain</type>
            <size>109342</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNzcxNGI2OWY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGVkIGlm
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgaXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYt
ZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi5hNjc3YzRkNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgcmVzdWx0ID0gIm92ZXJzY3JvbGxCZWhhdmlvciIgaW4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgICBkb2N1bWVudC53cml0ZShg
JHtyZXN1bHR9IHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBp
ZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLmApOworCisgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3It
dmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NTUwZmY0NGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci12YWxpZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MgdGVz
dCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1l
bmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iYjUwNThk
MmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNj
cm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1lbmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciByZXN1bHQgPSAib3ZlcnNjcm9s
bEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKGAke3Jlc3VsdH0gdGVzdCBvdmVyc2Nyb2xs
QmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
IGlzIGVuYWJsZWQuYCk7CisgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwt
eG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApp
bmRleCA3MmFjMWNkZGYyLi40YzQ0ZmQyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0
ZWQudHh0CkBAIC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJm
bG93LXdyYXAgCiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJz
Y3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRk
aW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1i
b3R0b20gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggMjIyYzhi
MmJkNS4uYzJiOGI0NzlmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4
dApAQCAtMyw4ICszLDggQEAgRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLWJsb2Nr
IGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gYXNzZXJ0X3RydWU6IG92ZXIKIEZBSUwgUHJvcGVydHkg
b3ZlcnNjcm9sbC1iZWhhdmlvci1ibG9jayBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LWlubGluZSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJl
aGF2aW9yLWlubGluZSBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRl
ZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xs
LWJlaGF2aW9yLWlubGluZSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggaGFzIGlu
aXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXNu
J3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2VzIG5v
dCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9w
ZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRf
dHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQg
aW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3Bl
cnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LXggaGFzIGluaXRpYWwgdmFsdWUgYXV0byAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhh
dmlvci14IGRvZXMgbm90IGluaGVyaXQgCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZp
b3IteSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkgZG9lcyBub3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
aW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKaW5kZXgg
ODIzZDYyMzk0Ny4uZGE5M2JkNzVhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJp
dGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAt
LT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNj
cm9sbC1iZWhhdmlvci9vdmVyc2Nyb2xsLWJlaGF2aW9yLWxvZ2ljYWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhhdmlvci1sb2dpY2FsLWV4cGVjdGVkLnR4dApp
bmRleCAxNjdiNDI5NzI3Li4zMDQ3ODhhMjU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9v
dmVyc2Nyb2xsLWJlaGF2aW9yLWxvZ2ljYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2
aW9yL292ZXJzY3JvbGwtYmVoYXZpb3ItbG9naWNhbC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1
IEBACiAKLUZBSUwgTG9naWNhbCBvdmVyc2Nyb2xsLWJlaGF2aW9yIG1hcHMgY29ycmVjdGx5IHdo
ZW4gZWxlbWVudCBoYXMgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgKHN0cmluZykgIm5vbmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1G
QUlMIExvZ2ljYWwgb3ZlcnNjcm9sbC1iZWhhdmlvciBtYXBzIGNvcnJlY3RseSB3aGVuIGVsZW1l
bnQgaGFzIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
c3RyaW5nKSAiY29udGFpbiIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgTG9n
aWNhbCBvdmVyc2Nyb2xsLWJlaGF2aW9yIG1hcHMgY29ycmVjdGx5IHdoZW4gZWxlbWVudCBoYXMg
aG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgYW5kIGlzIG5vdCBhZmZlY3RlZCBieSBydGwgZGly
ZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJub25lIiBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBMb2dpY2FsIG92ZXJzY3JvbGwtYmVoYXZpb3IgbWFw
cyBjb3JyZWN0bHkgd2hlbiBlbGVtZW50IGhhcyBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm9uZSIgYnV0IGdvdCAiYXV0byIKK0ZBSUwgTG9naWNh
bCBvdmVyc2Nyb2xsLWJlaGF2aW9yIG1hcHMgY29ycmVjdGx5IHdoZW4gZWxlbWVudCBoYXMgdmVy
dGljYWwtcmwgd3JpdGluZyBtb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb250YWluIiBi
dXQgZ290ICJhdXRvIgorRkFJTCBMb2dpY2FsIG92ZXJzY3JvbGwtYmVoYXZpb3IgbWFwcyBjb3Jy
ZWN0bHkgd2hlbiBlbGVtZW50IGhhcyBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSBhbmQgaXMg
bm90IGFmZmVjdGVkIGJ5IHJ0bCBkaXJlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5v
bmUiIGJ1dCBnb3QgImF1dG8iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL292ZXJzY3Jv
bGwtYmVoYXZpb3ItbG9naWNhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhh
dmlvci1sb2dpY2FsLmh0bWwKaW5kZXggYTA2MTMyZmVhYS4uODFlZjU2MjI5NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92
ZXJzY3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhhdmlvci1sb2dpY2FsLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhhdmlvci1sb2dpY2FsLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ9dHJ1ZSBdIC0t
PgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlRlc3QgZmxvdy1yZWxhdGl2ZSB2ZXJz
aW9ucyBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIHByb3BlcnRpZXM8L3RpdGxlPgogPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNYWppZCBWYWxpcG91ciI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhh
dmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItY29tcHV0ZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWNvbXB1dGVkLWV4cGVj
dGVkLnR4dAppbmRleCAxZTY5MTU3NzM5Li5mODllMTY4MTE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1i
ZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItY29tcHV0ZWQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1vdmVyc2Nyb2xsLWJlaGF2aW9yL3BhcnNpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1jb21wdXRl
ZC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAotRkFJTCBQcm9wZXJ0eSBvdmVyc2Ny
b2xsLWJlaGF2aW9yLXggdmFsdWUgJ2NvbnRhaW4nIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5
bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhh
dmlvci14IHZhbHVlICdub25lJyBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRv
ZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCB2YWx1
ZSAnYXV0bycgYXNzZXJ0X3RydWU6IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2Vzbid0IHNlZW0g
dG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRlZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFsdWUgJ2NvbnRhaW4n
IGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgZG9lc24ndCBzZWVtIHRvIGJlIHN1
cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci15IHZhbHVlICdub25lJyBhc3NlcnRfdHJ1
ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4g
dGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5
IG92ZXJzY3JvbGwtYmVoYXZpb3IteSB2YWx1ZSAnYXV0bycgYXNzZXJ0X3RydWU6IG92ZXJzY3Jv
bGwtYmVoYXZpb3IteSBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRl
ZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xs
LWJlaGF2aW9yLXggdmFsdWUgJ2NvbnRhaW4nIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggdmFsdWUgJ25vbmUnIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LXggdmFsdWUgJ2F1dG8nIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFs
dWUgJ2NvbnRhaW4nIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFsdWUg
J25vbmUnIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFsdWUgJ2F1dG8n
IAogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZSB2YWx1ZSAnY29udGFp
bicgYXNzZXJ0X3RydWU6IG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lIGRvZXNuJ3Qgc2VlbSB0
byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCiBGQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lIHZhbHVlICdub25l
JyBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmUgZG9lc24ndCBzZWVtIHRv
IGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKIEZBSUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmUgdmFsdWUgJ2F1dG8n
IGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZSBkb2Vzbid0IHNlZW0gdG8g
YmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRlZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9y
LWludmFsaWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL3BhcnNpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci1pbnZhbGlkLmh0bWwKaW5kZXggMDJhZGE0NTc2Yy4uNTY3MGYzOTIyNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFs
aWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2
aW9yLXZhbGlkLWV4cGVjdGVkLnR4dAppbmRleCBmNDEzY2JmZWM3Li40OTFlMTZkOGFkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL3BhcnNpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci12YWxpZC1leHBlY3RlZC50eHQKQEAgLTEsMTkgKzEsMTkgQEAKIAotRkFJTCBlLnN0eWxl
WydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29udGFpbiIgc2hvdWxkIHNldCB0aGUgcHJvcGVy
dHkgdmFsdWUgYXNzZXJ0X25vdF9lcXVhbHM6IHByb3BlcnR5IHNob3VsZCBiZSBzZXQgZ290IGRp
c2FsbG93ZWQgdmFsdWUgIiIKLUZBSUwgZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0g
Im5vbmUiIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlIGFzc2VydF9ub3RfZXF1YWxzOiBw
cm9wZXJ0eSBzaG91bGQgYmUgc2V0IGdvdCBkaXNhbGxvd2VkIHZhbHVlICIiCi1GQUlMIGUuc3R5
bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3InXSA9ICJhdXRvIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAi
Y29udGFpbiBub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2Vx
dWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJ
TCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAibm9uZSBhdXRvIiBzaG91bGQgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJl
IHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJl
aGF2aW9yJ10gPSAiYXV0byBjb250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBh
c3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2
YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29udGFpbiBj
b250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczog
cHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0
eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAibm9uZSBub25lIiBzaG91bGQgc2V0IHRoZSBw
cm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9y
J10gPSAiYXV0byBhdXRvIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90
X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgot
RkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXgnXSA9ICJjb250YWluIiBzaG91bGQg
c2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxk
IGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xs
LWJlaGF2aW9yLXgnXSA9ICJub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3Nl
cnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXgnXSA9ICJhdXRvIiBzaG91
bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hv
dWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Ny
b2xsLWJlaGF2aW9yLXknXSA9ICJjb250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dl
ZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXknXSA9ICJub25l
IiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVy
dHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydv
dmVyc2Nyb2xsLWJlaGF2aW9yLXknXSA9ICJhdXRvIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2
YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxs
b3dlZCB2YWx1ZSAiIgorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29u
dGFpbiIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVbJ292ZXJz
Y3JvbGwtYmVoYXZpb3InXSA9ICJub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAK
K1BBU1MgZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0gImF1dG8iIHNob3VsZCBzZXQg
dGhlIHByb3BlcnR5IHZhbHVlIAorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10g
PSAiY29udGFpbiBub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5z
dHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0gIm5vbmUgYXV0byIgc2hvdWxkIHNldCB0aGUg
cHJvcGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3InXSA9ICJh
dXRvIGNvbnRhaW4iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlIAorUEFTUyBlLnN0eWxl
WydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29udGFpbiBjb250YWluIiBzaG91bGQgc2V0IHRo
ZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0g
Im5vbmUgbm9uZSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVb
J292ZXJzY3JvbGwtYmVoYXZpb3InXSA9ICJhdXRvIGF1dG8iIHNob3VsZCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlIAorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXgnXSA9ICJjb250
YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5zdHlsZVsnb3ZlcnNj
cm9sbC1iZWhhdmlvci14J10gPSAibm9uZSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUg
CitQQVNTIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3IteCddID0gImF1dG8iIHNob3VsZCBz
ZXQgdGhlIHByb3BlcnR5IHZhbHVlIAorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9y
LXknXSA9ICJjb250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5z
dHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvci15J10gPSAibm9uZSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3IteSddID0gImF1
dG8iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlIAogRkFJTCBlLnN0eWxlWydvdmVyc2Ny
b2xsLWJlaGF2aW9yLWlubGluZSddID0gImNvbnRhaW4iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5
IHZhbHVlIGFzc2VydF9ub3RfZXF1YWxzOiBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0IGdvdCBkaXNh
bGxvd2VkIHZhbHVlICIiCiBGQUlMIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5l
J10gPSAibm9uZSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUgYXNzZXJ0X25vdF9lcXVh
bHM6IHByb3BlcnR5IHNob3VsZCBiZSBzZXQgZ290IGRpc2FsbG93ZWQgdmFsdWUgIiIKIEZBSUwg
ZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmUnXSA9ICJhdXRvIiBzaG91bGQgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJl
IHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
cGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9w
YXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWQuaHRtbAppbmRleCA0NWQ5MGQ0ODVmLi5i
Y2NjNjlkZTI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwt
YmVoYXZpb3ItdmFsaWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3Jv
bGwtYmVoYXZpb3ItdmFsaWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6T3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZD10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1jc3N0ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tL2Nzc3N0eWxlZGVjbGFyYXRpb24tY3NzdGV4dC1leHBlY3RlZC50eHQKaW5kZXgg
YTEzZWZhOTVkYS4uZDg4MmRkYmM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1jc3N0
ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLWNzc3RleHQtZXhwZWN0ZWQu
dHh0CkBAIC03LDUgKzcsNSBAQCBQQVNTIGNzc1RleHQgb3JkZXIKIFBBU1MgYW5vdGhlciBjc3NU
ZXh0IG9yZGVyIChub24tYWxwaGFiZXRpY2FsIG9yZGVyKSAKIFBBU1Mgd2hpdGVzcGFjZXMgaW4g
dmFsdWUgCiBQQVNTIGludmFsaWQgcHJvcGVydHkgZG9lcyBub3QgYXBwZWFyIAotRkFJTCBjc3NU
ZXh0IG9uIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHN0cmlu
ZyBhc3NlcnRfZXF1YWxzOiBjc3NUZXh0IGlzIGVtcHR5IGV4cGVjdGVkICIiIGJ1dCBnb3QgImFs
aWduLWNvbnRlbnQ6IG5vcm1hbDsgYWxpZ24taXRlbXM6IG5vcm1hbDsgYWxpZ24tc2VsZjogYXV0
bzsgYWxpZ25tZW50LWJhc2VsaW5lOiBhdXRvOyBhbGw6IDsgYWx0OiBcIlwiOyBhbmltYXRpb24t
ZGVsYXk6IDBzOyBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7IGFuaW1hdGlvbi1kdXJhdGlv
bjogMHM7IGFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291
bnQ6IDE7IGFuaW1hdGlvbi1uYW1lOiBub25lOyBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmlu
ZzsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgYmFja2dyb3VuZC1hdHRhY2htZW50
OiBzY3JvbGw7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogbm9ybWFsOyBiYWNrZ3JvdW5kLWNsaXA6
IGJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IGJhY2tncm91
bmQtaW1hZ2U6IG5vbmU7IGJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveDsgYmFja2dyb3Vu
ZC1wb3NpdGlvbi14OiAwJTsgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwJTsgYmFja2dyb3VuZC1y
ZXBlYXQ6IHJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBhdXRvOyBiYXNlbGluZS1zaGlmdDogYmFz
ZWxpbmU7IGJsb2NrLXNpemU6IDBweDsgYm9yZGVyLWJsb2NrLWVuZC1jb2xvcjogcmdiKDI1NSwg
MCwgMCk7IGJvcmRlci1ibG9jay1lbmQtc3R5bGU6IG5vbmU7IGJvcmRlci1ibG9jay1lbmQtd2lk
dGg6IDBweDsgYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVy
LWJsb2NrLXN0YXJ0LXN0eWxlOiBub25lOyBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDBweDsg
Ym9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJvcmRlci1ib3R0b20tbGVmdC1y
YWRpdXM6IDBweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVyLWJvdHRv
bS1zdHlsZTogbm9uZTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OyBib3JkZXItY29sbGFwc2U6
IHNlcGFyYXRlOyBib3JkZXItaW1hZ2Utb3V0c2V0OiAwcHg7IGJvcmRlci1pbWFnZS1yZXBlYXQ6
IHN0cmV0Y2g7IGJvcmRlci1pbWFnZS1zbGljZTogMTAwJTsgYm9yZGVyLWltYWdlLXNvdXJjZTog
bm9uZTsgYm9yZGVyLWltYWdlLXdpZHRoOiAxOyBib3JkZXItaW5saW5lLWVuZC1jb2xvcjogcmdi
KDI1NSwgMCwgMCk7IGJvcmRlci1pbmxpbmUtZW5kLXN0eWxlOiBub25lOyBib3JkZXItaW5saW5l
LWVuZC13aWR0aDogMHB4OyBib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yOiByZ2IoMjU1LCAwLCAw
KTsgYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZTogbm9uZTsgYm9yZGVyLWlubGluZS1zdGFydC13
aWR0aDogMHB4OyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJvcmRlci1sZWZ0
LXN0eWxlOiBub25lOyBib3JkZXItbGVmdC13aWR0aDogMHB4OyBib3JkZXItcmlnaHQtY29sb3I6
IHJnYigyNTUsIDAsIDApOyBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7IGJvcmRlci1yaWdodC13
aWR0aDogMHB4OyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLXRvcC1s
ZWZ0LXJhZGl1czogMHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4OyBib3JkZXItdG9w
LXN0eWxlOiBub25lOyBib3JkZXItdG9wLXdpZHRoOiAwcHg7IGJvdHRvbTogYXV0bzsgYm94LXNo
YWRvdzogbm9uZTsgYm94LXNpemluZzogY29udGVudC1ib3g7IGJyZWFrLWFmdGVyOiBhdXRvOyBi
cmVhay1iZWZvcmU6IGF1dG87IGJyZWFrLWluc2lkZTogYXV0bzsgYnVmZmVyZWQtcmVuZGVyaW5n
OiBhdXRvOyBjYXB0aW9uLXNpZGU6IHRvcDsgY2FyZXQtY29sb3I6IHJnYigyNTUsIDAsIDApOyBj
bGVhcjogbm9uZTsgY2xpcDogYXV0bzsgY2xpcC1wYXRoOiBub25lOyBjbGlwLXJ1bGU6IG5vbnpl
cm87IGNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgY29sb3ItaW50ZXJwb2xhdGlvbjogc1JHQjsgY29s
b3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOiBsaW5lYXJSR0I7IGNvbG9yLXJlbmRlcmluZzogYXV0
bzsgY29sb3Itc2NoZW1lOiBhdXRvOyBjb2x1bW4tY291bnQ6IGF1dG87IGNvbHVtbi1maWxsOiBi
YWxhbmNlOyBjb2x1bW4tZ2FwOiBub3JtYWw7IGNvbHVtbi1ydWxlLWNvbG9yOiByZ2IoMjU1LCAw
LCAwKTsgY29sdW1uLXJ1bGUtc3R5bGU6IG5vbmU7IGNvbHVtbi1ydWxlLXdpZHRoOiAwcHg7IGNv
bHVtbi1zcGFuOiBub25lOyBjb2x1bW4td2lkdGg6IGF1dG87IGNvbnRlbnQ6IDsgY291bnRlci1p
bmNyZW1lbnQ6IG5vbmU7IGNvdW50ZXItcmVzZXQ6IG5vbmU7IGN1cnNvcjogYXV0bzsgY3g6IDBw
eDsgY3k6IDBweDsgZGlyZWN0aW9uOiBsdHI7IGRpc3BsYXk6IGJsb2NrOyBkb21pbmFudC1iYXNl
bGluZTogYXV0bzsgZW1wdHktY2VsbHM6IHNob3c7IGZpbGw6IHJnYigwLCAwLCAwKTsgZmlsbC1v
cGFjaXR5OiAxOyBmaWxsLXJ1bGU6IG5vbnplcm87IGZpbHRlcjogbm9uZTsgZmxleC1iYXNpczog
YXV0bzsgZmxleC1kaXJlY3Rpb246IHJvdzsgZmxleC1ncm93OiAwOyBmbGV4LXNocmluazogMTsg
ZmxleC13cmFwOiBub3dyYXA7IGZsb2F0OiBub25lOyBmbG9vZC1jb2xvcjogcmdiKDAsIDAsIDAp
OyBmbG9vZC1vcGFjaXR5OiAxOyBmb250LWZhbWlseTogLXdlYmtpdC1zdGFuZGFyZDsgZm9udC1m
ZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IGZvbnQtb3B0aWNhbC1zaXppbmc6IGF1dG87IGZvbnQt
c2l6ZTogMTMuMzMzMzMzMDE1NDQxODk1cHg7IGZvbnQtc3RyZXRjaDogbm9ybWFsOyBmb250LXN0
eWxlOiBub3JtYWw7IGZvbnQtc3ludGhlc2lzOiBzdHlsZSB3ZWlnaHQgc21hbGwtY2FwczsgZm9u
dC12YXJpYW50LWFsdGVybmF0ZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsg
Zm9udC12YXJpYW50LWVhc3QtYXNpYW46IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczog
bm9ybWFsOyBmb250LXZhcmlhbnQtbnVtZXJpYzogbm9ybWFsOyBmb250LXZhcmlhbnQtcG9zaXRp
b246IG5vcm1hbDsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IG5vcm1hbDsgZm9udC13ZWlnaHQ6
IG5vcm1hbDsgZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbDogMGRlZzsgZ2x5cGgtb3JpZW50
YXRpb24tdmVydGljYWw6IGF1dG87IGdyaWQtYXV0by1jb2x1bW5zOiBhdXRvOyBncmlkLWF1dG8t
Zmxvdzogcm93OyBncmlkLWF1dG8tcm93czogYXV0bzsgZ3JpZC1jb2x1bW4tZW5kOiBhdXRvOyBn
cmlkLWNvbHVtbi1zdGFydDogYXV0bzsgZ3JpZC1yb3ctZW5kOiBhdXRvOyBncmlkLXJvdy1zdGFy
dDogYXV0bzsgZ3JpZC10ZW1wbGF0ZS1hcmVhczogbm9uZTsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OiBub25lOyBncmlkLXRlbXBsYXRlLXJvd3M6IG5vbmU7IGhhbmdpbmctcHVuY3R1YXRpb246IG5v
bmU7IGhlaWdodDogMHB4OyBpbWFnZS1vcmllbnRhdGlvbjogZnJvbS1pbWFnZTsgaW1hZ2UtcmVu
ZGVyaW5nOiBhdXRvOyBpbmxpbmUtc2l6ZTogNzg0cHg7IGluc2V0LWJsb2NrLWVuZDogYXV0bzsg
aW5zZXQtYmxvY2stc3RhcnQ6IGF1dG87IGluc2V0LWlubGluZS1lbmQ6IGF1dG87IGluc2V0LWlu
bGluZS1zdGFydDogYXV0bzsgaXNvbGF0aW9uOiBhdXRvOyBqdXN0aWZ5LWNvbnRlbnQ6IG5vcm1h
bDsganVzdGlmeS1pdGVtczogbm9ybWFsOyBqdXN0aWZ5LXNlbGY6IGF1dG87IGtlcm5pbmc6IDA7
IGxlZnQ6IGF1dG87IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IGxpZ2h0aW5nLWNvbG9yOiByZ2Io
MjU1LCAyNTUsIDI1NSk7IGxpbmUtYnJlYWs6IGF1dG87IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGxp
c3Qtc3R5bGUtaW1hZ2U6IG5vbmU7IGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7IGxpc3Qt
c3R5bGUtdHlwZTogZGlzYzsgbWFyZ2luLWJsb2NrLWVuZDogMHB4OyBtYXJnaW4tYmxvY2stc3Rh
cnQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4taW5saW5lLWVuZDogMHB4OyBtYXJn
aW4taW5saW5lLXN0YXJ0OiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4
OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmtlci1lbmQ6IG5vbmU7IG1hcmtlci1taWQ6IG5vbmU7IG1h
cmtlci1zdGFydDogbm9uZTsgbWFzazogbm9uZTsgbWFzay10eXBlOiBsdW1pbmFuY2U7IG1heC1i
bG9jay1zaXplOiBub25lOyBtYXgtaGVpZ2h0OiBub25lOyBtYXgtaW5saW5lLXNpemU6IG5vbmU7
IG1heC13aWR0aDogbm9uZTsgbWluLWJsb2NrLXNpemU6IDBweDsgbWluLWhlaWdodDogMHB4OyBt
aW4taW5saW5lLXNpemU6IDBweDsgbWluLXdpZHRoOiAwcHg7IG1peC1ibGVuZC1tb2RlOiBub3Jt
YWw7IG9iamVjdC1maXQ6IGZpbGw7IG9iamVjdC1wb3NpdGlvbjogNTAlIDUwJTsgb3BhY2l0eTog
MTsgb3JkZXI6IDA7IG9ycGhhbnM6IGF1dG87IG91dGxpbmUtY29sb3I6IHJnYigyNTUsIDAsIDAp
OyBvdXRsaW5lLW9mZnNldDogMHB4OyBvdXRsaW5lLXN0eWxlOiBub25lOyBvdXRsaW5lLXdpZHRo
OiAwcHg7IG92ZXJmbG93LXdyYXA6IG5vcm1hbDsgb3ZlcmZsb3cteDogdmlzaWJsZTsgb3ZlcmZs
b3cteTogdmlzaWJsZTsgcGFkZGluZy1ibG9jay1lbmQ6IDBweDsgcGFkZGluZy1ibG9jay1zdGFy
dDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWlubGluZS1lbmQ6IDBweDsgcGFk
ZGluZy1pbmxpbmUtc3RhcnQ6IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6
IDBweDsgcGFkZGluZy10b3A6IDBweDsgcGFnZS1icmVhay1hZnRlcjogYXV0bzsgcGFnZS1icmVh
ay1iZWZvcmU6IGF1dG87IHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyBwYWludC1vcmRlcjogbm9y
bWFsOyBwZXJzcGVjdGl2ZTogbm9uZTsgcGVyc3BlY3RpdmUtb3JpZ2luLXg6IDsgcGVyc3BlY3Rp
dmUtb3JpZ2luLXk6IDsgcG9pbnRlci1ldmVudHM6IGF1dG87IHBvc2l0aW9uOiBzdGF0aWM7IHF1
b3RlczogYXV0bzsgcjogMHB4OyByZXNpemU6IG5vbmU7IHJpZ2h0OiBhdXRvOyByb3ctZ2FwOiBu
b3JtYWw7IHJ4OiBhdXRvOyByeTogYXV0bzsgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOyBzY3JvbGwt
cGFkZGluZy1ib3R0b206IDBweDsgc2Nyb2xsLXBhZGRpbmctbGVmdDogMHB4OyBzY3JvbGwtcGFk
ZGluZy1yaWdodDogMHB4OyBzY3JvbGwtcGFkZGluZy10b3A6IDBweDsgc2Nyb2xsLXNuYXAtYWxp
Z246IG5vbmUgbm9uZTsgc2Nyb2xsLXNuYXAtbWFyZ2luLWJvdHRvbTogMHB4OyBzY3JvbGwtc25h
cC1tYXJnaW4tbGVmdDogMHB4OyBzY3JvbGwtc25hcC1tYXJnaW4tcmlnaHQ6IDBweDsgc2Nyb2xs
LXNuYXAtbWFyZ2luLXRvcDogMHB4OyBzY3JvbGwtc25hcC10eXBlOiBub25lOyBzaGFwZS1pbWFn
ZS10aHJlc2hvbGQ6IDA7IHNoYXBlLW1hcmdpbjogMHB4OyBzaGFwZS1vdXRzaWRlOiBub25lOyBz
aGFwZS1yZW5kZXJpbmc6IGF1dG87IHNpemU6IDsgc3BlYWstYXM6IG5vcm1hbDsgc3RvcC1jb2xv
cjogcmdiKDAsIDAsIDApOyBzdG9wLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLWNv
bG9yOiByZ2JhKDAsIDAsIDAsIDApOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFz
aG9mZnNldDogMHB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRl
cjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1vcGFjaXR5OiAxOyBzdHJva2Utd2lkdGg6
IDFweDsgdGFiLXNpemU6IDg7IHRhYmxlLWxheW91dDogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7
IHRleHQtYW5jaG9yOiBzdGFydDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWRlY29yYXRp
b24tY29sb3I6IHJnYigyNTUsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4
dC1kZWNvcmF0aW9uLXNraXA6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRl
eHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtaW5kZW50OiAwcHg7IHRleHQtb3Jp
ZW50YXRpb246IG1peGVkOyB0ZXh0LW92ZXJmbG93OiBjbGlwOyB0ZXh0LXJlbmRlcmluZzogYXV0
bzsgdGV4dC1zaGFkb3c6IG5vbmU7IHRleHQtdHJhbnNmb3JtOiBub25lOyB0ZXh0LXVuZGVybGlu
ZS1vZmZzZXQ6IGF1dG87IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBhdXRvOyB0b3A6IGF1dG87
IHRvdWNoLWFjdGlvbjogYXV0bzsgdHJhbnNmb3JtOiBub25lOyB0cmFuc2Zvcm0tYm94OiB2aWV3
LWJveDsgdHJhbnNmb3JtLW9yaWdpbi14OiA7IHRyYW5zZm9ybS1vcmlnaW4teTogOyB0cmFuc2Zv
cm0tb3JpZ2luLXo6IDsgdHJhbnNmb3JtLXN0eWxlOiBmbGF0OyB0cmFuc2l0aW9uLWRlbGF5OiAw
czsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7IHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDsgdHJh
bnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IHVuaWNvZGUtYmlkaTogbm9ybWFsOyB2ZWN0
b3ItZWZmZWN0OiBub25lOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IHZpc2liaWxpdHk6IHZp
c2libGU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd2lkdGg6IDc4NHB4OyB3
aWxsLWNoYW5nZTogYXV0bzsgd29yZC1icmVhazogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsg
d29yZC13cmFwOiBub3JtYWw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsgeDogMHB4OyB5
OiAwcHg7IHotaW5kZXg6IGF1dG87IHpvb206IDE7IC1hcHBsZS1jb2xvci1maWx0ZXI6IG5vbmU7
IC1hcHBsZS1wYXktYnV0dG9uLXN0eWxlOiBibGFjazsgLWFwcGxlLXBheS1idXR0b24tdHlwZTog
cGxhaW47IC1hcHBsZS10cmFpbGluZy13b3JkOiBhdXRvOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5v
bmU7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiBhdXRvOyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjog
bm9uZTsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlOyAtd2Via2l0LWJhY2tn
cm91bmQtY2xpcDogYm9yZGVyLWJveDsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBvc2l0ZTogc291
cmNlLW92ZXI7IC13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94OyAtd2Via2l0
LWJhY2tncm91bmQtc2l6ZTogYXV0bzsgLXdlYmtpdC1ib3JkZXItZml0OiBib3JkZXI7IC13ZWJr
aXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJvcmRlci1pbWFnZTog
bm9uZTsgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJveC1h
bGlnbjogc3RyZXRjaDsgLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogc2xpY2U7IC13ZWJr
aXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAtd2Via2l0LWJveC1mbGV4OiAwOyAtd2Via2l0LWJv
eC1mbGV4LWdyb3VwOiAxOyAtd2Via2l0LWJveC1saW5lczogc2luZ2xlOyAtd2Via2l0LWJveC1v
cmRpbmFsLWdyb3VwOiAxOyAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7IC13ZWJraXQt
Ym94LXBhY2s6IHN0YXJ0OyAtd2Via2l0LWJveC1yZWZsZWN0OiBub25lOyAtd2Via2l0LWJveC1z
aGFkb3c6IG5vbmU7IC13ZWJraXQtY29sdW1uLWF4aXM6IGF1dG87IC13ZWJraXQtY29sdW1uLWJy
ZWFrLWFmdGVyOiBhdXRvOyAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGF1dG87IC13ZWJr
aXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzsgLXdlYmtpdC1jb2x1bW4tcHJvZ3Jlc3Npb246
IG5vcm1hbDsgLXdlYmtpdC1jdXJzb3ItdmlzaWJpbGl0eTogYXV0bzsgLXdlYmtpdC1mb250LWtl
cm5pbmc6IGF1dG87IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87IC13ZWJraXQtaHlwaGVu
YXRlLWNoYXJhY3RlcjogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUtbGltaXQtYWZ0ZXI6IGF1dG87
IC13ZWJraXQtaHlwaGVuYXRlLWxpbWl0LWJlZm9yZTogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUt
bGltaXQtbGluZXM6IG5vLWxpbWl0OyAtd2Via2l0LWh5cGhlbnM6IG1hbnVhbDsgLXdlYmtpdC1p
bml0aWFsLWxldHRlcjogbm9ybWFsOyAtd2Via2l0LWxpbmUtYWxpZ246IG5vbmU7IC13ZWJraXQt
bGluZS1ib3gtY29udGFpbjogYmxvY2sgaW5saW5lIHJlcGxhY2VkOyAtd2Via2l0LWxpbmUtY2xh
bXA6IG5vbmU7IC13ZWJraXQtbGluZS1ncmlkOiBub25lOyAtd2Via2l0LWxpbmUtc25hcDogbm9u
ZTsgLXdlYmtpdC1sb2NhbGU6IGF1dG87IC13ZWJraXQtbWFyZ2luLWFmdGVyLWNvbGxhcHNlOiBj
b2xsYXBzZTsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtp
dC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXJnaW4tdG9wLWNv
bGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogbm9uZTsgLXdlYmtpdC1t
YXNrLWJveC1pbWFnZS1vdXRzZXQ6IDBweDsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1yZXBlYXQ6
IHN0cmV0Y2g7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utc2xpY2U6IDAgZmlsbDsgLXdlYmtpdC1t
YXNrLWJveC1pbWFnZS1zb3VyY2U6IG5vbmU7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utd2lkdGg6
IGF1dG87IC13ZWJraXQtbWFzay1jbGlwOiBib3JkZXItYm94OyAtd2Via2l0LW1hc2stY29tcG9z
aXRlOiBzb3VyY2Utb3ZlcjsgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lOyAtd2Via2l0LW1hc2st
b3JpZ2luOiBib3JkZXItYm94OyAtd2Via2l0LW1hc2stcG9zaXRpb24teDogMCU7IC13ZWJraXQt
bWFzay1wb3NpdGlvbi15OiAwJTsgLXdlYmtpdC1tYXNrLXJlcGVhdDogcmVwZWF0OyAtd2Via2l0
LW1hc2stc2l6ZTogYXV0bzsgLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlOiBhbHBoYTsgLXdlYmtp
dC1uYnNwLW1vZGU6IG5vcm1hbDsgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7
IC13ZWJraXQtcnRsLW9yZGVyaW5nOiBsb2dpY2FsOyAtd2Via2l0LXJ1YnktcG9zaXRpb246IGJl
Zm9yZTsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IG5vbmU7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1j
b2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogb3Zl
ciByaWdodDsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBub25lOyAtd2Via2l0LXRleHQt
ZmlsbC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbjogbWl4
ZWQ7IC13ZWJraXQtdGV4dC1zZWN1cml0eTogbm9uZTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0
OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgLXdlYmtp
dC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyAtd2Via2l0LXRleHQtem9vbTogbm9ybWFsOyAtd2Vi
a2l0LXRyYW5zZm9ybS1zdHlsZTogZmxhdDsgLXdlYmtpdC11c2VyLWRyYWc6IGF1dG87IC13ZWJr
aXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsiCitG
QUlMIGNzc1RleHQgb24gY29tcHV0ZWQgc3R5bGUgZGVjbGFyYXRpb24gcmV0dXJucyB0aGUgZW1w
dHkgc3RyaW5nIGFzc2VydF9lcXVhbHM6IGNzc1RleHQgaXMgZW1wdHkgZXhwZWN0ZWQgIiIgYnV0
IGdvdCAiYWxpZ24tY29udGVudDogbm9ybWFsOyBhbGlnbi1pdGVtczogbm9ybWFsOyBhbGlnbi1z
ZWxmOiBhdXRvOyBhbGlnbm1lbnQtYmFzZWxpbmU6IGF1dG87IGFsbDogOyBhbHQ6IFwiXCI7IGFu
aW1hdGlvbi1kZWxheTogMHM7IGFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsgYW5pbWF0aW9u
LWR1cmF0aW9uOiAwczsgYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsgYW5pbWF0aW9uLWl0ZXJh
dGlvbi1jb3VudDogMTsgYW5pbWF0aW9uLW5hbWU6IG5vbmU7IGFuaW1hdGlvbi1wbGF5LXN0YXRl
OiBydW5uaW5nOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyBiYWNrZ3JvdW5kLWF0
dGFjaG1lbnQ6IHNjcm9sbDsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBub3JtYWw7IGJhY2tncm91
bmQtY2xpcDogYm9yZGVyLWJveDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsg
YmFja2dyb3VuZC1pbWFnZTogbm9uZTsgYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94OyBi
YWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDAlOyBiYWNr
Z3JvdW5kLXJlcGVhdDogcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IGF1dG87IGJhc2VsaW5lLXNo
aWZ0OiBiYXNlbGluZTsgYmxvY2stc2l6ZTogMHB4OyBib3JkZXItYmxvY2stZW5kLWNvbG9yOiBy
Z2IoMjU1LCAwLCAwKTsgYm9yZGVyLWJsb2NrLWVuZC1zdHlsZTogbm9uZTsgYm9yZGVyLWJsb2Nr
LWVuZC13aWR0aDogMHB4OyBib3JkZXItYmxvY2stc3RhcnQtY29sb3I6IHJnYigyNTUsIDAsIDAp
OyBib3JkZXItYmxvY2stc3RhcnQtc3R5bGU6IG5vbmU7IGJvcmRlci1ibG9jay1zdGFydC13aWR0
aDogMHB4OyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLWJvdHRv
bS1sZWZ0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyBib3Jk
ZXItYm90dG9tLXN0eWxlOiBub25lOyBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IGJvcmRlci1j
b2xsYXBzZTogc2VwYXJhdGU7IGJvcmRlci1pbWFnZS1vdXRzZXQ6IDBweDsgYm9yZGVyLWltYWdl
LXJlcGVhdDogc3RyZXRjaDsgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlOyBib3JkZXItaW1hZ2Ut
c291cmNlOiBub25lOyBib3JkZXItaW1hZ2Utd2lkdGg6IDE7IGJvcmRlci1pbmxpbmUtZW5kLWNv
bG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLWlubGluZS1lbmQtc3R5bGU6IG5vbmU7IGJvcmRl
ci1pbmxpbmUtZW5kLXdpZHRoOiAwcHg7IGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYigy
NTUsIDAsIDApOyBib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlOiBub25lOyBib3JkZXItaW5saW5l
LXN0YXJ0LXdpZHRoOiAwcHg7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9y
ZGVyLWxlZnQtc3R5bGU6IG5vbmU7IGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7IGJvcmRlci1yaWdo
dC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTsgYm9yZGVy
LXJpZ2h0LXdpZHRoOiAwcHg7IGJvcmRlci10b3AtY29sb3I6IHJnYigyNTUsIDAsIDApOyBib3Jk
ZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7IGJv
cmRlci10b3Atc3R5bGU6IG5vbmU7IGJvcmRlci10b3Atd2lkdGg6IDBweDsgYm90dG9tOiBhdXRv
OyBib3gtc2hhZG93OiBub25lOyBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgYnJlYWstYWZ0ZXI6
IGF1dG87IGJyZWFrLWJlZm9yZTogYXV0bzsgYnJlYWstaW5zaWRlOiBhdXRvOyBidWZmZXJlZC1y
ZW5kZXJpbmc6IGF1dG87IGNhcHRpb24tc2lkZTogdG9wOyBjYXJldC1jb2xvcjogcmdiKDI1NSwg
MCwgMCk7IGNsZWFyOiBub25lOyBjbGlwOiBhdXRvOyBjbGlwLXBhdGg6IG5vbmU7IGNsaXAtcnVs
ZTogbm9uemVybzsgY29sb3I6IHJnYigyNTUsIDAsIDApOyBjb2xvci1pbnRlcnBvbGF0aW9uOiBz
UkdCOyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6IGxpbmVhclJHQjsgY29sb3ItcmVuZGVy
aW5nOiBhdXRvOyBjb2xvci1zY2hlbWU6IGF1dG87IGNvbHVtbi1jb3VudDogYXV0bzsgY29sdW1u
LWZpbGw6IGJhbGFuY2U7IGNvbHVtbi1nYXA6IG5vcm1hbDsgY29sdW1uLXJ1bGUtY29sb3I6IHJn
YigyNTUsIDAsIDApOyBjb2x1bW4tcnVsZS1zdHlsZTogbm9uZTsgY29sdW1uLXJ1bGUtd2lkdGg6
IDBweDsgY29sdW1uLXNwYW46IG5vbmU7IGNvbHVtbi13aWR0aDogYXV0bzsgY29udGVudDogOyBj
b3VudGVyLWluY3JlbWVudDogbm9uZTsgY291bnRlci1yZXNldDogbm9uZTsgY3Vyc29yOiBhdXRv
OyBjeDogMHB4OyBjeTogMHB4OyBkaXJlY3Rpb246IGx0cjsgZGlzcGxheTogYmxvY2s7IGRvbWlu
YW50LWJhc2VsaW5lOiBhdXRvOyBlbXB0eS1jZWxsczogc2hvdzsgZmlsbDogcmdiKDAsIDAsIDAp
OyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogbm9uemVybzsgZmlsdGVyOiBub25lOyBmbGV4
LWJhc2lzOiBhdXRvOyBmbGV4LWRpcmVjdGlvbjogcm93OyBmbGV4LWdyb3c6IDA7IGZsZXgtc2hy
aW5rOiAxOyBmbGV4LXdyYXA6IG5vd3JhcDsgZmxvYXQ6IG5vbmU7IGZsb29kLWNvbG9yOiByZ2Io
MCwgMCwgMCk7IGZsb29kLW9wYWNpdHk6IDE7IGZvbnQtZmFtaWx5OiAtd2Via2l0LXN0YW5kYXJk
OyBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgZm9udC1vcHRpY2FsLXNpemluZzogYXV0
bzsgZm9udC1zaXplOiAxMy4zMzMzMzMwMTU0NDE4OTVweDsgZm9udC1zdHJldGNoOiBub3JtYWw7
IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC1zeW50aGVzaXM6IHN0eWxlIHdlaWdodCBzbWFsbC1j
YXBzOyBmb250LXZhcmlhbnQtYWx0ZXJuYXRlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczog
bm9ybWFsOyBmb250LXZhcmlhbnQtZWFzdC1hc2lhbjogbm9ybWFsOyBmb250LXZhcmlhbnQtbGln
YXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1udW1lcmljOiBub3JtYWw7IGZvbnQtdmFyaWFu
dC1wb3NpdGlvbjogbm9ybWFsOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyBmb250
LXdlaWdodDogbm9ybWFsOyBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsOiAwZGVnOyBnbHlw
aC1vcmllbnRhdGlvbi12ZXJ0aWNhbDogYXV0bzsgZ3JpZC1hdXRvLWNvbHVtbnM6IGF1dG87IGdy
aWQtYXV0by1mbG93OiByb3c7IGdyaWQtYXV0by1yb3dzOiBhdXRvOyBncmlkLWNvbHVtbi1lbmQ6
IGF1dG87IGdyaWQtY29sdW1uLXN0YXJ0OiBhdXRvOyBncmlkLXJvdy1lbmQ6IGF1dG87IGdyaWQt
cm93LXN0YXJ0OiBhdXRvOyBncmlkLXRlbXBsYXRlLWFyZWFzOiBub25lOyBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IG5vbmU7IGdyaWQtdGVtcGxhdGUtcm93czogbm9uZTsgaGFuZ2luZy1wdW5jdHVh
dGlvbjogbm9uZTsgaGVpZ2h0OiAwcHg7IGltYWdlLW9yaWVudGF0aW9uOiBmcm9tLWltYWdlOyBp
bWFnZS1yZW5kZXJpbmc6IGF1dG87IGlubGluZS1zaXplOiA3ODRweDsgaW5zZXQtYmxvY2stZW5k
OiBhdXRvOyBpbnNldC1ibG9jay1zdGFydDogYXV0bzsgaW5zZXQtaW5saW5lLWVuZDogYXV0bzsg
aW5zZXQtaW5saW5lLXN0YXJ0OiBhdXRvOyBpc29sYXRpb246IGF1dG87IGp1c3RpZnktY29udGVu
dDogbm9ybWFsOyBqdXN0aWZ5LWl0ZW1zOiBub3JtYWw7IGp1c3RpZnktc2VsZjogYXV0bzsga2Vy
bmluZzogMDsgbGVmdDogYXV0bzsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgbGlnaHRpbmctY29s
b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbGluZS1icmVhazogYXV0bzsgbGluZS1oZWlnaHQ6IG5v
cm1hbDsgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lk
ZTsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyBtYXJnaW4tYmxvY2stZW5kOiAwcHg7IG1hcmdpbi1i
bG9jay1zdGFydDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1pbmxpbmUtZW5kOiAw
cHg7IG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJp
Z2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgbWFya2VyLWVuZDogbm9uZTsgbWFya2VyLW1pZDog
bm9uZTsgbWFya2VyLXN0YXJ0OiBub25lOyBtYXNrOiBub25lOyBtYXNrLXR5cGU6IGx1bWluYW5j
ZTsgbWF4LWJsb2NrLXNpemU6IG5vbmU7IG1heC1oZWlnaHQ6IG5vbmU7IG1heC1pbmxpbmUtc2l6
ZTogbm9uZTsgbWF4LXdpZHRoOiBub25lOyBtaW4tYmxvY2stc2l6ZTogMHB4OyBtaW4taGVpZ2h0
OiAwcHg7IG1pbi1pbmxpbmUtc2l6ZTogMHB4OyBtaW4td2lkdGg6IDBweDsgbWl4LWJsZW5kLW1v
ZGU6IG5vcm1hbDsgb2JqZWN0LWZpdDogZmlsbDsgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlOyBv
cGFjaXR5OiAxOyBvcmRlcjogMDsgb3JwaGFuczogYXV0bzsgb3V0bGluZS1jb2xvcjogcmdiKDI1
NSwgMCwgMCk7IG91dGxpbmUtb2Zmc2V0OiAwcHg7IG91dGxpbmUtc3R5bGU6IG5vbmU7IG91dGxp
bmUtd2lkdGg6IDBweDsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyBvdmVyZmxvdy14OiB2aXNpYmxl
OyBvdmVyZmxvdy15OiB2aXNpYmxlOyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGF1dG87IG92ZXJz
Y3JvbGwtYmVoYXZpb3IteTogYXV0bzsgcGFkZGluZy1ibG9jay1lbmQ6IDBweDsgcGFkZGluZy1i
bG9jay1zdGFydDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWlubGluZS1lbmQ6
IDBweDsgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRp
bmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcGFnZS1icmVhay1hZnRlcjogYXV0bzsg
cGFnZS1icmVhay1iZWZvcmU6IGF1dG87IHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyBwYWludC1v
cmRlcjogbm9ybWFsOyBwZXJzcGVjdGl2ZTogbm9uZTsgcGVyc3BlY3RpdmUtb3JpZ2luLXg6IDsg
cGVyc3BlY3RpdmUtb3JpZ2luLXk6IDsgcG9pbnRlci1ldmVudHM6IGF1dG87IHBvc2l0aW9uOiBz
dGF0aWM7IHF1b3RlczogYXV0bzsgcjogMHB4OyByZXNpemU6IG5vbmU7IHJpZ2h0OiBhdXRvOyBy
b3ctZ2FwOiBub3JtYWw7IHJ4OiBhdXRvOyByeTogYXV0bzsgc2Nyb2xsLWJlaGF2aW9yOiBhdXRv
OyBzY3JvbGwtcGFkZGluZy1ib3R0b206IDBweDsgc2Nyb2xsLXBhZGRpbmctbGVmdDogMHB4OyBz
Y3JvbGwtcGFkZGluZy1yaWdodDogMHB4OyBzY3JvbGwtcGFkZGluZy10b3A6IDBweDsgc2Nyb2xs
LXNuYXAtYWxpZ246IG5vbmUgbm9uZTsgc2Nyb2xsLXNuYXAtbWFyZ2luLWJvdHRvbTogMHB4OyBz
Y3JvbGwtc25hcC1tYXJnaW4tbGVmdDogMHB4OyBzY3JvbGwtc25hcC1tYXJnaW4tcmlnaHQ6IDBw
eDsgc2Nyb2xsLXNuYXAtbWFyZ2luLXRvcDogMHB4OyBzY3JvbGwtc25hcC10eXBlOiBub25lOyBz
aGFwZS1pbWFnZS10aHJlc2hvbGQ6IDA7IHNoYXBlLW1hcmdpbjogMHB4OyBzaGFwZS1vdXRzaWRl
OiBub25lOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IHNpemU6IDsgc3BlYWstYXM6IG5vcm1hbDsg
c3RvcC1jb2xvcjogcmdiKDAsIDAsIDApOyBzdG9wLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsg
c3Ryb2tlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBz
dHJva2UtZGFzaG9mZnNldDogMHB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVq
b2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1vcGFjaXR5OiAxOyBzdHJv
a2Utd2lkdGg6IDFweDsgdGFiLXNpemU6IDg7IHRhYmxlLWxheW91dDogYXV0bzsgdGV4dC1hbGln
bjogc3RhcnQ7IHRleHQtYW5jaG9yOiBzdGFydDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0
LWRlY29yYXRpb24tY29sb3I6IHJnYigyNTUsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tbGluZTog
bm9uZTsgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog
c29saWQ7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtaW5kZW50OiAwcHg7
IHRleHQtb3JpZW50YXRpb246IG1peGVkOyB0ZXh0LW92ZXJmbG93OiBjbGlwOyB0ZXh0LXJlbmRl
cmluZzogYXV0bzsgdGV4dC1zaGFkb3c6IG5vbmU7IHRleHQtdHJhbnNmb3JtOiBub25lOyB0ZXh0
LXVuZGVybGluZS1vZmZzZXQ6IGF1dG87IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBhdXRvOyB0
b3A6IGF1dG87IHRvdWNoLWFjdGlvbjogYXV0bzsgdHJhbnNmb3JtOiBub25lOyB0cmFuc2Zvcm0t
Ym94OiB2aWV3LWJveDsgdHJhbnNmb3JtLW9yaWdpbi14OiA7IHRyYW5zZm9ybS1vcmlnaW4teTog
OyB0cmFuc2Zvcm0tb3JpZ2luLXo6IDsgdHJhbnNmb3JtLXN0eWxlOiBmbGF0OyB0cmFuc2l0aW9u
LWRlbGF5OiAwczsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7IHRyYW5zaXRpb24tcHJvcGVydHk6
IGFsbDsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IHVuaWNvZGUtYmlkaTogbm9y
bWFsOyB2ZWN0b3ItZWZmZWN0OiBub25lOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IHZpc2li
aWxpdHk6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd2lkdGg6
IDc4NHB4OyB3aWxsLWNoYW5nZTogYXV0bzsgd29yZC1icmVhazogbm9ybWFsOyB3b3JkLXNwYWNp
bmc6IDBweDsgd29yZC13cmFwOiBub3JtYWw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10Yjsg
eDogMHB4OyB5OiAwcHg7IHotaW5kZXg6IGF1dG87IHpvb206IDE7IC1hcHBsZS1jb2xvci1maWx0
ZXI6IG5vbmU7IC1hcHBsZS1wYXktYnV0dG9uLXN0eWxlOiBibGFjazsgLWFwcGxlLXBheS1idXR0
b24tdHlwZTogcGxhaW47IC1hcHBsZS10cmFpbGluZy13b3JkOiBhdXRvOyAtd2Via2l0LWFwcGVh
cmFuY2U6IG5vbmU7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiBhdXRvOyAtd2Via2l0LWJhY2tkcm9w
LWZpbHRlcjogbm9uZTsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlOyAtd2Vi
a2l0LWJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBv
c2l0ZTogc291cmNlLW92ZXI7IC13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94
OyAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogYXV0bzsgLXdlYmtpdC1ib3JkZXItZml0OiBib3Jk
ZXI7IC13ZWJraXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJvcmRl
ci1pbWFnZTogbm9uZTsgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZzogMHB4OyAtd2Vi
a2l0LWJveC1hbGlnbjogc3RyZXRjaDsgLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogc2xp
Y2U7IC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAtd2Via2l0LWJveC1mbGV4OiAwOyAt
d2Via2l0LWJveC1mbGV4LWdyb3VwOiAxOyAtd2Via2l0LWJveC1saW5lczogc2luZ2xlOyAtd2Vi
a2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxOyAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7
IC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0OyAtd2Via2l0LWJveC1yZWZsZWN0OiBub25lOyAtd2Vi
a2l0LWJveC1zaGFkb3c6IG5vbmU7IC13ZWJraXQtY29sdW1uLWF4aXM6IGF1dG87IC13ZWJraXQt
Y29sdW1uLWJyZWFrLWFmdGVyOiBhdXRvOyAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGF1
dG87IC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzsgLXdlYmtpdC1jb2x1bW4tcHJv
Z3Jlc3Npb246IG5vcm1hbDsgLXdlYmtpdC1jdXJzb3ItdmlzaWJpbGl0eTogYXV0bzsgLXdlYmtp
dC1mb250LWtlcm5pbmc6IGF1dG87IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87IC13ZWJr
aXQtaHlwaGVuYXRlLWNoYXJhY3RlcjogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUtbGltaXQtYWZ0
ZXI6IGF1dG87IC13ZWJraXQtaHlwaGVuYXRlLWxpbWl0LWJlZm9yZTogYXV0bzsgLXdlYmtpdC1o
eXBoZW5hdGUtbGltaXQtbGluZXM6IG5vLWxpbWl0OyAtd2Via2l0LWh5cGhlbnM6IG1hbnVhbDsg
LXdlYmtpdC1pbml0aWFsLWxldHRlcjogbm9ybWFsOyAtd2Via2l0LWxpbmUtYWxpZ246IG5vbmU7
IC13ZWJraXQtbGluZS1ib3gtY29udGFpbjogYmxvY2sgaW5saW5lIHJlcGxhY2VkOyAtd2Via2l0
LWxpbmUtY2xhbXA6IG5vbmU7IC13ZWJraXQtbGluZS1ncmlkOiBub25lOyAtd2Via2l0LWxpbmUt
c25hcDogbm9uZTsgLXdlYmtpdC1sb2NhbGU6IGF1dG87IC13ZWJraXQtbWFyZ2luLWFmdGVyLWNv
bGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlLWNvbGxhcHNlOiBjb2xsYXBz
ZTsgLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXJn
aW4tdG9wLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogbm9uZTsg
LXdlYmtpdC1tYXNrLWJveC1pbWFnZS1vdXRzZXQ6IDBweDsgLXdlYmtpdC1tYXNrLWJveC1pbWFn
ZS1yZXBlYXQ6IHN0cmV0Y2g7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utc2xpY2U6IDAgZmlsbDsg
LXdlYmtpdC1tYXNrLWJveC1pbWFnZS1zb3VyY2U6IG5vbmU7IC13ZWJraXQtbWFzay1ib3gtaW1h
Z2Utd2lkdGg6IGF1dG87IC13ZWJraXQtbWFzay1jbGlwOiBib3JkZXItYm94OyAtd2Via2l0LW1h
c2stY29tcG9zaXRlOiBzb3VyY2Utb3ZlcjsgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lOyAtd2Vi
a2l0LW1hc2stb3JpZ2luOiBib3JkZXItYm94OyAtd2Via2l0LW1hc2stcG9zaXRpb24teDogMCU7
IC13ZWJraXQtbWFzay1wb3NpdGlvbi15OiAwJTsgLXdlYmtpdC1tYXNrLXJlcGVhdDogcmVwZWF0
OyAtd2Via2l0LW1hc2stc2l6ZTogYXV0bzsgLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlOiBhbHBo
YTsgLXdlYmtpdC1uYnNwLW1vZGU6IG5vcm1hbDsgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6
IGVjb25vbXk7IC13ZWJraXQtcnRsLW9yZGVyaW5nOiBsb2dpY2FsOyAtd2Via2l0LXJ1YnktcG9z
aXRpb246IGJlZm9yZTsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IG5vbmU7IC13ZWJraXQtdGV4dC1l
bXBoYXNpcy1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3Np
dGlvbjogb3ZlciByaWdodDsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBub25lOyAtd2Vi
a2l0LXRleHQtZmlsbC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1vcmllbnRh
dGlvbjogbWl4ZWQ7IC13ZWJraXQtdGV4dC1zZWN1cml0eTogbm9uZTsgLXdlYmtpdC10ZXh0LXNp
emUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiByZ2IoMjU1LCAwLCAw
KTsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyAtd2Via2l0LXRleHQtem9vbTogbm9y
bWFsOyAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogZmxhdDsgLXdlYmtpdC11c2VyLWRyYWc6IGF1
dG87IC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsgLXdlYmtpdC11c2VyLXNlbGVjdDog
dGV4dDsiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXht
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhw
ZWN0ZWQudHh0CmluZGV4IDdlY2M4ZGQ5OTcuLmEyN2E0YTA4NzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApAQCAtMTkzLDYgKzE5
Myw4IEBAIFBBU1Mgb3V0bGluZS13aWR0aAogUEFTUyBvdmVyZmxvdy13cmFwIAogUEFTUyBvdmVy
Zmxvdy14IAogUEFTUyBvdmVyZmxvdy15IAorUEFTUyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggCitQ
QVNTIG92ZXJzY3JvbGwtYmVoYXZpb3IteSAKIFBBU1MgcGFkZGluZy1ibG9jay1lbmQgCiBQQVNT
IHBhZGRpbmctYmxvY2stc3RhcnQgCiBQQVNTIHBhZGRpbmctYm90dG9tIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBhM2Yx
MzM4YjM2Li5iOTJiOGViYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzA2MCw2ICszMDYwLDEyIEBAIFJlZlB0cjxD
U1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUo
Y29uc3QgUmVuZGVyU3R5CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZh
bHVlKHN0eWxlLm92ZXJmbG93WCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93
WToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3Zl
cmZsb3dZKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgor
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdGQ6Om1heChzdHls
ZS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCksIHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclkoKSkpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9y
WCgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAg
ICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm92ZXJzY3JvbGxC
ZWhhdmlvclkoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgogICAgICAg
ICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBhZGRpbmdPck1hcmdpblBpeGVsVmFsdWU8JlJlbmRl
clN0eWxlOjpwYWRkaW5nVG9wLCAmUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFk
ZGluZ1RvcD4oc3R5bGUsIHJlbmRlcmVyKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRp
bmdSaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCmluZGV4IGEzYzc2Y2RkZmYuLmM1ZjI0NjE2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIK
ICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZURlZnMuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5o
IgogI2luY2x1ZGUgIlRleHRGbGFncy5oIgogI2luY2x1ZGUgIlRoZW1lVHlwZXMuaCIKICNpbmNs
dWRlICJUb3VjaEFjdGlvbi5oIgpAQCAtMjIwNSw2ICsyMjA2LDQyIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0
dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQor
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgc2V0UHJpbWl0aXZlVW5pdFR5
cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CisgICAgc3dpdGNoIChiZWhhdmlvcikgewor
ICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNj
cm9sbEJlaGF2aW9yOjpOb25lOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
bmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
KworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUNvbnRh
aW46CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW47CisgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7
CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkF1dG87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsK
K30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRleCAyYWNiMDljMTI3Li5jZmFlZmQ5
NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTMyODksNiArMzI4
OSw1MyBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nz
cy1vdmVyZmxvdy0zLyNwcm9wZGVmLW92ZXJmbG93LXkiCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yIjogeworICAgICAgICAgICAgImNvZGVn
ZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWworICAgICAg
ICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci14IiwKKyAgICAgICAgICAgICAgICAg
ICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgICJzZXR0aW5ncy1mbGFnIjogIm92ZXJzY3JvbGxCZWhhdmlvciIKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
aW4gZGV2ZWxvcG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRp
b24iOiB7CisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292
ZXJzY3JvbGwtYmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvciIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IteCI6IHsKKyAg
ICAgICAgICAgICJ2YWx1ZXMiOiBbCisgICAgICAgICAgICAgICAgImNvbnRhaW4iLAorICAgICAg
ICAgICAgICAgICJub25lIiwKKyAgICAgICAgICAgICAgICAiYXV0byIKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJz
ZXR0aW5ncy1mbGFnIjogIm92ZXJzY3JvbGxCZWhhdmlvciIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAic3RhdHVzIjogeworICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiaW4gZGV2ZWxv
cG1lbnQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Cisg
ICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwt
YmVoYXZpb3IvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci14IgorICAgICAgICAgICAgfQor
ICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IjogeworICAgICAgICAg
ICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFpbiIsCisgICAgICAgICAgICAg
ICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgInNldHRpbmdz
LWZsYWciOiAib3ZlcnNjcm9sbEJlaGF2aW9yIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlv
ci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXkiCisgICAgICAgICAgICB9CisgICAgICAg
IH0sCiAgICAgICAgICJwYWRkaW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGll
cyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgppbmRleCA2YmFjMDAzMjY2Li5jOGNmZjdhNmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTM5Myw2ICsxMzkzLDkgQEAgcGluY2gt
em9vbQogLy8gYXV0bwogc21vb3RoCiAKKy8vIG92ZXJzY3JvbGwtYmVoYXZpb3IKKy8vIGNvbnRh
aW4KKwogLy8gaGFuZ2luZy1wdW5jdHVhdGlvbgogYWxsb3ctZW5kCiBmaXJzdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBhMDJhODE5MGI4Li4xMThhZWExMmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjU1LDYgKzI1NSw4IEBA
IFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFsdWUod2Via2l0
TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93
OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyZmxvd1Nob3J0aGFuZCgpKTsKKyAgICBj
YXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAgICAgICByZXR1cm4gZ2V0MlZh
bHVlcyhvdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmc6CiAgICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBhZGRpbmdTaG9ydGhhbmQoKSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCbG9jazoKQEAgLTExNzcsNiArMTE3OSwxMCBA
QCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjphc1RleHQoKSBjb25zdAogICAgICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKICAgICAgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0
eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgorICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CisgICAgICAgICAgICAgICAgc2hv
cnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOworICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6
CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgogICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCA1YTdkODA0ZGFkLi5kN2NjYzFjMjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAg
LTc2LDYgKzc2LDcgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXMKICNlbmRpZgogICAgIGRlZmVy
cmVkQ1NTUGFyc2VyRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkuZGVmZXJyZWRDU1NQYXJz
ZXJFbmFibGVkKCk7CiAgICAgc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGlu
Z3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCk7CisgICAgb3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZCA9IGRvY3VtZW50LnNldHRpbmdzKCkub3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZCgpOwogICAgIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBkb2N1bWVudC5wYWdlKCkgPyBkb2N1
bWVudC5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSA6IGZhbHNlOwogfQogCkBAIC0xMDIs
NiArMTAzLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNv
bnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuZGVmZXJyZWRDU1NQYXJzZXJF
bmFibGVkID09IGIuZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkCiAgICAgICAgICYmIGEuc2Nyb2xs
QmVoYXZpb3JFbmFibGVkID09IGIuc2Nyb2xsQmVoYXZpb3JFbmFibGVkCiAgICAgICAgICYmIGEu
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9PSBiLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4K
KyAgICAgICAgJiYgYS5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID09IGIub3ZlcnNjcm9sbEJl
aGF2aW9yRW5hYmxlZAogICAgICAgICAmJiBhLnVzZVN5c3RlbUFwcGVhcmFuY2UgPT0gYi51c2VT
eXN0ZW1BcHBlYXJhbmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5oCmluZGV4IDBlZTU1YmZjODAuLmE2MGEzNzk2NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oCkBAIC02Niw2ICs2Niw3IEBAIHB1
YmxpYzoKICNlbmRpZgogICAgIGJvb2wgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIHNjcm9sbEJlaGF2aW9yRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBv
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBUaGlzIGlz
IG9ubHkgbmVlZGVkIHRvIHN1cHBvcnQgZ2V0TWF0Y2hlZENTU1J1bGVzLgogICAgIGJvb2wgaGFz
RG9jdW1lbnRTZWN1cml0eU9yaWdpbiB7IGZhbHNlIH07CkBAIC0xMDksNyArMTEwLDggQEAgc3Ry
dWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAgICAgICAgICAgICYga2V5LmF0dGFjaG1lbnRF
bmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDExCiAjZW5kaWYKICAgICAgICAgICAg
ICYga2V5LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDEyCi0g
ICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8PCAxMzsgLy8gS2VlcCB0aGlzIGxhc3QuCisgICAgICAgICAgICAmIGtleS5vdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICA8PCAxMworICAgICAgICAgICAgJiBrZXku
bW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTQ7IC8vIEtlZXAg
dGhpcyBsYXN0LgogICAgICAgICBoYXNoIF49IFdURjo6aW50SGFzaChiaXRzKTsKICAgICAgICAg
cmV0dXJuIGhhc2g7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDhlODhmYzk1Y2QuLjU0ZTI2MzA1NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKQEAgLTY4
Myw2ICs2ODMsMTEgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJv
cGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQKICAgICAgICAgcmV0dXJuIHZh
bHVlSUQgPT0gQ1NTVmFsdWVWaXNpYmxlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVIaWRkZW4gfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlT3ZlcmxheTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZ
OiAvLyB2aXNpYmxlIHwgaGlkZGVuIHwgc2Nyb2xsIHwgYXV0byB8IG92ZXJsYXkgfCAtd2Via2l0
LXBhZ2VkLXggfCAtd2Via2l0LXBhZ2VkLXkgKG92ZXJsYXkgaXMgYSBzeW5vbnltIGZvciBhdXRv
KQogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZVZpc2libGUgfHwgdmFsdWVJRCA9
PSBDU1NWYWx1ZUhpZGRlbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU2Nyb2xsIHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVPdmVybGF5IHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVXZWJraXRQYWdlZFggfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2Vk
WTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENT
U1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAgaWYgKCFjb250ZXh0Lm92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQ29u
dGFpbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZTsKICAgICBjYXNlIENTU1Byb3BlcnR5QnJl
YWtBZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5QnJlYWtCZWZvcmU6CiAgICAgICAgIHJldHVy
biB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWQgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZUF2b2lkUGFnZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUGFnZSB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlTGVmdCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmlnaHQgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZVJlY3RvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVWZXJzbyB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlQXZvaWRDb2x1bW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbHVt
bjsKQEAgLTkzOCw2ICs5NDMsOCBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3b3Jk
UHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJmbG93V3JhcDoKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dYOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlPdmVyZmxvd1k6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhh
dmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBvaW50ZXJFdmVudHM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBvc2l0aW9u
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlSZXNpemU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IGU0MDRkNDhlZjguLmJhMzg1MWMyMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
CkBAIC0yMzc0LDYgKzIzNzQsMTQgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
Y29uc3VtZVNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmcKICAgICByZXR1
cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKIH0KIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZU92ZXJzY3JvbGxCZWhhdmlvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAg
ICBhdXRvIHZhbHVlSUQgPSByYW5nZS5wZWVrKCkuaWQoKTsKKyAgICBpZiAodmFsdWVJRCAhPSBD
U1NWYWx1ZUF1dG8gJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZU5vbmUgJiYgdmFsdWVJRCAhPSBDU1NW
YWx1ZUNvbnRhaW4pCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdW1l
SWRlbnQocmFuZ2UpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVy
UmFkaXVzQ29ybmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNz
c1BhcnNlck1vZGUpCiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1
ZTEgPSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1ZVJh
bmdlTm9uTmVnYXRpdmUpOwpAQCAtMzk2MSw2ICszOTY5LDExIEBAIFJlZlB0cjxDU1NWYWx1ZT4g
Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eSwgQ1NTCiAgICAgICAgIGlmICghbV9jb250ZXh0LnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZVNjcm9sbEJl
aGF2aW9yKG1fcmFuZ2UpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JY
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBpZiAo
IW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFu
Z2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlDbGlwOgogICAgICAgICByZXR1cm4gY29uc3VtZUNs
aXAobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUb3VjaEFj
dGlvbjoKQEAgLTU1NTAsNiArNTU2MywzNSBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25z
dW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwog
fQogCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yU2hv
cnRoYW5kKGJvb2wgaW1wb3J0YW50KQoreworICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9wZXJ0
eShDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcikubGVuZ3RoKCkgPT0gMik7CisgICAgaWYg
KCFtX2NvbnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKG1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgUmVmUHRyPENTU1ZhbHVlPiBvdmVyc2Nyb2xsQmVoYXZpb3JYID0gY29uc3VtZU92ZXJz
Y3JvbGxCZWhhdmlvcihtX3JhbmdlKTsKKyAgICBpZiAoIW92ZXJzY3JvbGxCZWhhdmlvclgpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gb3ZlcnNjcm9sbEJl
aGF2aW9yWTsKKyAgICBtX3JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgaWYgKG1fcmFu
Z2UuYXRFbmQoKSkKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWSA9IG92ZXJzY3JvbGxCZWhh
dmlvclg7CisgICAgZWxzZSB7CisgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclkgPSBjb25zdW1l
T3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgICAgICBtX3JhbmdlLmNvbnN1bWVXaGl0
ZXNwYWNlKCk7CisgICAgICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9s
bEJlaGF2aW9yWCwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVo
YXZpb3JYLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9s
bEJlaGF2aW9yWSwgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3IsICpvdmVyc2Nyb2xsQmVo
YXZpb3JZLCBpbXBvcnRhbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1Byb3Bl
cnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGlt
cG9ydGFudCkKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CkBAIC01NTcwLDYgKzU2MTIsOCBA
QCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJm
bG93OgogICAgICAgICByZXR1cm4gY29uc3VtZU92ZXJmbG93U2hvcnRoYW5kKGltcG9ydGFudCk7
CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvcjoKKyAgICAgICAgcmV0dXJu
IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNl
IENTU1Byb3BlcnR5Rm9udDogewogICAgICAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4g
PSBtX3JhbmdlLnBlZWsoKTsKICAgICAgICAgaWYgKHRva2VuLmlkKCkgPj0gQ1NTVmFsdWVDYXB0
aW9uICYmIHRva2VuLmlkKCkgPD0gQ1NTVmFsdWVTdGF0dXNCYXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKaW5kZXggYjdlMTlmYmQ2NC4uMzAzMzI2
ZmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
aApAQCAtMTEyLDYgKzExMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjb25zdW1lVHJhbnNmb3Jt
T3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIGNvbnN1bWVQZXJzcGVjdGl2ZU9yaWdp
bihib29sIGltcG9ydGFudCk7CiAKKyAgICBib29sIGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3JT
aG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworCiBwcml2YXRlOgogICAgIC8vIElucHV0czoKICAg
ICBDU1NQYXJzZXJUb2tlblJhbmdlIG1fcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggYTIzNjZmMWZhMC4uODRiYWJlNzc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMzAyLDE1ICszMDIsMTcgQEAgc3RhdGljIHZvaWQgaGFuZGxlV2hl
ZWxFdmVudFBoYXNlSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFy
ZWEKICNlbmRpZgogfQogCi1zdGF0aWMgYm9vbCBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKFNj
cm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCkKK3N0YXRpYyBib29sIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEm
IHNjcm9sbGFibGVBcmVhLCBjb25zdCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBJZ25v
cmVEZWx0YVJlcXVlc3QmIGlnbm9yZVJlcXVlc3QpCiB7CisgICAgZG91YmxlIGRlbHRhWCA9IGln
bm9yZVJlcXVlc3QuaWdub3JlWCA/IDAgOiB3aGVlbEV2ZW50LmRlbHRhWCgpOworICAgIGRvdWJs
ZSBkZWx0YVkgPSBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkgPyAwIDogd2hlZWxFdmVudC5kZWx0YVko
KTsKICAgICBTY3JvbGxHcmFudWxhcml0eSBzY3JvbGxHcmFudWxhcml0eSA9IHdoZWVsR3JhbnVs
YXJpdHlUb1Njcm9sbEdyYW51bGFyaXR5KHdoZWVsRXZlbnQuZGVsdGFNb2RlKCkpOwogICAgIGJv
b2wgZGlkSGFuZGxlV2hlZWxFdmVudCA9IGZhbHNlOwotICAgIGlmIChmbG9hdCBhYnNvbHV0ZURl
bHRhID0gc3RkOjphYnMod2hlZWxFdmVudC5kZWx0YVgoKSkpCi0gICAgICAgIGRpZEhhbmRsZVdo
ZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAw
ID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJzb2x1dGVE
ZWx0YSk7CisgICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyhkZWx0YVgpKQor
ICAgICAgICBkaWRIYW5kbGVXaGVlbEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbChkZWx0
YVggPiAwID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxMZWZ0LCBzY3JvbGxHcmFudWxhcml0eSwgYWJz
b2x1dGVEZWx0YSk7CiAgICAgCi0gICAgaWYgKGZsb2F0IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFi
cyh3aGVlbEV2ZW50LmRlbHRhWSgpKSkKLSAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBz
Y3JvbGxhYmxlQXJlYS5zY3JvbGwod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgPyBTY3JvbGxEb3du
IDogU2Nyb2xsVXAsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAo
ZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJzKGRlbHRhWSkpCisgICAgICAgIGRpZEhhbmRs
ZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsKGRlbHRhWSA+IDAgPyBTY3JvbGxE
b3duIDogU2Nyb2xsVXAsIHNjcm9sbEdyYW51bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAK
ICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVudDsKIH0KQEAgLTMzNiwyNCArMzM4LDM3IEBA
IHN0YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5v
ZGUqIHN0YXJ0Tm9kZSwgY29uc3QgV2hlCiAgICAgaWYgKCFzaG91bGRIYW5kbGVFdmVudCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgSWdub3JlRGVsdGFSZXF1ZXN0IGlnbm9yZVJlcXVl
c3Q7CiAgICAgaWYgKGlzPFJlbmRlckxpc3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpKQotICAg
ICAgICByZXR1cm4gZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShkb3duY2FzdDxSZW5kZXJMaXN0
Qm94Pihpbml0aWFsRW5jbG9zaW5nQm94KSwgd2hlZWxFdmVudCk7CisgICAgICAgIHJldHVybiBk
aWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGRvd25jYXN0PFJlbmRlckxpc3RCb3g+KGluaXRpYWxF
bmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50LCBpZ25vcmVSZXF1ZXN0KTsKIAogICAgIFJlbmRlckJv
eCogY3VycmVudEVuY2xvc2luZ0JveCA9ICZpbml0aWFsRW5jbG9zaW5nQm94OworICAgIGJvb2wg
Ymlhc1RvVmVydGljYWwgPSBhYnMod2hlZWxFdmVudC5kZWx0YVgoKSkgPD0gYWJzKHdoZWVsRXZl
bnQuZGVsdGFZKCkpOworICAgIGF1dG8qIGRvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCA9IGN1cnJl
bnRFbmNsb3NpbmdCb3gtPmRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpOwogICAgIHdoaWxl
IChjdXJyZW50RW5jbG9zaW5nQm94KSB7CiAgICAgICAgIGlmIChSZW5kZXJMYXllciogYm94TGF5
ZXIgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5sYXllcigpKSB7CiAgICAgICAgICAgICBhdXRvIHBs
YXRmb3JtRXZlbnQgPSB3aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2ZW50KCk7CiAgICAg
ICAgICAgICBib29sIHNjcm9sbGluZ1dhc0hhbmRsZWQ7CiAgICAgICAgICAgICBpZiAocGxhdGZv
cm1FdmVudCkgewotICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2
ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0
aCgpLCBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOwor
ICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0
aERlbHRhc0FuZFZlbG9jaXR5KGlnbm9yZVJlcXVlc3QuaWdub3JlWCA/IDAgOiBmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEud2lkdGgoKSwgaWdub3JlUmVxdWVzdC5pZ25vcmVZID8gMCA6IGZpbHRlcmVk
UGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CiAgICAgICAgICAgICAg
ICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGJveExheWVyLT5oYW5kbGVXaGVlbEV2ZW50KGNvcGll
ZEV2ZW50KTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dh
c0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKCpib3hMYXllciwgd2hlZWxFdmVu
dCk7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Ny
b2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50LCBpZ25vcmVSZXF1ZXN0KTsKIAogICAg
ICAgICAgICAgaWYgKHNjcm9sbGluZ1dhc0hhbmRsZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KIAorICAgICAgICBib29sIGlzRG9jdW1lbnRTY3JvbGxpbmdFbGVt
ZW50ID0gY3VycmVudEVuY2xvc2luZ0JveC0+ZWxlbWVudCgpID09IGRvY3VtZW50U2Nyb2xsaW5n
RWxlbWVudDsKKyAgICAgICAgaWYgKCFpc0RvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCAmJiAhaWdu
b3JlUmVxdWVzdC5pZ25vcmVYICYmIGN1cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCkub3ZlcnNj
cm9sbEJlaGF2aW9yWCgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgICAg
IGlnbm9yZVJlcXVlc3QuaWdub3JlWCA9IHRydWU7CisgICAgICAgIGlmICghaXNEb2N1bWVudFNj
cm9sbGluZ0VsZW1lbnQgJiYgIWlnbm9yZVJlcXVlc3QuaWdub3JlWSAmJiBjdXJyZW50RW5jbG9z
aW5nQm94LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKSAhPSBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkF1dG8pCisgICAgICAgICAgICBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkgPSB0cnVlOworICAg
ICAgICBpZiAoKGlnbm9yZVJlcXVlc3QuaWdub3JlWCAmJiBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkp
CisgICAgICAgICAgICB8fCAoaWdub3JlUmVxdWVzdC5pZ25vcmVYICYmICFiaWFzVG9WZXJ0aWNh
bCkKKyAgICAgICAgICAgIHx8IChpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkgJiYgYmlhc1RvVmVydGlj
YWwpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICAgICAgY3VycmVudEVuY2xvc2lu
Z0JveCA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICBp
ZiAoIWN1cnJlbnRFbmNsb3NpbmdCb3ggfHwgY3VycmVudEVuY2xvc2luZ0JveC0+aXNSZW5kZXJW
aWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODYyLDYgKzI4NzcsMjEgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBjb24KICAgICByZXR1cm4gcGxhdGZvcm1Db21wbGV0ZVBsYXRm
b3JtV2lkZ2V0V2hlZWxFdmVudChldmVudCwgKndpZGdldC5nZXQoKSwgc2Nyb2xsYWJsZUFyZWEp
OwogfQogCisjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQorc3RhdGljIHZvaWQgdXBk
YXRlUGFyZW50RnJhbWVJZ25vcmVEZWx0YVJlcXVlc3QoRnJhbWUmIGZyYW1lLCBJZ25vcmVEZWx0
YVJlcXVlc3QmIGlnbm9yZURlbHRhKQoreworICAgIGF1dG8qIHBhcmVudCA9IGZyYW1lLnRyZWUo
KS5wYXJlbnQoKTsKKyAgICBjb25zdCBTY3JvbGxhYmxlQXJlYSogdmlldyA9IGZyYW1lLnZpZXco
KTsKKyAgICBpZiAoIWZyYW1lLnBhZ2UoKSB8fCAhcGFyZW50IHx8ICF2aWV3KQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKHZpZXctPmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAhPSBP
dmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgIGlnbm9yZURlbHRhLmlnbm9yZVggPSB0
cnVlOworICAgIGlmICh2aWV3LT52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICE9IE92ZXJz
Y3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgaWdub3JlRGVsdGEuaWdub3JlWSA9IHRydWU7
CisgICAgZnJhbWUucGFnZSgpLT5zY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIoKS51cGRhdGVJZ25v
cmVEZWx0YVJlcXVlc3QoKnBhcmVudCwgaWdub3JlRGVsdGEpOworfQorI2VuZGlmCisKIGJvb2wg
RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCk7CkBAIC0y
OTQ3LDEyICsyOTc3LDQ2IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgYm9vbCBhbGxvd1Njcm9sbGluZyA9
IHRydWU7CiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQogICAgIGFsbG93U2Nyb2xs
aW5nID0gbV9mcmFtZS5wYWdlKCktPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigpLmxhdGNoaW5n
QWxsb3dzU2Nyb2xsaW5nSW5GcmFtZShtX2ZyYW1lLCBzY3JvbGxhYmxlQXJlYSk7CisgICAgSWdu
b3JlRGVsdGFSZXF1ZXN0IGlnbm9yZURlbHRhID0gbV9mcmFtZS5wYWdlKCktPnNjcm9sbExhdGNo
aW5nQ29udHJvbGxlcigpLmdldElnbm9yZURlbHRhUmVxdWVzdChtX2ZyYW1lKTsKICNlbmRpZgog
ICAgIGlmIChhbGxvd1Njcm9sbGluZykgeworICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgYWRq
dXN0ZWRXaGVlbEV2ZW50ID0gUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50KTsKKyNpZiBFTkFCTEUo
V0hFRUxfRVZFTlRfTEFUQ0hJTkcpCisgICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSA9PSB2aWV3
KSB7CisgICAgICAgICAgICBib29sIGJpYXNUb1ZlcnRpY2FsID0gYWJzKGV2ZW50LmRlbHRhWCgp
KSA8PSBhYnMoZXZlbnQuZGVsdGFZKCkpOworICAgICAgICAgICAgaWYgKGlnbm9yZURlbHRhLmln
bm9yZVggJiYgIWJpYXNUb1ZlcnRpY2FsKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtX2ZyYW1l
LmlzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlUGFyZW50RnJhbWVJ
Z25vcmVEZWx0YVJlcXVlc3QobV9mcmFtZSwgaWdub3JlRGVsdGEpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGF1
dG8gcG9zaXRpb24gPSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIG1pbmltdW1Qb3NpdGlvbiA9IHNjcm9sbGFibGVBcmVhLT5taW5pbXVtU2Ny
b2xsUG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBhdXRvIG1heGltdW1Qb3NpdGlvbiA9IHNj
cm9sbGFibGVBcmVhLT5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBp
ZiAoKHBvc2l0aW9uLngoKSA8PSBtaW5pbXVtUG9zaXRpb24ueCgpICYmIGV2ZW50LmRlbHRhWCgp
ID4gMCkKKyAgICAgICAgICAgICAgICAgICAgfHwgKHBvc2l0aW9uLngoKSA+PSBtYXhpbXVtUG9z
aXRpb24ueCgpICYmIGV2ZW50LmRlbHRhWCgpIDwgMCkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKChpZ25vcmVEZWx0YS5pZ25vcmVYICYmIGlnbm9yZURlbHRhLmln
bm9yZVkpCisgICAgICAgICAgICAgICAgfHwgKGlnbm9yZURlbHRhLmlnbm9yZVkgJiYgYmlhc1Rv
VmVydGljYWwpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBm
bG9hdCBkZWx0YVggPSBpZ25vcmVEZWx0YS5pZ25vcmVYID8gMCA6IGV2ZW50LmRlbHRhWCgpOwor
ICAgICAgICAgICAgZmxvYXQgZGVsdGFZID0gaWdub3JlRGVsdGEuaWdub3JlWSA/IDAgOiBldmVu
dC5kZWx0YVkoKTsKKyAgICAgICAgICAgIGFkanVzdGVkV2hlZWxFdmVudCA9IGFkanVzdGVkV2hl
ZWxFdmVudC5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGRlbHRhWCwgZGVsdGFZLCBldmVudC5z
Y3JvbGxpbmdWZWxvY2l0eSgpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIC8vIEZJWE1F
OiBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZygpIGlzIG9ubHkgY2FsbGVkIGZvciBGcmFt
ZVZpZXcgc2Nyb2xsaW5nLCBub3Qgb3ZlcmZsb3cgc2Nyb2xsaW5nLCB3aGljaCBpcyBjb25mdXNp
bmcuCi0gICAgICAgIGhhbmRsZWRFdmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5n
KGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7Ci0gICAgICAgIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Ny
b2xsU25hcChldmVudCwgc2Nyb2xsYWJsZUFyZWEpOworICAgICAgICBoYW5kbGVkRXZlbnQgPSBw
cm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhhZGp1c3RlZFdoZWVsRXZlbnQsIHNjcm9sbGFi
bGVBcmVhKTsKKyAgICAgICAgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGFkanVzdGVk
V2hlZWxFdmVudCwgc2Nyb2xsYWJsZUFyZWEpOwogICAgIH0KKworI2lmIEVOQUJMRShXSEVFTF9F
VkVOVF9MQVRDSElORykKKyAgICBpZiAoIWFsbG93U2Nyb2xsaW5nICYmICFtX2ZyYW1lLmlzTWFp
bkZyYW1lKCkpCisgICAgICAgIHVwZGF0ZVBhcmVudEZyYW1lSWdub3JlRGVsdGFSZXF1ZXN0KG1f
ZnJhbWUsIGlnbm9yZURlbHRhKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIGhhbmRsZWRFdmVudDsK
IH0KIApAQCAtMjk5OCwxNCArMzA2MiwxOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFdo
ZWVsRXZlbnRIYW5kbGVyKE5vZGUqIHN0YXJ0Tm9kZSwgV2hlZWxFdmVudCYgd2hlZWxFdgogICAg
IGlmICghbV9mcmFtZS5wYWdlKCktPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigpLmxhdGNoaW5n
QWxsb3dzU2Nyb2xsaW5nSW5GcmFtZShtX2ZyYW1lLCBsYXRjaGVkU2Nyb2xsZXIpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdub3JlRGVsdGEgPSBtX2ZyYW1l
LnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkuZ2V0SWdub3JlRGVsdGFSZXF1ZXN0
KG1fZnJhbWUpOwogICAgIGlmIChsYXRjaGVkU2Nyb2xsZXIpIHsKICAgICAgICAgaWYgKGxhdGNo
ZWRTY3JvbGxlciA9PSBtX2ZyYW1lLnZpZXcoKSkgewogICAgICAgICAgICAgLy8gRnJhbWVWaWV3
IHNjcm9sbGluZyBpcyBoYW5kbGVkIHZpYSBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZygp
LgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KICAgICAgICAgYXV0byBwbGF0Zm9y
bUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwogICAgICAgICBp
ZiAocGxhdGZvcm1FdmVudCkgeworICAgICAgICAgICAgaWYgKGlnbm9yZURlbHRhLmlnbm9yZVgp
CisgICAgICAgICAgICAgICAgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLnNldFdpZHRoKDApOworICAg
ICAgICAgICAgaWYgKGlnbm9yZURlbHRhLmlnbm9yZVkpCisgICAgICAgICAgICAgICAgZmlsdGVy
ZWRQbGF0Zm9ybURlbHRhLnNldEhlaWdodCgwKTsKICAgICAgICAgICAgIGF1dG8gY29waWVkRXZl
bnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVkUGxh
dGZvcm1EZWx0YS53aWR0aCgpLCBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRl
cmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgaWYgKGxhdGNoZWRTY3JvbGxlci0+aGFuZGxlV2hl
ZWxFdmVudChjb3BpZWRFdmVudCkpCiAgICAgICAgICAgICAgICAgd2hlZWxFdmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDRlMzMzNTcxZTku
LmQyNGU0MzU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTQxOCw2ICs0MTgs
MjggQEAgYm9vbCBGcmFtZVZpZXc6OmRpZEZpcnN0TGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4g
bGF5b3V0Q29udGV4dCgpLmRpZEZpcnN0TGF5b3V0KCk7CiB9CiAKK092ZXJzY3JvbGxCZWhhdmlv
ciBGcmFtZVZpZXc6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAg
IC8vIEZJWE1FOiBDdXJyZW50bHksIHRoZSBpbXBhY3Qgb2Ygb3ZlcnNjcm9sbC1iZWhhdmlvciBp
cyBsaW1pdGVkIHRvIHRoZSBjdXJyZW50IGZyYW1lLgorICAgIC8vIFNob3VsZCBvdmVyc2Nyb2xs
LWJlaGF2aW9yIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgYSBzdWJmcmFtZT8gaHR0cHM6Ly9naXRo
dWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzUxMjkKKyAgICBhdXRvKiBkb2N1bWVudCA9
IGZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICBhdXRvIHNjcm9sbGluZ09iamVjdCA9IGRvY3VtZW50
ICYmIGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKSA/IGRvY3VtZW50LT5kb2N1bWVudEVsZW1l
bnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CisgICAgaWYgKCFzY3JvbGxpbmdPYmplY3QpCisg
ICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
cigpOworICAgIHJldHVybiBzY3JvbGxpbmdPYmplY3QtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2
aW9yWCgpOworfQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgRnJhbWVWaWV3Ojp2ZXJ0aWNhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHRoZSBp
bXBhY3Qgb2Ygb3ZlcnNjcm9sbC1iZWhhdmlvciBpcyBsaW1pdGVkIHRvIHRoZSBjdXJyZW50IGZy
YW1lLgorICAgIC8vIFNob3VsZCBvdmVyc2Nyb2xsLWJlaGF2aW9yIGNoYW5nZSB0aGUgYmVoYXZp
b3Igb2YgYSBzdWJmcmFtZT8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNz
dWVzLzUxMjkKKyAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICBh
dXRvIHNjcm9sbGluZ09iamVjdCA9IGRvY3VtZW50ICYmIGRvY3VtZW50LT5kb2N1bWVudEVsZW1l
bnQoKSA/IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7
CisgICAgaWYgKCFzY3JvbGxpbmdPYmplY3QpCisgICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJl
YTo6dmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICByZXR1cm4gc2Nyb2xsaW5nT2Jq
ZWN0LT5zdHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6
OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwYXJlbnQo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggZDdlOGRiOWFmNC4uNjZlMzRkMWNlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC03NDAsNiArNzQwLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHVub2JzY3VyZWRDb250ZW50U2l6ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIC8vIFNj
cm9sbGFibGVBcmVhIGludGVyZmFjZQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFs
T3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7CisKICAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsK
ICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9p
ZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDJmODRjNWJjMGMuLmI1ODlhNmNiMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTYzOSw2ICs2MzksOSBAQCB2aXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWQ6CiBzeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBpbml0aWFs
OiB0cnVlCiAKK292ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisK
IENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCAzZjI1OGZkODRkLi4z
ZDM4Yjg4MDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRs
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1t
CkBAIC03ODYsNyArNzg2LDcgQEAgc3RhdGljIFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJl
YUZvckJveChSZW5kZXJCb3gmIGJveCkKIH0KIAogLy8gRklYTUU6IFRoaXMgY291bGQgYmUgd3Jp
dHRlbiBpbiB0ZXJtcyBvZiBTY3JvbGxhYmxlQXJlYTo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEo
KS4KLXN0YXRpYyBDb250YWluZXJOb2RlKiBmaW5kRW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5l
cihDb250YWluZXJOb2RlKiBub2RlLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCitzdGF0aWMgQ29udGFpbmVyTm9kZSogZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWlu
ZXIoQ29udGFpbmVyTm9kZSogbm9kZSwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50LCBJZ25vcmVEZWx0YVJlcXVlc3QmIGlnbm9yZURlbHRhKQogewogICAgIGF1dG8gYmlhc2Vk
RGVsdGEgPSBTY3JvbGxDb250cm9sbGVyOjp3aGVlbERlbHRhQmlhc2luZ1Rvd2FyZHNWZXJ0aWNh
bCh3aGVlbEV2ZW50KTsKIApAQCAtODAwLDE5ICs4MDAsMjkgQEAgc3RhdGljIENvbnRhaW5lck5v
ZGUqIGZpbmRFbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIG5vZGUs
IGNvbnMKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIFJlbmRlckJveCog
Ym94ID0gY2FuZGlkYXRlLT5yZW5kZXJCb3goKTsKLSAgICAgICAgaWYgKCFib3ggfHwgIWJveC0+
Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpCi0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgCi0gICAgICAgIGF1dG8qIHNjcm9sbGFibGVBcmVhID0gc2Nyb2xsYWJsZUFy
ZWFGb3JCb3goKmJveCk7Ci0gICAgICAgIGlmICghc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlm
ICghYm94KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKHdoZWVsRXZlbnQu
cGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU1heUJlZ2luIHx8IHdoZWVsRXZlbnQu
cGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNhbmNlbGxlZCkKLSAgICAgICAgICAg
IHJldHVybiBjYW5kaWRhdGU7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVBcmVhID0gc2Nyb2xs
YWJsZUFyZWFGb3JCb3goKmJveCk7CisgICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBib3gt
PmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSB7CisgICAgICAgICAgICBpZiAo
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTWF5QmVnaW4gfHwg
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2FuY2VsbGVkKQor
ICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CiAKLSAgICAgICAgaWYgKChiaWFzZWRE
ZWx0YS5oZWlnaHQoKSA+IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvVG9wKCkpIHx8
IChiaWFzZWREZWx0YS5oZWlnaHQoKSA8IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRv
Qm90dG9tKCkpCi0gICAgICAgICAgICB8fCAoYmlhc2VkRGVsdGEud2lkdGgoKSA+IDAgJiYgIXNj
cm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvTGVmdCgpKSB8fCAoYmlhc2VkRGVsdGEud2lkdGgoKSA8
IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvUmlnaHQoKSkpCi0gICAgICAgICAgICBy
ZXR1cm4gY2FuZGlkYXRlOworICAgICAgICAgICAgaWYgKChiaWFzZWREZWx0YS5oZWlnaHQoKSA+
IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvVG9wKCkpIHx8IChiaWFzZWREZWx0YS5o
ZWlnaHQoKSA8IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvQm90dG9tKCkpCisgICAg
ICAgICAgICAgICAgfHwgKGJpYXNlZERlbHRhLndpZHRoKCkgPiAwICYmICFzY3JvbGxhYmxlQXJl
YS0+c2Nyb2xsZWRUb0xlZnQoKSkgfHwgKGJpYXNlZERlbHRhLndpZHRoKCkgPCAwICYmICFzY3Jv
bGxhYmxlQXJlYS0+c2Nyb2xsZWRUb1JpZ2h0KCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBj
YW5kaWRhdGU7CisgICAgICAgIH0KKyAgICAgICAgLy8gTGV0IEZyYW1lVmlldzo6aG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvciBkZWNpZGUgd2hpY2ggbm9kZSdzIG92ZXJzY3JvbGwtYmFodmlv
ciBpcyBlZmZlY3RpdmUgdG8gRnJhbWVWaWV3LgorICAgICAgICBpZiAoY2FuZGlkYXRlID09IGNh
bmRpZGF0ZS0+ZG9jdW1lbnQoKS5ib2R5KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgaWYgKGNhbmRpZGF0ZSAhPSBub2RlICYmIGJveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZp
b3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVs
dGEuaWdub3JlWCA9IHRydWU7CisgICAgICAgIGlmIChjYW5kaWRhdGUgIT0gbm9kZSAmJiBib3gt
PnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0
bykKKyAgICAgICAgICAgIGlnbm9yZURlbHRhLmlnbm9yZVkgPSB0cnVlOworICAgICAgICBpZiAo
KGlnbm9yZURlbHRhLmlnbm9yZVggJiYgaWdub3JlRGVsdGEuaWdub3JlWSkKKyAgICAgICAgICAg
IHx8IChpZ25vcmVEZWx0YS5pZ25vcmVYICYmICFiaWFzZWREZWx0YS5oZWlnaHQoKSkKKyAgICAg
ICAgICAgIHx8IChpZ25vcmVEZWx0YS5pZ25vcmVZICYmICFiaWFzZWREZWx0YS53aWR0aCgpKSkK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTg1OSwxOCArODY5LDE3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVX
aGVlbEV2ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAg
aWYgKCF2aWV3KQogICAgICAgICByZXR1cm47CiAKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdu
b3JlRGVsdGE7CiAgICAgaWYgKGV2ZW50VGFyZ2V0SXNQbGF0Zm9ybVdpZGdldCh3aGVlbEV2ZW50
VGFyZ2V0LmdldCgpKSkKICAgICAgICAgc2Nyb2xsYWJsZUFyZWEgPSBzY3JvbGxhYmxlQXJlYUZv
ckV2ZW50VGFyZ2V0KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpOwogICAgIGVsc2UgewotICAgICAg
ICBhdXRvKiBzY3JvbGxhYmxlQ29udGFpbmVyID0gZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250
YWluZXIod2hlZWxFdmVudFRhcmdldC5nZXQoKSwgd2hlZWxFdmVudCk7CisgICAgICAgIGF1dG8q
IHNjcm9sbGFibGVDb250YWluZXIgPSBmaW5kRW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lcih3
aGVlbEV2ZW50VGFyZ2V0LmdldCgpLCB3aGVlbEV2ZW50LCBpZ25vcmVEZWx0YSk7CiAgICAgICAg
IGlmIChzY3JvbGxhYmxlQ29udGFpbmVyKQogICAgICAgICAgICAgc2Nyb2xsYWJsZUFyZWEgPSBz
Y3JvbGxhYmxlQXJlYUZvckNvbnRhaW5lck5vZGUoKnNjcm9sbGFibGVDb250YWluZXIpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IG1ha2VXZWFrUHRyKHN0YXRp
Y19jYXN0PFNjcm9sbGFibGVBcmVhJj4oKnZpZXcpKTsKICAgICB9CiAKLSAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVX
aGVlbEV2ZW50VGFyZ2V0KCkgLSBldmVudCIgPDwgd2hlZWxFdmVudCA8PCAiIGZvdW5kIHNjcm9s
bGFibGVBcmVhICIgPDwgVmFsdWVPck51bGwoc2Nyb2xsYWJsZUFyZWEuZ2V0KCkpIDw8ICIsIGxh
dGNoaW5nIHN0YXRlIGlzICIgPDwgcGFnZS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkpOwot
CiAgICAgaWYgKHNjcm9sbGFibGVBcmVhICYmIHBhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRz
KCkpCiAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZl
bnRUZXN0TW9uaXRvcihwYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7CiAKQEAgLTg4MCw3
ICs4ODksNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbgogICAgIGlmIChtX2ZyYW1lLmlzTWFp
bkZyYW1lKCkgJiYgd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpKQogICAgICAgICBwYWdlLT53
aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+YmVnaW5GaWx0ZXJpbmdEZWx0YXMoKTsKIAotICAgIHBh
Z2UtPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigpLnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0
ZUZvckZyYW1lKG1fZnJhbWUsIHdoZWVsRXZlbnQsIHdoZWVsRXZlbnRUYXJnZXQsIHNjcm9sbGFi
bGVBcmVhLCBpc092ZXJXaWRnZXQpOworICAgIHBhZ2UtPnNjcm9sbExhdGNoaW5nQ29udHJvbGxl
cigpLnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZyYW1lKG1fZnJhbWUsIHdoZWVsRXZl
bnQsIHdoZWVsRXZlbnRUYXJnZXQsIHNjcm9sbGFibGVBcmVhLCBpZ25vcmVEZWx0YSwgaXNPdmVy
V2lkZ2V0KTsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OnJlY29yZFdoZWVsRXZlbnRGb3JEZWx0
YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCmluZGV4IDYwZmI2Zjc5OTkuLjJlMDkwOGMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCkBAIC03MTYsNiArNzE2LDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeShTY3JvbGxpbmcKICAgICBz
Y3JvbGxpbmdOb2RlLnNldFNjcm9sbGFibGVBcmVhU2l6ZShzY3JvbGxhYmxlQXJlYS52aXNpYmxl
U2l6ZSgpKTsKIAogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBzY3JvbGxQYXJhbWV0ZXJz
OworICAgIHNjcm9sbFBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9IHNj
cm9sbGFibGVBcmVhLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKKyAgICBzY3JvbGxQ
YXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEudmVy
dGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLmhvcml6b250
YWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbEVsYXN0
aWNpdHkoKTsKICAgICBzY3JvbGxQYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9
IHNjcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBh
cmFtZXRlcnMuaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Nyb2xs
YmFyICYmIGhvcml6b250YWxTY3JvbGxiYXItPmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuY3Bw
CmluZGV4IDY0YTZlM2VkMGIuLmM2NTg4MjdkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAt
MTA4LDcgKzEwOCw3IEBAIGJvb2wgU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGluZ0Fs
bG93c1Njcm9sbGluZ0luRnJhbWUoY29uc3QgRnJhbWUmIGZyYW1lCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRj
aGluZ1N0YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIFJlZlB0cjxFbGVtZW50PiYgbGF0Y2hlZEVsZW1lbnQsIFdlYWtQdHI8U2Ny
b2xsYWJsZUFyZWE+JiBzY3JvbGxhYmxlQXJlYSwgYm9vbCYgaXNPdmVyV2lkZ2V0KQordm9pZCBT
Y3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZy
YW1lKEZyYW1lJiBmcmFtZSwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBS
ZWZQdHI8RWxlbWVudD4mIGxhdGNoZWRFbGVtZW50LCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYg
c2Nyb2xsYWJsZUFyZWEsIElnbm9yZURlbHRhUmVxdWVzdCYgaWdub3JlRGVsdGEsIGJvb2wmIGlz
T3ZlcldpZGdldCkKIHsKICAgICBpZiAod2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpKSB7CiAg
ICAgICAgIC8vIFdlIGNhbiBoYXZlIGV4aXN0aW5nIHN0YXRlIGhlcmUgYmVjYXVzZSBzdGF0ZSBp
cyBjbGVhcmVkIG9uIGEgdGltZXIuCkBAIC0xMTgsNiArMTE4LDcgQEAgdm9pZCBTY3JvbGxMYXRj
aGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZyYW1lKEZyYW1l
JiBmcmFtZSwKICAgICAgICAgICAgIHN0YXRlLndoZWVsRXZlbnRFbGVtZW50ID0gbWFrZVdlYWtQ
dHIobGF0Y2hlZEVsZW1lbnQuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKHNob3VsZExhdGNoVG9T
Y3JvbGxhYmxlQXJlYShmcmFtZSwgc2Nyb2xsYWJsZUFyZWEuZ2V0KCksIG1fY3VtdWxhdGl2ZUV2
ZW50RGVsdGEpKQogICAgICAgICAgICAgICAgIHN0YXRlLnNjcm9sbGFibGVBcmVhID0gc2Nyb2xs
YWJsZUFyZWE7CisgICAgICAgICAgICBzdGF0ZS5pZ25vcmVEZWx0YSA9IGlnbm9yZURlbHRhOwog
ICAgICAgICAgICAgc3RhdGUuaXNPdmVyV2lkZ2V0ID0gaXNPdmVyV2lkZ2V0OwogCiAgICAgICAg
ICAgICBtX2ZyYW1lU3RhdGVTdGFjay5hcHBlbmQoV1RGTW92ZShzdGF0ZSkpOwpAQCAtMTMxLDgg
KzEzMiwxMCBAQCB2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hM
YXRjaGluZ1N0YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLAogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIC8vIFdlIG1heSBub3QgaGF2ZSBsYXRjaGVkIGF0IGdlc3R1cmUgc3RhcnQgYmVj
YXVzZSBvZiBzbWFsbCBkZWx0YXMuIFJlLWV2YWx1YXRlIGxhdGNoaW5nIGJhc2VkIG9uIGFjY3Vt
dWxhdGVkIGRlbHRhLgotICAgICAgICBpZiAoIXN0YXRlLT5zY3JvbGxhYmxlQXJlYSAmJiBzaG91
bGRMYXRjaFRvU2Nyb2xsYWJsZUFyZWEoZnJhbWUsIHNjcm9sbGFibGVBcmVhLmdldCgpLCBtX2N1
bXVsYXRpdmVFdmVudERlbHRhKSkKKyAgICAgICAgaWYgKCFzdGF0ZS0+c2Nyb2xsYWJsZUFyZWEg
JiYgc2hvdWxkTGF0Y2hUb1Njcm9sbGFibGVBcmVhKGZyYW1lLCBzY3JvbGxhYmxlQXJlYS5nZXQo
KSwgbV9jdW11bGF0aXZlRXZlbnREZWx0YSkpIHsKICAgICAgICAgICAgIHN0YXRlLT5zY3JvbGxh
YmxlQXJlYSA9IHNjcm9sbGFibGVBcmVhOworICAgICAgICAgICAgc3RhdGUtPmlnbm9yZURlbHRh
ID0gaWdub3JlRGVsdGE7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIXdoZWVsRXZlbnQu
dXNlTGF0Y2hlZEV2ZW50RWxlbWVudCgpKQpAQCAtMTQzLDEwICsxNDYsMzIgQEAgdm9pZCBTY3Jv
bGxMYXRjaGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZyYW1l
KEZyYW1lJiBmcmFtZSwKICAgICAgICAgICAgIGxhdGNoZWRFbGVtZW50ID0gc3RhdGUud2hlZWxF
dmVudEVsZW1lbnQuZ2V0KCk7CiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IHN0YXRlLnNj
cm9sbGFibGVBcmVhOwogICAgICAgICAgICAgaXNPdmVyV2lkZ2V0ID0gc3RhdGUuaXNPdmVyV2lk
Z2V0OworICAgICAgICAgICAgaWdub3JlRGVsdGEgPSBzdGF0ZS5pZ25vcmVEZWx0YTsKICAgICAg
ICAgfQogICAgIH0KIH0KIAorSWdub3JlRGVsdGFSZXF1ZXN0IFNjcm9sbExhdGNoaW5nQ29udHJv
bGxlcjo6Z2V0SWdub3JlRGVsdGFSZXF1ZXN0KGNvbnN0IEZyYW1lJiBmcmFtZSkgY29uc3QKK3sK
KyAgICBpZiAoIW1fZnJhbWVTdGF0ZVN0YWNrLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvKiBm
cmFtZVN0YXRlID0gc3RhdGVGb3JGcmFtZShmcmFtZSk7CisgICAgICAgIGlmIChmcmFtZVN0YXRl
KQorICAgICAgICAgICAgcmV0dXJuIGZyYW1lU3RhdGUtPmlnbm9yZURlbHRhOworICAgIH0KKwor
ICAgIHJldHVybiB7IGZhbHNlLCBmYWxzZSB9OworfQorCit2b2lkIFNjcm9sbExhdGNoaW5nQ29u
dHJvbGxlcjo6dXBkYXRlSWdub3JlRGVsdGFSZXF1ZXN0KGNvbnN0IEZyYW1lJiBmcmFtZSwgY29u
c3QgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVEZWx0YUZyb21TdWJGcmFtZSkKK3sKKyAgICBp
ZiAobV9mcmFtZVN0YXRlU3RhY2suaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KGF1dG8qIGZyYW1lU3RhdGUgPSBzdGF0ZUZvckZyYW1lKGZyYW1lKSkgeworICAgICAgICBmcmFt
ZVN0YXRlLT5pZ25vcmVEZWx0YS5pZ25vcmVYIHw9IGlnbm9yZURlbHRhRnJvbVN1YkZyYW1lLmln
bm9yZVg7CisgICAgICAgIGZyYW1lU3RhdGUtPmlnbm9yZURlbHRhLmlnbm9yZVkgfD0gaWdub3Jl
RGVsdGFGcm9tU3ViRnJhbWUuaWdub3JlWTsKKyAgICB9Cit9CisKIHZvaWQgU2Nyb2xsTGF0Y2hp
bmdDb250cm9sbGVyOjpyZW1vdmVMYXRjaGluZ1N0YXRlRm9yVGFyZ2V0KGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZnJhbWVTdGF0ZVN0YWNrLmlzRW1wdHkoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250
cm9sbGVyLmgKaW5kZXggNTY0OTYxNTljNS4uNmZhNWFhZTY2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmgK
QEAgLTYxLDcgKzYxLDEwIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgbm8gZnJh
bWUgaXMgbGF0Y2hlZCwgb3IgbGF0Y2hpbmcgaXMgaW4gdGhlIGdpdmVuIGZyYW1lIChpbiB3aGlj
aCBjYXNlIGxhdGNoZWRTY3JvbGxlciB3aWxsIGJlIG5vbi1udWxsKS4KICAgICBib29sIGxhdGNo
aW5nQWxsb3dzU2Nyb2xsaW5nSW5GcmFtZShjb25zdCBGcmFtZSYsIFdlYWtQdHI8U2Nyb2xsYWJs
ZUFyZWE+JiBsYXRjaGVkU2Nyb2xsZXIpIGNvbnN0OwogCi0gICAgdm9pZCB1cGRhdGVBbmRGZXRj
aExhdGNoaW5nU3RhdGVGb3JGcmFtZShGcmFtZSYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYs
IFJlZlB0cjxFbGVtZW50PiYgbGF0Y2hlZEVsZW1lbnQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+
JiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKKyAgICB2b2lkIHVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdT
dGF0ZUZvckZyYW1lKEZyYW1lJiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPEVs
ZW1lbnQ+JiBsYXRjaGVkRWxlbWVudCwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBJZ25vcmVE
ZWx0YVJlcXVlc3QmLCBib29sJiBpc092ZXJXaWRnZXQpOworCisgICAgSWdub3JlRGVsdGFSZXF1
ZXN0IGdldElnbm9yZURlbHRhUmVxdWVzdChjb25zdCBGcmFtZSYpIGNvbnN0OworICAgIHZvaWQg
dXBkYXRlSWdub3JlRGVsdGFSZXF1ZXN0KGNvbnN0IEZyYW1lJiwgY29uc3QgSWdub3JlRGVsdGFS
ZXF1ZXN0JiBpZ25vcmVEZWx0YUZyb21TdWJGcmFtZSk7CiAKICAgICB2b2lkIHJlbW92ZUxhdGNo
aW5nU3RhdGVGb3JUYXJnZXQoY29uc3QgRWxlbWVudCYpOwogICAgIHZvaWQgcmVtb3ZlTGF0Y2hp
bmdTdGF0ZUZvckZyYW1lKGNvbnN0IEZyYW1lJik7CkBAIC03Myw2ICs3Niw3IEBAIHByaXZhdGU6
CiAgICAgICAgIFdlYWtQdHI8RWxlbWVudD4gd2hlZWxFdmVudEVsZW1lbnQ7CiAgICAgICAgIFdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+IHNjcm9sbGFibGVBcmVhOwogICAgICAgICBGcmFtZSogZnJh
bWUgeyBudWxscHRyIH07CisgICAgICAgIElnbm9yZURlbHRhUmVxdWVzdCBpZ25vcmVEZWx0YTsK
ICAgICAgICAgYm9vbCBpc092ZXJXaWRnZXQgeyBmYWxzZSB9OwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlw
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
VHlwZXMuaAppbmRleCBiZDQ3ODRiOTM4Li42OWQwZjYyNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5o
CkBAIC02OCw2ICs2OCw5IEBAIGVudW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
biB7CiB9OwogCiBzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhh
dmlvcjo6IEF1dG8gfTsKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xs
QmVoYXZpb3IgeyBPdmVyc2Nyb2xsQmVoYXZpb3I6OiBBdXRvIH07CisKICAgICBTY3JvbGxFbGFz
dGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUg
fTsKICAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9s
bEVsYXN0aWNpdHlOb25lIH07CiAKQEAgLTg0LDcgKzg3LDkgQEAgc3RydWN0IFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycyB7CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzJiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBob3Jpem9u
dGFsU2Nyb2xsRWxhc3RpY2l0eSA9PSBvdGhlci5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eQor
ICAgICAgICByZXR1cm4gaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvciA9PSBvdGhlci5ob3Jp
em9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yCisgICAgICAgICAgICAmJiB2ZXJ0aWNhbE92ZXJzY3Jv
bGxCZWhhdmlvciA9PSBvdGhlci52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcgorICAgICAgICAg
ICAgJiYgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9s
bEVsYXN0aWNpdHkKICAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9PSBv
dGhlci52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkKICAgICAgICAgICAgICYmIGhvcml6b250YWxT
Y3JvbGxiYXJNb2RlID09IG90aGVyLmhvcml6b250YWxTY3JvbGxiYXJNb2RlCiAgICAgICAgICAg
ICAmJiB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIudmVydGljYWxTY3JvbGxiYXJNb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IDkxNjNhMzQzNzMuLjRlOWE3YTgzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xNDQsMTEgKzE0NCwxMyBAQCBXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbgogCiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJl
ZTo6aGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgU2Nyb2xsaW5nVHJlZU5vZGUqIG5vZGUpCiB7CisgICAgUGxhdGZvcm1XaGVlbEV2
ZW50IGFkanVzdGVkV2hlZWxFdmVudCA9IFBsYXRmb3JtV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsK
KyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdub3JlUmVxdWVzdDsKKyAgICBib29sIGJpYXNUb1Zl
cnRpY2FsID0gYWJzKHdoZWVsRXZlbnQuZGVsdGFYKCkpIDw9IGFicyh3aGVlbEV2ZW50LmRlbHRh
WSgpKTsKICAgICB3aGlsZSAobm9kZSkgewogICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU+KCpub2RlKSkgewogICAgICAgICAgICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9
IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSk7Ci0gICAgICAgICAg
ICBhdXRvIHJlc3VsdCA9IHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50
KTsKLQorICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdOb2RlLmhhbmRsZVdoZWVs
RXZlbnQoYWRqdXN0ZWRXaGVlbEV2ZW50KTsKICAgICAgICAgICAgIGlmIChyZXN1bHQud2FzSGFu
ZGxlZCkgewogICAgICAgICAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLm5vZGVEaWRIYW5k
bGVFdmVudChzY3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50LCBtX2Fs
bG93TGF0Y2hpbmcpOwogICAgICAgICAgICAgICAgIG1fZ2VzdHVyZVN0YXRlLm5vZGVEaWRIYW5k
bGVFdmVudChzY3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50KTsKQEAg
LTE1Nyw2ICsxNTksMzAgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6
OmhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZShjb25zdCBQbGF0Zm9ybVcKIAogICAgICAgICAgICAg
aWYgKHJlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKworICAgICAgICAgICAgaWYgKHNjcm9sbGluZ05vZGUuaG9yaXpvbnRh
bE92ZXJzY3JvbGxCZWhhdmlvcigpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykgeworICAg
ICAgICAgICAgICAgIGlnbm9yZVJlcXVlc3QuaWdub3JlWCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgaWYgKGFkanVzdGVkV2hlZWxFdmVudC5kZWx0YVgoKSkKKyAgICAgICAgICAgICAgICAgICAg
YWRqdXN0ZWRXaGVlbEV2ZW50ID0gYWRqdXN0ZWRXaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5k
VmVsb2NpdHkoMCwgYWRqdXN0ZWRXaGVlbEV2ZW50LmRlbHRhWSgpLCBhZGp1c3RlZFdoZWVsRXZl
bnQuc2Nyb2xsaW5nVmVsb2NpdHkoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
c2Nyb2xsaW5nTm9kZS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICE9IE92ZXJzY3JvbGxC
ZWhhdmlvcjo6QXV0bykgeworICAgICAgICAgICAgICAgIGlnbm9yZVJlcXVlc3QuaWdub3JlWSA9
IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKGFkanVzdGVkV2hlZWxFdmVudC5kZWx0YVkoKSkK
KyAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRXaGVlbEV2ZW50ID0gYWRqdXN0ZWRXaGVlbEV2
ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoYWRqdXN0ZWRXaGVlbEV2ZW50LmRlbHRhWCgp
LCAwLCBhZGp1c3RlZFdoZWVsRXZlbnQuc2Nyb2xsaW5nVmVsb2NpdHkoKSk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmIChpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggfHwgaWdub3JlUmVx
dWVzdC5pZ25vcmVZKSB7CisgICAgICAgICAgICAgICAgaWYgKGlnbm9yZVJlcXVlc3QuaWdub3Jl
WCAmJiAhYmlhc1RvVmVydGljYWwgJiYgd2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSh3
aGVlbEV2ZW50KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdDo6dW5oYW5kbGVkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoKGlnbm9yZVJlcXVl
c3QuaWdub3JlWCAmJiBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkpCisgICAgICAgICAgICAgICAgICAg
IHx8IChpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggJiYgIWJpYXNUb1ZlcnRpY2FsKQorICAgICAgICAg
ICAgICAgICAgICB8fCAoaWdub3JlUmVxdWVzdC5pZ25vcmVZICYmIGJpYXNUb1ZlcnRpY2FsKSkg
eworICAgICAgICAgICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxl
RXZlbnQoc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgd2hlZWxFdmVudCwgbV9hbGxv
d0xhdGNoaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgbV9nZXN0dXJlU3RhdGUubm9kZURpZEhh
bmRsZUV2ZW50KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVsRXZlbnQpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpoYW5k
bGVkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZT4oKm5vZGUp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggMjMwMWM5NjU4Ny4uNzU1NTBlYjEwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTM0LDYgKzEzNCwxNiBAQCBib29sIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjppc0xhdGNoZWROb2RlKCkgY29uc3QKICAgICByZXR1cm4g
c2Nyb2xsaW5nVHJlZSgpLmxhdGNoZWROb2RlSUQoKSA9PSBzY3JvbGxpbmdOb2RlSUQoKTsKIH0K
IAorT3ZlcnNjcm9sbEJlaGF2aW9yIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpob3Jpem9u
dGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcjsKK30KKworT3ZlcnNj
cm9sbEJlaGF2aW9yIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjp2ZXJ0aWNhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yOworfQorCiBib29sIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuaAppbmRleCA0OGY3Y2MwNzI3Li43NzViM2NhMGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmgKQEAgLTE0Niw2ICsxNDYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgRmxv
YXRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoKSBjb25zdCB7IHJldHVybiBt
X3RvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZDsgfQogICAgIHZvaWQgc2V0VG90YWxDb250
ZW50c1NpemVGb3JSdWJiZXJCYW5kKGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxDb250ZW50c1NpemVG
b3JSdWJiZXJCYW5kKSB7IG1fdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kID0gdG90YWxD
b250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9y
aXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0OworICAgIE92ZXJzY3JvbGxCZWhhdmlv
ciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0OwogICAgIFNjcm9sbEVsYXN0aWNp
dHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFi
bGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNjcm9s
bEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxFbGFzdGljaXR5OyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IGVhZTA5
M2IxZWYuLjRmOTYzMTcyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMuaApAQCAtOTIsNiArOTIsOSBAQCBwcml2YXRlOgogICAgIEZsb2F0U2l6ZSB2
aWV3cG9ydFNpemUoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRT
dG9wSG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkU3Rv
cFZlcnRpY2FsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICB2b2lkIHJlbGVhc2VSZWZl
cmVuY2VzVG9TY3JvbGxlckltcHNPblRoZU1haW5UaHJlYWQoKTsKIAogICAgIFNjcm9sbENvbnRy
b2xsZXIgbV9zY3JvbGxDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCBhOGNlNjlhY2ZiLi5kODE5NjY0Yjk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQpAQCAtMTkxLDYg
KzE5MSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNyCiAKIGJvb2wgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAogeworICAgIGlmIChzaG91bGRT
dG9wSG9yaXpvbnRhbFN0cmVjaCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBzd2l0
Y2ggKGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0
aWNpdHlBdXRvbWF0aWM6IHsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5n
ID0gaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIoKSB8fCAhaGFzRW5hYmxlZFZlcnRpY2Fs
U2Nyb2xsYmFyKCk7CkBAIC0yMTMsNiArMjE2LDkgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGEK
IAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NWZXJ0
aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25z
dAogeworICAgIGlmIChzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCiAgICAgc3dpdGNoICh2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSkgewogICAg
IGNhc2UgU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpYzogewogICAgICAgICBib29sIHNjcm9sbGJh
cnNBbGxvd1N0cmV0Y2hpbmcgPSBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIoKSB8fCAhaGFz
RW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIoKTsKQEAgLTM3NCw2ICszODAsMTYgQEAgRmxvYXRT
aXplIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnZpZXdwb3J0U2l6ZSgp
IGNvbnN0CiB9CiAjZW5kaWYKIAorYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjpzaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHNjcm9sbGluZ05vZGUoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNj
cm9sbEJlaGF2aW9yOjpOb25lOworfQorCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWM6OnNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHNjcm9sbGluZ05vZGUoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09IE92ZXJz
Y3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlTWFjOjpkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbikgY29uc3QKIHsKICAgICBp
ZiAoIXNjcm9sbGluZ1RyZWUoKS5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggNTNmMDczYzY2Ni4uMGNjYzUzZjRiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC00Niw2ICs0NiwxMiBAQCBlbnVt
IGNsYXNzIFNjcm9sbFR5cGUgOiBib29sIHsKICAgICBQcm9ncmFtbWF0aWMKIH07CiAKK2VudW0g
Y2xhc3MgT3ZlcnNjcm9sbEJlaGF2aW9yIDogdWludDhfdCB7CisgICAgQXV0byA9IDAsCisgICAg
Q29udGFpbiwKKyAgICBOb25lCit9OworCiBlbnVtIFNjcm9sbERpcmVjdGlvbiA6IHVpbnQ4X3Qg
ewogICAgIFNjcm9sbFVwLAogICAgIFNjcm9sbERvd24sCkBAIC0yNDMsNiArMjQ5LDExIEBAIGVu
dW0gY2xhc3MgU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvciA6IHVpbnQ4X3QgewogICAgIFN0YXRp
b25hcnkKIH07CiAKK3N0cnVjdCBJZ25vcmVEZWx0YVJlcXVlc3QgeworICAgIGJvb2wgaWdub3Jl
WCB7IGZhbHNlIH07CisgICAgYm9vbCBpZ25vcmVZIHsgZmFsc2UgfTsKK307CisKIHVzaW5nIFNj
cm9sbGJhckNvbnRyb2xTdGF0ZSA9IHVuc2lnbmVkOwogdXNpbmcgU2Nyb2xsYmFyQ29udHJvbFBh
cnRNYXNrID0gdW5zaWduZWQ7CiB1c2luZyBTY3JvbGxpbmdOb2RlSUQgPSB1aW50NjRfdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDRjYTg2YmFhNzAuLmJh
MjlmYTc4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAt
MTIwLDYgKzEyMCw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0Nv
bnRlbnRFZGdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50
RWRnZTsgfQogICAgIHZvaWQgc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoYm9v
bCBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSkgeyBtX2NvbnN0cmFpbnNTY3JvbGxp
bmdUb0NvbnRlbnRFZGdlID0gY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2U7IH0KIAor
ICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZp
b3IoKSBjb25zdCB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKyAgICB2aXJ0
dWFsIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0
IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAgdm9pZCBzZXRWZXJ0
aWNhbFNjcm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eSBzY3JvbGxFbGFzdGljaXR5KSB7
IG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5ID0gc2Nyb2xsRWxhc3RpY2l0eTsgfQogICAgIFNj
cm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8U2Nyb2xsRWxhc3RpY2l0eT4obV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xs
ZXIuaAppbmRleCAwMGIzMjYzMTY4Li5lMDA1MDkyNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCkBAIC0xMTMsNiArMTEzLDExIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFNpemUgc2Nyb2xsRXh0ZW50KCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgRmxvYXRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0ID0gMDsKICNlbmRp
ZgorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wSG9yaXpv
bnRhbFN0cmVjaCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNo
b3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYK
IH07CiAKIGVudW0gY2xhc3MgV2hlZWxFdmVudFN0YXR1cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCAwMDZmZTFjZmM3Li5l
ZTE4NTYxYzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9s
bENvbnRyb2xsZXIubW0KQEAgLTI1Miw3ICsyNTIsOCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3Zl
cmZsb3dTY3JvbGxEZWx0YS5zZXRXaWR0aChtX292ZXJmbG93U2Nyb2xsRGVsdGEud2lkdGgoKSAr
IGRlbHRhWCk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHNob3VsZFN0cmV0
Y2ggPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICgoIWRlbHRhWCB8fCAhbV9jbGllbnQuc2hv
dWxkU3RvcEhvcml6b250YWxTdHJlY2goKSkgJiYgKCFkZWx0YVkgfHwgIW1fY2xpZW50LnNob3Vs
ZFN0b3BWZXJ0aWNhbFN0cmVjaCgpKSkKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkU3RyZXRj
aCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCmluZGV4IDYyYjJiZDI5OTku
LjY1NzY3ZmE2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5oCkBAIC0xNTcsNiArMTU3LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWxy
ZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYs
IFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAjZW5kaWYKIAorICAgIGJvb2wgc2hvdWxkU3RvcEhv
cml6b250YWxTdHJlY2goKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFN0b3BWZXJ0
aWNhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgYm9vbCBtX2hhdmVTY3JvbGxlZFNp
bmNlUGFnZUxvYWQ7CiAgICAgYm9vbCBtX25lZWRzU2Nyb2xsZXJTdHlsZVVwZGF0ZTsKICAgICBJ
bnRSZWN0IG1fdmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDA5ZDgwNThiNWIuLmFiMzMy
YWEyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMubW0KQEAgLTE1NjYsNiArMTU2NiwxNiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpz
ZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYgc2Nyb2xsZXJUaHVtYgog
ICAgIG1fdmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0ID0gcmVjdEluVmlld0Nvb3JkaW5hdGVzOwog
fQogCitib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3Jv
bGxCZWhhdmlvcigpID09IE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKworYm9vbCBTY3Jv
bGxBbmltYXRvck1hYzo6c2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpID09IE92
ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBmZDAyYjUxYTEyLi5lZmQyNmZhN2FiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM0NDMsNiArMzQ0MywxNiBAQCB2
b2lkIFJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0
JiByZWN0KQogICAgICAgICBtX3Jlc2l6ZXItPnJlcGFpbnRSZWN0YW5nbGUocmVjdCk7CiB9CiAK
K092ZXJzY3JvbGxCZWhhdmlvciBSZW5kZXJMYXllcjo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbmRlcmVyKCkuc3R5bGUoKS5vdmVyc2Nyb2xs
QmVoYXZpb3JYKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBSZW5kZXJMYXllcjo6dmVydGlj
YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSAgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5z
dHlsZSgpLm92ZXJzY3JvbGxCZWhhdmlvclkoKTsKK30KKwogc3RhdGljIGJvb2wgc2Nyb2xsYmFy
SGlkZGVuQnlTdHlsZShTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKICAgICByZXR1cm4gc2Nyb2xs
YmFyICYmIHNjcm9sbGJhci0+aXNIaWRkZW5CeVN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCmluZGV4IGQ4MzczYWFlODEuLjgxMzIzZDI5MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00ODMsNiArNDgzLDkgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIGhvcml6b250
YWxTY3JvbGxiYXIoKTsgfQogICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7
IHJldHVybiB2ZXJ0aWNhbFNjcm9sbGJhcigpOyB9CiAKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Ig
aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOworICAgIE92ZXJzY3Jv
bGxCZWhhdmlvciB2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNvbnN0IGZpbmFsOworCiAg
ICAgYm9vbCBob3Jpem9udGFsU2Nyb2xsYmFySGlkZGVuQnlTdHlsZSgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgdmVydGljYWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3QgZmluYWw7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNjdl
MjM2OWM3MC4uMTlmZWM4MjYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNv
bnN0YW50cy5oIgogI2luY2x1ZGUgIlJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEu
aCIKICNpbmNsdWRlICJTaGFwZVZhbHVlLmgiCiAjaW5jbHVkZSAiU3R5bGVCYWNrZ3JvdW5kRGF0
YS5oIgpAQCAtMzI3LDYgKzMyOCw5IEBAIHB1YmxpYzoKICAgICBPdmVyZmxvdyBvdmVyZmxvd0lu
bGluZURpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBvdmVyZmxvd1goKSA6IG92ZXJmbG93WSgpOyB9CiAgICAgT3ZlcmZsb3cgb3ZlcmZsb3dCbG9j
a0RpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBv
dmVyZmxvd1koKSA6IG92ZXJmbG93WCgpOyB9CiAgICAgYm9vbCBpc092ZXJmbG93VmlzaWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG92ZXJmbG93WCgpID09IE92ZXJmbG93OjpWaXNpYmxlIHx8IG92ZXJm
bG93WSgpID09IE92ZXJmbG93OjpWaXNpYmxlOyB9CisKKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Ig
b3ZlcnNjcm9sbEJlaGF2aW9yWCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3Jv
bGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWCk7
IH0KKyAgICBPdmVyc2Nyb2xsQmVoYXZpb3Igb3ZlcnNjcm9sbEJlaGF2aW9yWSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PE92ZXJzY3JvbGxCZWhhdmlvcj4obV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+b3ZlcnNjcm9sbEJlaGF2aW9yWSk7IH0KICAgICAKICAgICBWaXNpYmlsaXR5IHZpc2li
aWxpdHkoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaXNpYmlsaXR5PihtX2luaGVyaXRl
ZEZsYWdzLnZpc2liaWxpdHkpOyB9CiAgICAgVmVydGljYWxBbGlnbiB2ZXJ0aWNhbEFsaWduKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmVydGljYWxBbGlnbj4obV9ub25Jbmhlcml0ZWRG
bGFncy52ZXJ0aWNhbEFsaWduKTsgfQpAQCAtODkxLDYgKzg5NSw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2V0T3ZlcmZsb3dYKE92ZXJmbG93IHYpIHsgbV9ub25Jbmhlcml0ZWRGbGFncy5vdmVy
Zmxvd1ggPSAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CiAgICAgdm9pZCBzZXRPdmVyZmxv
d1koT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLm92ZXJmbG93WSA9IHN0YXRpY19j
YXN0PHVuc2lnbmVkPih2KTsgfQorICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWChPdmVy
c2Nyb2xsQmVoYXZpb3IgdikgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJz
Y3JvbGxCZWhhdmlvclgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KKyAgICB2b2lkIHNl
dE92ZXJzY3JvbGxCZWhhdmlvclkoT3ZlcnNjcm9sbEJlaGF2aW9yIHYpIHsgU0VUX1ZBUihtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLCBvdmVyc2Nyb2xsQmVoYXZpb3JZLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odikpOyB9CiAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZpc2liaWxpdHkgdikgeyBtX2lu
aGVyaXRlZEZsYWdzLnZpc2liaWxpdHkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAg
ICB2b2lkIHNldFZlcnRpY2FsQWxpZ24oVmVydGljYWxBbGlnbiB2KSB7IG1fbm9uSW5oZXJpdGVk
RmxhZ3MudmVydGljYWxBbGlnbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsgfQogICAgIHZv
aWQgc2V0VmVydGljYWxBbGlnbkxlbmd0aChMZW5ndGgmJiBsZW5ndGgpIHsgc2V0VmVydGljYWxB
bGlnbihWZXJ0aWNhbEFsaWduOjpMZW5ndGgpOyBTRVRfVkFSKG1fYm94RGF0YSwgbV92ZXJ0aWNh
bEFsaWduLCBXVEZNb3ZlKGxlbmd0aCkpOyB9CkBAIC0xNDcxLDYgKzE0NzcsOSBAQCBwdWJsaWM6
CiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVydGllcwogICAgIHN0YXRp
YyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dYKCkgeyByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7
IH0KICAgICBzdGF0aWMgT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WSgpIHsgcmV0dXJuIE92ZXJm
bG93OjpWaXNpYmxlOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3Zl
cnNjcm9sbEJlaGF2aW9yWCgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQor
ICAgIHN0YXRpYyBPdmVyc2Nyb2xsQmVoYXZpb3IgaW5pdGlhbE92ZXJzY3JvbGxCZWhhdmlvclko
KSB7IHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG87IH0KKwogICAgIHN0YXRpYyBDbGVh
ciBpbml0aWFsQ2xlYXIoKSB7IHJldHVybiBDbGVhcjo6Tm9uZTsgfQogICAgIHN0YXRpYyBEaXNw
bGF5VHlwZSBpbml0aWFsRGlzcGxheSgpIHsgcmV0dXJuIERpc3BsYXlUeXBlOjpJbmxpbmU7IH0K
ICAgICBzdGF0aWMgRVVuaWNvZGVCaWRpIGluaXRpYWxVbmljb2RlQmlkaSgpIHsgcmV0dXJuIFVC
Tm9ybWFsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMTVjM2U5MjkyNS4uMGJkY2I2
OTk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNjQsNiArNjQsOCBAQCBTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIHNj
cm9sbFNuYXBQb3J0KFN0eWxlU2Nyb2xsU25hcFBvcnQ6OmNyZWF0ZSgpKQogICAgICwgc2Nyb2xs
U25hcEFyZWEoU3R5bGVTY3JvbGxTbmFwQXJlYTo6Y3JlYXRlKCkpCiAjZW5kaWYKKyAgICAsIG92
ZXJzY3JvbGxCZWhhdmlvclgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0
aWFsT3ZlcnNjcm9sbEJlaGF2aW9yWCgpKSkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsT3ZlcnNjcm9sbEJlaGF2aW9y
WSgpKSkKICAgICAsIHdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6OmluaXRpYWxXaWxsQ2hhbmdlKCkp
CiAgICAgLCBtYXNrKEZpbGxMYXllcjo6Y3JlYXRlKEZpbGxMYXllclR5cGU6Ok1hc2spKQogICAg
ICwgbWFza0JveEltYWdlKE5pbmVQaWVjZUltYWdlOjpUeXBlOjpNYXNrKQpAQCAtMTQwLDYgKzE0
Miw4IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBzY3JvbGxTbmFwUG9ydChvLnNj
cm9sbFNuYXBQb3J0KQogICAgICwgc2Nyb2xsU25hcEFyZWEoby5zY3JvbGxTbmFwQXJlYSkKICNl
bmRpZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChvLm92ZXJzY3JvbGxCZWhhdmlvclgpCisg
ICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JZKG8ub3ZlcnNjcm9sbEJlaGF2aW9yWSkKICAgICAsIGNv
bnRlbnQoby5jb250ZW50ID8gby5jb250ZW50LT5jbG9uZSgpIDogbnVsbHB0cikKICAgICAsIGNv
dW50ZXJEaXJlY3RpdmVzKG8uY291bnRlckRpcmVjdGl2ZXMgPyBtYWtlVW5pcXVlPENvdW50ZXJE
aXJlY3RpdmVNYXA+KCpvLmNvdW50ZXJEaXJlY3RpdmVzKSA6IG51bGxwdHIpCiAgICAgLCBhbHRU
ZXh0KG8uYWx0VGV4dCkKQEAgLTIzOSw2ICsyNDMsOCBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykg
YwogICAgICAgICAmJiBzY3JvbGxTbmFwUG9ydCA9PSBvLnNjcm9sbFNuYXBQb3J0CiAgICAgICAg
ICYmIHNjcm9sbFNuYXBBcmVhID09IG8uc2Nyb2xsU25hcEFyZWEKICNlbmRpZgorICAgICAgICAm
JiBvdmVyc2Nyb2xsQmVoYXZpb3JYID09IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWAorICAgICAgICAm
JiBvdmVyc2Nyb2xsQmVoYXZpb3JZID09IG8ub3ZlcnNjcm9sbEJlaGF2aW9yWQogICAgICAgICAm
JiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFs
RGF0YShjb3VudGVyRGlyZWN0aXZlcywgby5jb3VudGVyRGlyZWN0aXZlcykKICAgICAgICAgJiYg
YWx0VGV4dCA9PSBvLmFsdFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDgxOGNiNjI3NTUu
LmRlNDFjM2JkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTMxLDYgKzEzMSw5IEBAIHB1
YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlU2Nyb2xsU25hcEFyZWE+IHNjcm9sbFNuYXBBcmVhOwog
I2VuZGlmCiAKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JYIDogMjsgLy8gT3ZlcnNj
cm9sbEJlaGF2aW9yCisgICAgdW5zaWduZWQgb3ZlcnNjcm9sbEJlaGF2aW9yWSA6IDI7IC8vIE92
ZXJzY3JvbGxCZWhhdmlvcgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjb250
ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjb3VudGVyRGly
ZWN0aXZlczsKICAgICBTdHJpbmcgYWx0VGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDcxMjdmOTlhYmUuLmE5Zjk0NmQ5NmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAt
MjE0NSw2ICsyMTQ1LDkgQEAgYm9vbCBBcmd1bWVudENvZGVyPE1lZGlhU2Vzc2lvbk1ldGFkYXRh
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE1lZGlhU2Vzc2lvbk0KIAogdm9pZCBBcmd1bWVu
dENvZGVyPFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CisgICAgZW5j
b2RlciA8PCBwYXJhbWV0ZXJzLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3I7CisgICAgZW5j
b2RlciA8PCBwYXJhbWV0ZXJzLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yOworCiAgICAgZW5j
b2RlciA8PCBwYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5OwogICAgIGVuY29k
ZXIgPDwgcGFyYW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHk7CiAKQEAgLTIxNjIsNiAr
MjE2NSwxMSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcgogCiBib29sIEFyZ3VtZW50Q29kZXI8
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1zKQogeworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1zLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbXMudmVydGljYWxPdmVyc2Nyb2xsQmVo
YXZpb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtcy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNp
dHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCBhOWY4NmQyOGY4Li5mNGVhNzU1NWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRm
b3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CkBAIC04ODQs
NiArODg1LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5
bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbj4gewogCiBuYW1lc3BhY2UgV1RGIHsKIAordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvciwKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8sCisgICAgV2Vi
Q29yZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluLAorICAgIFdlYkNvcmU6Ok92ZXJzY3Jv
bGxCZWhhdmlvcjo6Tm9uZQorICAgID47Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkNvbG9yU3BhY2U+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgIFdlYkNvcmU6OkNvbG9yU3BhY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbAppbmRleCAyMTk3YzI3MzhlLi4wNzM3MzI2Y2RjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTE0MjQsNiArMTQyNCwxMyBAQCBTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkOgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJF
bmFibGUgU3ludGhldGljIEVkaXRpbmcgQ29tbWFuZHMiCiAgIGNhdGVnb3J5OiBleHBlcmltZW50
YWwKIAorT3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE92ZXJzY3JvbGwgQmVoYXZp
b3IiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkNTUyBPdmVyc2Nyb2xsIEJlaGF2aW9y
IHByb3RvdHlwZSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBDU1NPTVZpZXdTY3JvbGxp
bmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDgxMGFkY2Q0ZTUu
LjA1ZDc5YzJkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTIzMCwxMiArMjMwLDMxIEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNo
aWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRpbmdDaGFuZ2Uo
bV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOwogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxDb250YWluZXJMYXllcikKKyAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFy
YW1zKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUpCiAgICAgICAgIHx8
IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpSZWFjaGFibGVDb250ZW50c1NpemUpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxQb3NpdGlvbikKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbE9yaWdpbikpIHsKICAg
ICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAq
c2Nyb2xsVmlldyA9IHRoaXMtPnNjcm9sbFZpZXcoKTsKKworICAgICAgICAvLyBGSVhNRShyZGFy
Oi8vcHJvYmxlbS8zNDMxNTk5Nyk6IFVJU2Nyb2xsVmlldyBzaG91bGQgaGF2ZSBzb21lIGtpbmQg
b2Ygc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbC1iZWhhdmlvciB0byBlbmFibGUvZGlzYWJsZToKKyAg
ICAgICAgLy8gLSBub24tbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25zIChlLmcuIHNjcm9s
bCBjaGFpbmluZykuCisgICAgICAgIC8vIC0gbG9jYWwgYm91bmRhcnkgZGVmYXVsdCBhY3Rpb25z
IChlLmcuIGJvdW5jaW5nKS4KKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICAv
LyBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKSkgeworICAgICAgICAvLyAgICAg
c2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JIb3Jpem9udGFsID0gY29udmVydE92ZXJzY3Jv
bGxCZWhhdmlvckZyb21XZWJLaXRUb1VJS2l0KHNjcm9sbGluZ1N0YXRlTm9kZS5zY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMoKS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKyAgICAgICAg
Ly8gICAgIHNjcm9sbFZpZXcub3ZlcnNjcm9sbEJlaGF2aW9yVmVydGljYWwgPSBjb252ZXJ0T3Zl
cnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9s
bGFibGVBcmVhUGFyYW1ldGVycygpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKTsKKyAgICAg
ICAgLy8gfQorI2VuZGlmCisgICAgICAgIC8vIEZvciBub3csIHdlIG9ubHkgZGlzYWJsZSBib3Vu
Y2luZyB3aGVuIGJvdGggb3ZlcmZsb3cteCBhbmQgb3ZlcmZsb3cteSBhcmUgbm9uZS4KKyAgICAg
ICAgLy8gVUlTY3JvbGxWaWV3OjphbHdheXNCb3VuY2UqIGZ1bmN0aW9ucyBjYW5ub3QgaGVscCBo
ZXJlLgorICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGFibGVBcmVhUGFyYW1zKSkgeworICAg
ICAgICAgICAgc2Nyb2xsVmlldy5ib3VuY2VzID0gc2Nyb2xsaW5nU3RhdGVOb2RlLnNjcm9sbGFi
bGVBcmVhUGFyYW1ldGVycygpLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0gT3ZlcnNj
cm9sbEJlaGF2aW9yOjpOb25lCisgICAgICAgICAgICAmJiBzY3JvbGxpbmdTdGF0ZU5vZGUuc2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPT0gT3Zl
cnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgICAgICAgICA/IE5PIDogWUVTOworICAgICAgICB9
CisKICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxDb250YWluZXJMYXllcikpIHsKICAgICAg
ICAgICAgIGlmICghbV9zY3JvbGxWaWV3RGVsZWdhdGUpCiAgICAgICAgICAgICAgICAgbV9zY3Jv
bGxWaWV3RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGU6dGhpc10pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKaW5kZXggMDg2ODA0N2Y5NS4uMjM3NTJkZGE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCkBAIC0xOTIsNiArMTkyLDcgQEAKICNkZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVk
IgorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
IgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGQ4MTNjMmRlM2QuLjFm
N2RiNmFlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQpAQCAtNjcwLDYgKzY3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgQFlFUywg
V2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSwKICNlbmRpZgogCisg
ICAgICAgIEBOTywgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIEBZRVMsIFdlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJl
bmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBAWUVTLCBXZWJLaXROZWVkc1N0b3JhZ2VBY2Nlc3NG
cm9tRmlsZVVSTHNRdWlya0tleSwKQEAgLTMyMTMsNiArMzIxNCwxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0K
IAorLSAoQk9PTClvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxm
IF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVu
Y2VLZXldOworfQorCistICh2b2lkKXNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6KEJPT0wp
ZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKUNTU09NVmll
d1Njcm9sbGluZ0FQSUVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktl
eTpXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCBlYWY5NTU2M2JjLi5kNzdkOTMyZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTY1OSw2ICs2NTksNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2Rl
bENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogLSAoQk9PTCl1c2VyR2Vz
dHVyZVByb21pc2VQcm9wYWdhdGlvbkVuYWJsZWQ7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBD
U1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAzYjExNGRiMzQ3Li5iODc0ZWRkYTUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMTc5LDYgKzMx
NzksNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAK
ICAgICBzZXR0aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIHZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0Vu
YWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtwcmVm
ZXJlbmNlcyBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NT
T01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xsaW5n
QVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTsKICAg
ICBzZXR0aW5ncy5zZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChb
cHJlZmVyZW5jZXMgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRdKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IDlhODc1ZDQ3OWUuLmNlMDE3MmJhZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjY5LDQgKzI2OSw2IEBAIGludGVyZmFjZSBJ
V2ViUHJlZmVyZW5jZXNQcml2YXRlOCA6IElXZWJQcmVmZXJlbmNlc1ByaXZhdGU3CiAgICAgSFJF
U1VMVCBzZXRBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKFtpbl0gQk9PTCBlbmFibGVkKTsK
ICAgICBIUkVTVUxUIG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQoW291dCwgcmV0dmFs
XSBCT09MKiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldE1vZGVyblVucHJlZml4ZWRXZWJBdWRp
b0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgb3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZChbIG91dCwgcmV0dmFsIF0gQk9PTCopOworICAgIEhSRVNVTFQgc2V0T3ZlcnNj
cm9sbEJlaGF2aW9yRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDJhMjEy
MWFkYjkuLmEyZjFiOGUzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xOTgsNiArMTk4LDggQEAKIAogI2RlZmluZSBX
ZWJLaXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgIldl
YktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIgogCisjZGVmaW5lIFdlYktp
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRPdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkIgorCiAjZGVmaW5lIFdlYktpdFVzZXJUaW1pbmdFbmFibGVkUHJlZmVy
ZW5jZUtleSAiV2ViS2l0VXNlclRpbWluZ0VuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0UmVzb3Vy
Y2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVk
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDkzZGU4
YTMyMGEuLmNlZTY0NGJlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlcy5jcHAKQEAgLTM0MSw2ICszNDEsOCBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFs
aXplRGVmYXVsdFNldHRpbmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRz
LCBDRlNUUihXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NG
Qm9vbGVhbkZhbHNlKTsKIAorICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNU
UihXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5GYWxzZSk7CisKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2Vi
S2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFu
RmFsc2UpOwogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwpA
QCAtMjI2OSw2ICsyMjcxLDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFZpc3VhbFZp
ZXdwb3J0QVBJRW5hYmxlZChCT09MIGVuYWJsZWQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hS
RVNVTFQgV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoX091dF8gQk9P
TCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAgICAgIHJldHVybiBFX1BPSU5U
RVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2
aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxU
IFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wgZW5hYmxl
ZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFBy
ZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJPT0wqIGVu
YWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlBy
ZWZlcmVuY2VzLmgKaW5kZXggMjQzN2IwZTc2Mi4uMjYwNGQ5ZTE0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yNjUsNiArMjY1LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRJbnNwZWN0b3JBZGRpdGlv
bnNFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB2
aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBzZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoQk9PTCk7Cisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKF9PdXRfIEJP
T0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZChCT09MKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChfT3V0XyBCT09MKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGJmNjhhNzE0NWQuLmQ1Y2U1YWZkYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01MzM0LDYgKzUzMzQsMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0Vmlz
dWFsVmlld3BvcnRBUElFbmFibGVkKCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0
ZS0+b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRCho
cikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZzUHJpdmF0ZS0+Q1NTT01WaWV3
U2Nyb2xsaW5nQVBJRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAg
ICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCAwNjQ1
N2RmZGZkLi4zYTgyMzE1MGE0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBA
IC0xMzgsNiArMTM4LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAgICAgICAgICAgIGFk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzID0gdmFsdWU7CiAgICAgICAgIGVsc2UgaWYgKGtl
eSA9PSAiZXhwZXJpbWVudGFsOldlYkdQVUVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlV2Vi
R1BVID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJleHBlcmltZW50YWw6T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIpCisgICAg
ICAgICAgICBlbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3IgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVy
VmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOkNTU0xvZ2lj
YWxFbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZUNTU0xvZ2ljYWwgPSBwYXJzZUJvb2xlYW5U
ZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFs
OkxpbmVIZWlnaHRVbml0c0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5k
ZXggYzVjOGM4NTk5Mi4uMmNhNjE5OTQwZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5o
CkBAIC00Nyw2ICs0Nyw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVD
b2xvckZpbHRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFk
b3dCb3VuZGFyaWVzIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViR1BVIHsgZmFsc2UgfTsK
KyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciB7IGZhbHNlIH07CiAgICAgYm9vbCBl
bmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUxpbmVIZWlnaHRVbml0
cyB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA2Zjdk
ZjA2OWMxLi5mZTJiZmEzM2IxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCkBAIC04MzksNiArODM5LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVu
dGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNw
ZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVy
ZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOworICAgIFtwcmVm
ZXJlbmNlcyBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOllFU107CiB9CiAKIC8vIENhbGxl
ZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAtOTg2LDYgKzk4Nyw3IEBAIHN0YXRpYyB2b2lkIHNldFdl
YlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAg
ICAgcHJlZmVyZW5jZXMuY29sb3JGaWx0ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb2xvckZp
bHRlcjsKICAgICBwcmVmZXJlbmNlcy5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5h
YmxlZCA9IG9wdGlvbnMuZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllczsKICAg
ICBwcmVmZXJlbmNlcy53ZWJHUFVFbmFibGVkID0gb3B0aW9ucy5lbmFibGVXZWJHUFU7CisgICAg
cHJlZmVyZW5jZXMub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlT3Zl
cnNjcm9sbEJlaGF2aW9yOwogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0
aW9ucy5lbmFibGVDU1NMb2dpY2FsOwogICAgIHByZWZlcmVuY2VzLmxpbmVIZWlnaHRVbml0c0Vu
YWJsZWQgPSBvcHRpb25zLmVuYWJsZUxpbmVIZWlnaHRVbml0czsKICAgICBwcmVmZXJlbmNlcy5h
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
MTRkYzNkMzQzYS4uZjM2NTE3YTViMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwCkBAIC05MjUsNiArOTI1LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJl
ZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBjb25z
dAogICAgIHByZWZlcmVuY2VzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKG9wdGlvbnMudXNl
RXBoZW1lcmFsU2Vzc2lvbik7CiAgICAgcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdlQ2FjaGUob3B0
aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldENTU09N
Vmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQob3B0aW9ucy5lbmFibGVDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmcpOworICAgIHByZWZzUHJpdmF0ZS0+c2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZChvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvcik7CiB9CiAKIHN0YXRpYyBTdHJpbmcg
YXBwbGljYXRpb25JZCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408212</attachid>
            <date>2020-09-07 22:38:39 -0700</date>
            <delta_ts>2020-09-07 22:38:39 -0700</delta_ts>
            <desc>WIP-patch-supported-desktop-based-on-Fred&apos;s-patch</desc>
            <filename>overscroll-behavior-012-0908.diff</filename>
            <type>text/plain</type>
            <size>130785</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZGF0ZS1pZi1kaXNhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNzcxNGI2OWY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9s
bC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MgdGVzdCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIGludmFsaWRhdGVkIGlm
IG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgaXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWRhdGUtaWYt
ZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwLi5hNjc3YzRkNzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGUu
aHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPWZhbHNlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgcmVzdWx0ID0gIm92ZXJzY3JvbGxCZWhhdmlvciIgaW4gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlID8gIkZBSUwiIDogIlBBU1MiOworICAgICAgICBkb2N1bWVudC53cml0ZShg
JHtyZXN1bHR9IHRlc3Qgb3ZlcnNjcm9sbEJlaGF2aW9yIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBp
ZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkIGlzIGRpc2FibGVkLmApOworCisgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJzY3JvbGwtYmVoYXZpb3It
dmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWRhdGUtaWYtZW5hYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NTUwZmY0NGJmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci12YWxpZGF0ZS1pZi1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MgdGVz
dCBvdmVyc2Nyb2xsQmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkIGlzIGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkYXRlLWlmLWVuYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1l
bmFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iYjUwNThk
MmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcnNj
cm9sbC1iZWhhdmlvci12YWxpZGF0ZS1pZi1lbmFibGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciByZXN1bHQgPSAib3ZlcnNjcm9s
bEJlaGF2aW9yIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGRvY3VtZW50LndyaXRlKGAke3Jlc3VsdH0gdGVzdCBvdmVyc2Nyb2xs
QmVoYXZpb3Igc2hvdWxkIGJlIHZhbGlkYXRlZCBpZiBvdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVk
IGlzIGVuYWJsZWQuYCk7CisgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwt
eG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApp
bmRleCA3MmFjMWNkZGYyLi40YzQ0ZmQyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0
ZWQudHh0CkBAIC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJm
bG93LXdyYXAgCiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJz
Y3JvbGwtYmVoYXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRk
aW5nLWJsb2NrLWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1i
b3R0b20gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggMjIyYzhi
MmJkNS4uYzJiOGI0NzlmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLWV4cGVjdGVkLnR4
dApAQCAtMyw4ICszLDggQEAgRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLWJsb2Nr
IGhhcyBpbml0aWFsIHZhbHVlIGF1dG8gYXNzZXJ0X3RydWU6IG92ZXIKIEZBSUwgUHJvcGVydHkg
b3ZlcnNjcm9sbC1iZWhhdmlvci1ibG9jayBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LWlubGluZSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJl
aGF2aW9yLWlubGluZSBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRl
ZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xs
LWJlaGF2aW9yLWlubGluZSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXggaGFzIGlu
aXRpYWwgdmFsdWUgYXV0byBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRvZXNu
J3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2VzIG5v
dCBpbmhlcml0IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9w
ZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgaGFzIGluaXRpYWwgdmFsdWUgYXV0byBhc3NlcnRf
dHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQg
aW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3Bl
cnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteSBkb2VzIG5vdCBpbmhlcml0IGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LXggaGFzIGluaXRpYWwgdmFsdWUgYXV0byAKK1BBU1MgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhh
dmlvci14IGRvZXMgbm90IGluaGVyaXQgCitQQVNTIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZp
b3IteSBoYXMgaW5pdGlhbCB2YWx1ZSBhdXRvIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXkgZG9lcyBub3QgaW5oZXJpdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
aW5oZXJpdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL2luaGVyaXRhbmNlLmh0bWwKaW5kZXgg
ODIzZDYyMzk0Ny4uZGE5M2JkNzVhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvaW5oZXJp
dGFuY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9pbmhlcml0YW5jZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkPXRydWUgXSAt
LT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNj
cm9sbC1iZWhhdmlvci9vdmVyc2Nyb2xsLWJlaGF2aW9yLWxvZ2ljYWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhhdmlvci1sb2dpY2FsLWV4cGVjdGVkLnR4dApp
bmRleCAxNjdiNDI5NzI3Li4zMDQ3ODhhMjU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9v
dmVyc2Nyb2xsLWJlaGF2aW9yLWxvZ2ljYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2
aW9yL292ZXJzY3JvbGwtYmVoYXZpb3ItbG9naWNhbC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1
IEBACiAKLUZBSUwgTG9naWNhbCBvdmVyc2Nyb2xsLWJlaGF2aW9yIG1hcHMgY29ycmVjdGx5IHdo
ZW4gZWxlbWVudCBoYXMgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgKHN0cmluZykgIm5vbmUiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1G
QUlMIExvZ2ljYWwgb3ZlcnNjcm9sbC1iZWhhdmlvciBtYXBzIGNvcnJlY3RseSB3aGVuIGVsZW1l
bnQgaGFzIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
c3RyaW5nKSAiY29udGFpbiIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgTG9n
aWNhbCBvdmVyc2Nyb2xsLWJlaGF2aW9yIG1hcHMgY29ycmVjdGx5IHdoZW4gZWxlbWVudCBoYXMg
aG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgYW5kIGlzIG5vdCBhZmZlY3RlZCBieSBydGwgZGly
ZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJub25lIiBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAorRkFJTCBMb2dpY2FsIG92ZXJzY3JvbGwtYmVoYXZpb3IgbWFw
cyBjb3JyZWN0bHkgd2hlbiBlbGVtZW50IGhhcyBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm9uZSIgYnV0IGdvdCAiYXV0byIKK0ZBSUwgTG9naWNh
bCBvdmVyc2Nyb2xsLWJlaGF2aW9yIG1hcHMgY29ycmVjdGx5IHdoZW4gZWxlbWVudCBoYXMgdmVy
dGljYWwtcmwgd3JpdGluZyBtb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb250YWluIiBi
dXQgZ290ICJhdXRvIgorRkFJTCBMb2dpY2FsIG92ZXJzY3JvbGwtYmVoYXZpb3IgbWFwcyBjb3Jy
ZWN0bHkgd2hlbiBlbGVtZW50IGhhcyBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSBhbmQgaXMg
bm90IGFmZmVjdGVkIGJ5IHJ0bCBkaXJlY3Rpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5v
bmUiIGJ1dCBnb3QgImF1dG8iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL292ZXJzY3Jv
bGwtYmVoYXZpb3ItbG9naWNhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhh
dmlvci1sb2dpY2FsLmh0bWwKaW5kZXggYTA2MTMyZmVhYS4uODFlZjU2MjI5NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92
ZXJzY3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhhdmlvci1sb2dpY2FsLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3Ivb3ZlcnNjcm9sbC1iZWhhdmlvci1sb2dpY2FsLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ9dHJ1ZSBdIC0t
PgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPlRlc3QgZmxvdy1yZWxhdGl2ZSB2ZXJz
aW9ucyBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIHByb3BlcnRpZXM8L3RpdGxlPgogPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNYWppZCBWYWxpcG91ciI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhh
dmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItY29tcHV0ZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWNvbXB1dGVkLWV4cGVj
dGVkLnR4dAppbmRleCAxZTY5MTU3NzM5Li5mODllMTY4MTE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1i
ZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItY29tcHV0ZWQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1vdmVyc2Nyb2xsLWJlaGF2aW9yL3BhcnNpbmcvb3ZlcnNjcm9sbC1iZWhhdmlvci1jb21wdXRl
ZC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAotRkFJTCBQcm9wZXJ0eSBvdmVyc2Ny
b2xsLWJlaGF2aW9yLXggdmFsdWUgJ2NvbnRhaW4nIGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggZG9lc24ndCBzZWVtIHRvIGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5
bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhh
dmlvci14IHZhbHVlICdub25lJyBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci14IGRv
ZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3IteCB2YWx1
ZSAnYXV0bycgYXNzZXJ0X3RydWU6IG92ZXJzY3JvbGwtYmVoYXZpb3IteCBkb2Vzbid0IHNlZW0g
dG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRlZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFsdWUgJ2NvbnRhaW4n
IGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgZG9lc24ndCBzZWVtIHRvIGJlIHN1
cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci15IHZhbHVlICdub25lJyBhc3NlcnRfdHJ1
ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci15IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgaW4g
dGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5
IG92ZXJzY3JvbGwtYmVoYXZpb3IteSB2YWx1ZSAnYXV0bycgYXNzZXJ0X3RydWU6IG92ZXJzY3Jv
bGwtYmVoYXZpb3IteSBkb2Vzbid0IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRl
ZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xs
LWJlaGF2aW9yLXggdmFsdWUgJ2NvbnRhaW4nIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggdmFsdWUgJ25vbmUnIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9y
LXggdmFsdWUgJ2F1dG8nIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFs
dWUgJ2NvbnRhaW4nIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFsdWUg
J25vbmUnIAorUEFTUyBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLXkgdmFsdWUgJ2F1dG8n
IAogRkFJTCBQcm9wZXJ0eSBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZSB2YWx1ZSAnY29udGFp
bicgYXNzZXJ0X3RydWU6IG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lIGRvZXNuJ3Qgc2VlbSB0
byBiZSBzdXBwb3J0ZWQgaW4gdGhlIGNvbXB1dGVkIHN0eWxlIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCiBGQUlMIFByb3BlcnR5IG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lIHZhbHVlICdub25l
JyBhc3NlcnRfdHJ1ZTogb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmUgZG9lc24ndCBzZWVtIHRv
IGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKIEZBSUwgUHJvcGVydHkgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmUgdmFsdWUgJ2F1dG8n
IGFzc2VydF90cnVlOiBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZSBkb2Vzbid0IHNlZW0gdG8g
YmUgc3VwcG9ydGVkIGluIHRoZSBjb21wdXRlZCBzdHlsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9y
LWNvbXB1dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZp
b3ItY29tcHV0ZWQuaHRtbAppbmRleCBlN2I0MGQ5NWM1Li5hMGIyM2MwNWE4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3Zl
cnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItY29tcHV0ZWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItY29tcHV0
ZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6T3ZlcnNjcm9sbEJlaGF2aW9y
RW5hYmxlZD10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgi
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9y
LWludmFsaWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL3BhcnNpbmcvb3ZlcnNjcm9sbC1iZWhhdmlv
ci1pbnZhbGlkLmh0bWwKaW5kZXggMDJhZGE0NTc2Yy4uNTY3MGYzOTIyNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJz
Y3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLWludmFsaWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
b3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItaW52YWxpZC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFs
aWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IvcGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2
aW9yLXZhbGlkLWV4cGVjdGVkLnR4dAppbmRleCBmNDEzY2JmZWM3Li40OTFlMTZkOGFkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yL3BhcnNpbmcvb3ZlcnNjcm9sbC1iZWhh
dmlvci12YWxpZC1leHBlY3RlZC50eHQKQEAgLTEsMTkgKzEsMTkgQEAKIAotRkFJTCBlLnN0eWxl
WydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29udGFpbiIgc2hvdWxkIHNldCB0aGUgcHJvcGVy
dHkgdmFsdWUgYXNzZXJ0X25vdF9lcXVhbHM6IHByb3BlcnR5IHNob3VsZCBiZSBzZXQgZ290IGRp
c2FsbG93ZWQgdmFsdWUgIiIKLUZBSUwgZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0g
Im5vbmUiIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlIGFzc2VydF9ub3RfZXF1YWxzOiBw
cm9wZXJ0eSBzaG91bGQgYmUgc2V0IGdvdCBkaXNhbGxvd2VkIHZhbHVlICIiCi1GQUlMIGUuc3R5
bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3InXSA9ICJhdXRvIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAi
Y29udGFpbiBub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2Vx
dWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJ
TCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAibm9uZSBhdXRvIiBzaG91bGQgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJl
IHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJl
aGF2aW9yJ10gPSAiYXV0byBjb250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBh
c3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2
YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29udGFpbiBj
b250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczog
cHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0
eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAibm9uZSBub25lIiBzaG91bGQgc2V0IHRoZSBw
cm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9y
J10gPSAiYXV0byBhdXRvIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90
X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgot
RkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXgnXSA9ICJjb250YWluIiBzaG91bGQg
c2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxk
IGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xs
LWJlaGF2aW9yLXgnXSA9ICJub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3Nl
cnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXgnXSA9ICJhdXRvIiBzaG91
bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hv
dWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Ny
b2xsLWJlaGF2aW9yLXknXSA9ICJjb250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dl
ZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXknXSA9ICJub25l
IiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVy
dHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBlLnN0eWxlWydv
dmVyc2Nyb2xsLWJlaGF2aW9yLXknXSA9ICJhdXRvIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2
YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJlIHNldCBnb3QgZGlzYWxs
b3dlZCB2YWx1ZSAiIgorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29u
dGFpbiIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVbJ292ZXJz
Y3JvbGwtYmVoYXZpb3InXSA9ICJub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAK
K1BBU1MgZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0gImF1dG8iIHNob3VsZCBzZXQg
dGhlIHByb3BlcnR5IHZhbHVlIAorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10g
PSAiY29udGFpbiBub25lIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5z
dHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0gIm5vbmUgYXV0byIgc2hvdWxkIHNldCB0aGUg
cHJvcGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3InXSA9ICJh
dXRvIGNvbnRhaW4iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlIAorUEFTUyBlLnN0eWxl
WydvdmVyc2Nyb2xsLWJlaGF2aW9yJ10gPSAiY29udGFpbiBjb250YWluIiBzaG91bGQgc2V0IHRo
ZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvciddID0g
Im5vbmUgbm9uZSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVb
J292ZXJzY3JvbGwtYmVoYXZpb3InXSA9ICJhdXRvIGF1dG8iIHNob3VsZCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlIAorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9yLXgnXSA9ICJjb250
YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5zdHlsZVsnb3ZlcnNj
cm9sbC1iZWhhdmlvci14J10gPSAibm9uZSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUg
CitQQVNTIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3IteCddID0gImF1dG8iIHNob3VsZCBz
ZXQgdGhlIHByb3BlcnR5IHZhbHVlIAorUEFTUyBlLnN0eWxlWydvdmVyc2Nyb2xsLWJlaGF2aW9y
LXknXSA9ICJjb250YWluIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSAKK1BBU1MgZS5z
dHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvci15J10gPSAibm9uZSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUgCitQQVNTIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3IteSddID0gImF1
dG8iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlIAogRkFJTCBlLnN0eWxlWydvdmVyc2Ny
b2xsLWJlaGF2aW9yLWlubGluZSddID0gImNvbnRhaW4iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5
IHZhbHVlIGFzc2VydF9ub3RfZXF1YWxzOiBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0IGdvdCBkaXNh
bGxvd2VkIHZhbHVlICIiCiBGQUlMIGUuc3R5bGVbJ292ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5l
J10gPSAibm9uZSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUgYXNzZXJ0X25vdF9lcXVh
bHM6IHByb3BlcnR5IHNob3VsZCBiZSBzZXQgZ290IGRpc2FsbG93ZWQgdmFsdWUgIiIKIEZBSUwg
ZS5zdHlsZVsnb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmUnXSA9ICJhdXRvIiBzaG91bGQgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZSBhc3NlcnRfbm90X2VxdWFsczogcHJvcGVydHkgc2hvdWxkIGJl
IHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3Iv
cGFyc2luZy9vdmVyc2Nyb2xsLWJlaGF2aW9yLXZhbGlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9w
YXJzaW5nL292ZXJzY3JvbGwtYmVoYXZpb3ItdmFsaWQuaHRtbAppbmRleCA0NWQ5MGQ0ODVmLi5i
Y2NjNjlkZTI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3JvbGwt
YmVoYXZpb3ItdmFsaWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcnNjcm9sbC1iZWhhdmlvci9wYXJzaW5nL292ZXJzY3Jv
bGwtYmVoYXZpb3ItdmFsaWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6T3Zl
cnNjcm9sbEJlaGF2aW9yRW5hYmxlZD10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1jc3N0ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tL2Nzc3N0eWxlZGVjbGFyYXRpb24tY3NzdGV4dC1leHBlY3RlZC50eHQKaW5kZXgg
YTEzZWZhOTVkYS4uZDg4MmRkYmM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1jc3N0
ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLWNzc3RleHQtZXhwZWN0ZWQu
dHh0CkBAIC03LDUgKzcsNSBAQCBQQVNTIGNzc1RleHQgb3JkZXIKIFBBU1MgYW5vdGhlciBjc3NU
ZXh0IG9yZGVyIChub24tYWxwaGFiZXRpY2FsIG9yZGVyKSAKIFBBU1Mgd2hpdGVzcGFjZXMgaW4g
dmFsdWUgCiBQQVNTIGludmFsaWQgcHJvcGVydHkgZG9lcyBub3QgYXBwZWFyIAotRkFJTCBjc3NU
ZXh0IG9uIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHN0cmlu
ZyBhc3NlcnRfZXF1YWxzOiBjc3NUZXh0IGlzIGVtcHR5IGV4cGVjdGVkICIiIGJ1dCBnb3QgImFs
aWduLWNvbnRlbnQ6IG5vcm1hbDsgYWxpZ24taXRlbXM6IG5vcm1hbDsgYWxpZ24tc2VsZjogYXV0
bzsgYWxpZ25tZW50LWJhc2VsaW5lOiBhdXRvOyBhbGw6IDsgYWx0OiBcIlwiOyBhbmltYXRpb24t
ZGVsYXk6IDBzOyBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7IGFuaW1hdGlvbi1kdXJhdGlv
bjogMHM7IGFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291
bnQ6IDE7IGFuaW1hdGlvbi1uYW1lOiBub25lOyBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmlu
ZzsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgYmFja2dyb3VuZC1hdHRhY2htZW50
OiBzY3JvbGw7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogbm9ybWFsOyBiYWNrZ3JvdW5kLWNsaXA6
IGJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IGJhY2tncm91
bmQtaW1hZ2U6IG5vbmU7IGJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveDsgYmFja2dyb3Vu
ZC1wb3NpdGlvbi14OiAwJTsgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwJTsgYmFja2dyb3VuZC1y
ZXBlYXQ6IHJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBhdXRvOyBiYXNlbGluZS1zaGlmdDogYmFz
ZWxpbmU7IGJsb2NrLXNpemU6IDBweDsgYm9yZGVyLWJsb2NrLWVuZC1jb2xvcjogcmdiKDI1NSwg
MCwgMCk7IGJvcmRlci1ibG9jay1lbmQtc3R5bGU6IG5vbmU7IGJvcmRlci1ibG9jay1lbmQtd2lk
dGg6IDBweDsgYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVy
LWJsb2NrLXN0YXJ0LXN0eWxlOiBub25lOyBib3JkZXItYmxvY2stc3RhcnQtd2lkdGg6IDBweDsg
Ym9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJvcmRlci1ib3R0b20tbGVmdC1y
YWRpdXM6IDBweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVyLWJvdHRv
bS1zdHlsZTogbm9uZTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OyBib3JkZXItY29sbGFwc2U6
IHNlcGFyYXRlOyBib3JkZXItaW1hZ2Utb3V0c2V0OiAwcHg7IGJvcmRlci1pbWFnZS1yZXBlYXQ6
IHN0cmV0Y2g7IGJvcmRlci1pbWFnZS1zbGljZTogMTAwJTsgYm9yZGVyLWltYWdlLXNvdXJjZTog
bm9uZTsgYm9yZGVyLWltYWdlLXdpZHRoOiAxOyBib3JkZXItaW5saW5lLWVuZC1jb2xvcjogcmdi
KDI1NSwgMCwgMCk7IGJvcmRlci1pbmxpbmUtZW5kLXN0eWxlOiBub25lOyBib3JkZXItaW5saW5l
LWVuZC13aWR0aDogMHB4OyBib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yOiByZ2IoMjU1LCAwLCAw
KTsgYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZTogbm9uZTsgYm9yZGVyLWlubGluZS1zdGFydC13
aWR0aDogMHB4OyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJvcmRlci1sZWZ0
LXN0eWxlOiBub25lOyBib3JkZXItbGVmdC13aWR0aDogMHB4OyBib3JkZXItcmlnaHQtY29sb3I6
IHJnYigyNTUsIDAsIDApOyBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7IGJvcmRlci1yaWdodC13
aWR0aDogMHB4OyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLXRvcC1s
ZWZ0LXJhZGl1czogMHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4OyBib3JkZXItdG9w
LXN0eWxlOiBub25lOyBib3JkZXItdG9wLXdpZHRoOiAwcHg7IGJvdHRvbTogYXV0bzsgYm94LXNo
YWRvdzogbm9uZTsgYm94LXNpemluZzogY29udGVudC1ib3g7IGJyZWFrLWFmdGVyOiBhdXRvOyBi
cmVhay1iZWZvcmU6IGF1dG87IGJyZWFrLWluc2lkZTogYXV0bzsgYnVmZmVyZWQtcmVuZGVyaW5n
OiBhdXRvOyBjYXB0aW9uLXNpZGU6IHRvcDsgY2FyZXQtY29sb3I6IHJnYigyNTUsIDAsIDApOyBj
bGVhcjogbm9uZTsgY2xpcDogYXV0bzsgY2xpcC1wYXRoOiBub25lOyBjbGlwLXJ1bGU6IG5vbnpl
cm87IGNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgY29sb3ItaW50ZXJwb2xhdGlvbjogc1JHQjsgY29s
b3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOiBsaW5lYXJSR0I7IGNvbG9yLXJlbmRlcmluZzogYXV0
bzsgY29sb3Itc2NoZW1lOiBhdXRvOyBjb2x1bW4tY291bnQ6IGF1dG87IGNvbHVtbi1maWxsOiBi
YWxhbmNlOyBjb2x1bW4tZ2FwOiBub3JtYWw7IGNvbHVtbi1ydWxlLWNvbG9yOiByZ2IoMjU1LCAw
LCAwKTsgY29sdW1uLXJ1bGUtc3R5bGU6IG5vbmU7IGNvbHVtbi1ydWxlLXdpZHRoOiAwcHg7IGNv
bHVtbi1zcGFuOiBub25lOyBjb2x1bW4td2lkdGg6IGF1dG87IGNvbnRlbnQ6IDsgY291bnRlci1p
bmNyZW1lbnQ6IG5vbmU7IGNvdW50ZXItcmVzZXQ6IG5vbmU7IGN1cnNvcjogYXV0bzsgY3g6IDBw
eDsgY3k6IDBweDsgZGlyZWN0aW9uOiBsdHI7IGRpc3BsYXk6IGJsb2NrOyBkb21pbmFudC1iYXNl
bGluZTogYXV0bzsgZW1wdHktY2VsbHM6IHNob3c7IGZpbGw6IHJnYigwLCAwLCAwKTsgZmlsbC1v
cGFjaXR5OiAxOyBmaWxsLXJ1bGU6IG5vbnplcm87IGZpbHRlcjogbm9uZTsgZmxleC1iYXNpczog
YXV0bzsgZmxleC1kaXJlY3Rpb246IHJvdzsgZmxleC1ncm93OiAwOyBmbGV4LXNocmluazogMTsg
ZmxleC13cmFwOiBub3dyYXA7IGZsb2F0OiBub25lOyBmbG9vZC1jb2xvcjogcmdiKDAsIDAsIDAp
OyBmbG9vZC1vcGFjaXR5OiAxOyBmb250LWZhbWlseTogLXdlYmtpdC1zdGFuZGFyZDsgZm9udC1m
ZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IGZvbnQtb3B0aWNhbC1zaXppbmc6IGF1dG87IGZvbnQt
c2l6ZTogMTMuMzMzMzMzMDE1NDQxODk1cHg7IGZvbnQtc3RyZXRjaDogbm9ybWFsOyBmb250LXN0
eWxlOiBub3JtYWw7IGZvbnQtc3ludGhlc2lzOiBzdHlsZSB3ZWlnaHQgc21hbGwtY2FwczsgZm9u
dC12YXJpYW50LWFsdGVybmF0ZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsg
Zm9udC12YXJpYW50LWVhc3QtYXNpYW46IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczog
bm9ybWFsOyBmb250LXZhcmlhbnQtbnVtZXJpYzogbm9ybWFsOyBmb250LXZhcmlhbnQtcG9zaXRp
b246IG5vcm1hbDsgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IG5vcm1hbDsgZm9udC13ZWlnaHQ6
IG5vcm1hbDsgZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbDogMGRlZzsgZ2x5cGgtb3JpZW50
YXRpb24tdmVydGljYWw6IGF1dG87IGdyaWQtYXV0by1jb2x1bW5zOiBhdXRvOyBncmlkLWF1dG8t
Zmxvdzogcm93OyBncmlkLWF1dG8tcm93czogYXV0bzsgZ3JpZC1jb2x1bW4tZW5kOiBhdXRvOyBn
cmlkLWNvbHVtbi1zdGFydDogYXV0bzsgZ3JpZC1yb3ctZW5kOiBhdXRvOyBncmlkLXJvdy1zdGFy
dDogYXV0bzsgZ3JpZC10ZW1wbGF0ZS1hcmVhczogbm9uZTsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OiBub25lOyBncmlkLXRlbXBsYXRlLXJvd3M6IG5vbmU7IGhhbmdpbmctcHVuY3R1YXRpb246IG5v
bmU7IGhlaWdodDogMHB4OyBpbWFnZS1vcmllbnRhdGlvbjogZnJvbS1pbWFnZTsgaW1hZ2UtcmVu
ZGVyaW5nOiBhdXRvOyBpbmxpbmUtc2l6ZTogNzg0cHg7IGluc2V0LWJsb2NrLWVuZDogYXV0bzsg
aW5zZXQtYmxvY2stc3RhcnQ6IGF1dG87IGluc2V0LWlubGluZS1lbmQ6IGF1dG87IGluc2V0LWlu
bGluZS1zdGFydDogYXV0bzsgaXNvbGF0aW9uOiBhdXRvOyBqdXN0aWZ5LWNvbnRlbnQ6IG5vcm1h
bDsganVzdGlmeS1pdGVtczogbm9ybWFsOyBqdXN0aWZ5LXNlbGY6IGF1dG87IGtlcm5pbmc6IDA7
IGxlZnQ6IGF1dG87IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IGxpZ2h0aW5nLWNvbG9yOiByZ2Io
MjU1LCAyNTUsIDI1NSk7IGxpbmUtYnJlYWs6IGF1dG87IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGxp
c3Qtc3R5bGUtaW1hZ2U6IG5vbmU7IGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7IGxpc3Qt
c3R5bGUtdHlwZTogZGlzYzsgbWFyZ2luLWJsb2NrLWVuZDogMHB4OyBtYXJnaW4tYmxvY2stc3Rh
cnQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4taW5saW5lLWVuZDogMHB4OyBtYXJn
aW4taW5saW5lLXN0YXJ0OiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4
OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmtlci1lbmQ6IG5vbmU7IG1hcmtlci1taWQ6IG5vbmU7IG1h
cmtlci1zdGFydDogbm9uZTsgbWFzazogbm9uZTsgbWFzay10eXBlOiBsdW1pbmFuY2U7IG1heC1i
bG9jay1zaXplOiBub25lOyBtYXgtaGVpZ2h0OiBub25lOyBtYXgtaW5saW5lLXNpemU6IG5vbmU7
IG1heC13aWR0aDogbm9uZTsgbWluLWJsb2NrLXNpemU6IDBweDsgbWluLWhlaWdodDogMHB4OyBt
aW4taW5saW5lLXNpemU6IDBweDsgbWluLXdpZHRoOiAwcHg7IG1peC1ibGVuZC1tb2RlOiBub3Jt
YWw7IG9iamVjdC1maXQ6IGZpbGw7IG9iamVjdC1wb3NpdGlvbjogNTAlIDUwJTsgb3BhY2l0eTog
MTsgb3JkZXI6IDA7IG9ycGhhbnM6IGF1dG87IG91dGxpbmUtY29sb3I6IHJnYigyNTUsIDAsIDAp
OyBvdXRsaW5lLW9mZnNldDogMHB4OyBvdXRsaW5lLXN0eWxlOiBub25lOyBvdXRsaW5lLXdpZHRo
OiAwcHg7IG92ZXJmbG93LXdyYXA6IG5vcm1hbDsgb3ZlcmZsb3cteDogdmlzaWJsZTsgb3ZlcmZs
b3cteTogdmlzaWJsZTsgcGFkZGluZy1ibG9jay1lbmQ6IDBweDsgcGFkZGluZy1ibG9jay1zdGFy
dDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWlubGluZS1lbmQ6IDBweDsgcGFk
ZGluZy1pbmxpbmUtc3RhcnQ6IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6
IDBweDsgcGFkZGluZy10b3A6IDBweDsgcGFnZS1icmVhay1hZnRlcjogYXV0bzsgcGFnZS1icmVh
ay1iZWZvcmU6IGF1dG87IHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyBwYWludC1vcmRlcjogbm9y
bWFsOyBwZXJzcGVjdGl2ZTogbm9uZTsgcGVyc3BlY3RpdmUtb3JpZ2luLXg6IDsgcGVyc3BlY3Rp
dmUtb3JpZ2luLXk6IDsgcG9pbnRlci1ldmVudHM6IGF1dG87IHBvc2l0aW9uOiBzdGF0aWM7IHF1
b3RlczogYXV0bzsgcjogMHB4OyByZXNpemU6IG5vbmU7IHJpZ2h0OiBhdXRvOyByb3ctZ2FwOiBu
b3JtYWw7IHJ4OiBhdXRvOyByeTogYXV0bzsgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvOyBzY3JvbGwt
cGFkZGluZy1ib3R0b206IDBweDsgc2Nyb2xsLXBhZGRpbmctbGVmdDogMHB4OyBzY3JvbGwtcGFk
ZGluZy1yaWdodDogMHB4OyBzY3JvbGwtcGFkZGluZy10b3A6IDBweDsgc2Nyb2xsLXNuYXAtYWxp
Z246IG5vbmUgbm9uZTsgc2Nyb2xsLXNuYXAtbWFyZ2luLWJvdHRvbTogMHB4OyBzY3JvbGwtc25h
cC1tYXJnaW4tbGVmdDogMHB4OyBzY3JvbGwtc25hcC1tYXJnaW4tcmlnaHQ6IDBweDsgc2Nyb2xs
LXNuYXAtbWFyZ2luLXRvcDogMHB4OyBzY3JvbGwtc25hcC10eXBlOiBub25lOyBzaGFwZS1pbWFn
ZS10aHJlc2hvbGQ6IDA7IHNoYXBlLW1hcmdpbjogMHB4OyBzaGFwZS1vdXRzaWRlOiBub25lOyBz
aGFwZS1yZW5kZXJpbmc6IGF1dG87IHNpemU6IDsgc3BlYWstYXM6IG5vcm1hbDsgc3RvcC1jb2xv
cjogcmdiKDAsIDAsIDApOyBzdG9wLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLWNv
bG9yOiByZ2JhKDAsIDAsIDAsIDApOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFz
aG9mZnNldDogMHB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRl
cjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1vcGFjaXR5OiAxOyBzdHJva2Utd2lkdGg6
IDFweDsgdGFiLXNpemU6IDg7IHRhYmxlLWxheW91dDogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7
IHRleHQtYW5jaG9yOiBzdGFydDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWRlY29yYXRp
b24tY29sb3I6IHJnYigyNTUsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4
dC1kZWNvcmF0aW9uLXNraXA6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRl
eHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtaW5kZW50OiAwcHg7IHRleHQtb3Jp
ZW50YXRpb246IG1peGVkOyB0ZXh0LW92ZXJmbG93OiBjbGlwOyB0ZXh0LXJlbmRlcmluZzogYXV0
bzsgdGV4dC1zaGFkb3c6IG5vbmU7IHRleHQtdHJhbnNmb3JtOiBub25lOyB0ZXh0LXVuZGVybGlu
ZS1vZmZzZXQ6IGF1dG87IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBhdXRvOyB0b3A6IGF1dG87
IHRvdWNoLWFjdGlvbjogYXV0bzsgdHJhbnNmb3JtOiBub25lOyB0cmFuc2Zvcm0tYm94OiB2aWV3
LWJveDsgdHJhbnNmb3JtLW9yaWdpbi14OiA7IHRyYW5zZm9ybS1vcmlnaW4teTogOyB0cmFuc2Zv
cm0tb3JpZ2luLXo6IDsgdHJhbnNmb3JtLXN0eWxlOiBmbGF0OyB0cmFuc2l0aW9uLWRlbGF5OiAw
czsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7IHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDsgdHJh
bnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IHVuaWNvZGUtYmlkaTogbm9ybWFsOyB2ZWN0
b3ItZWZmZWN0OiBub25lOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IHZpc2liaWxpdHk6IHZp
c2libGU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd2lkdGg6IDc4NHB4OyB3
aWxsLWNoYW5nZTogYXV0bzsgd29yZC1icmVhazogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsg
d29yZC13cmFwOiBub3JtYWw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsgeDogMHB4OyB5
OiAwcHg7IHotaW5kZXg6IGF1dG87IHpvb206IDE7IC1hcHBsZS1jb2xvci1maWx0ZXI6IG5vbmU7
IC1hcHBsZS1wYXktYnV0dG9uLXN0eWxlOiBibGFjazsgLWFwcGxlLXBheS1idXR0b24tdHlwZTog
cGxhaW47IC1hcHBsZS10cmFpbGluZy13b3JkOiBhdXRvOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5v
bmU7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiBhdXRvOyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjog
bm9uZTsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlOyAtd2Via2l0LWJhY2tn
cm91bmQtY2xpcDogYm9yZGVyLWJveDsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBvc2l0ZTogc291
cmNlLW92ZXI7IC13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94OyAtd2Via2l0
LWJhY2tncm91bmQtc2l6ZTogYXV0bzsgLXdlYmtpdC1ib3JkZXItZml0OiBib3JkZXI7IC13ZWJr
aXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJvcmRlci1pbWFnZTog
bm9uZTsgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJveC1h
bGlnbjogc3RyZXRjaDsgLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogc2xpY2U7IC13ZWJr
aXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAtd2Via2l0LWJveC1mbGV4OiAwOyAtd2Via2l0LWJv
eC1mbGV4LWdyb3VwOiAxOyAtd2Via2l0LWJveC1saW5lczogc2luZ2xlOyAtd2Via2l0LWJveC1v
cmRpbmFsLWdyb3VwOiAxOyAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7IC13ZWJraXQt
Ym94LXBhY2s6IHN0YXJ0OyAtd2Via2l0LWJveC1yZWZsZWN0OiBub25lOyAtd2Via2l0LWJveC1z
aGFkb3c6IG5vbmU7IC13ZWJraXQtY29sdW1uLWF4aXM6IGF1dG87IC13ZWJraXQtY29sdW1uLWJy
ZWFrLWFmdGVyOiBhdXRvOyAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGF1dG87IC13ZWJr
aXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzsgLXdlYmtpdC1jb2x1bW4tcHJvZ3Jlc3Npb246
IG5vcm1hbDsgLXdlYmtpdC1jdXJzb3ItdmlzaWJpbGl0eTogYXV0bzsgLXdlYmtpdC1mb250LWtl
cm5pbmc6IGF1dG87IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87IC13ZWJraXQtaHlwaGVu
YXRlLWNoYXJhY3RlcjogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUtbGltaXQtYWZ0ZXI6IGF1dG87
IC13ZWJraXQtaHlwaGVuYXRlLWxpbWl0LWJlZm9yZTogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUt
bGltaXQtbGluZXM6IG5vLWxpbWl0OyAtd2Via2l0LWh5cGhlbnM6IG1hbnVhbDsgLXdlYmtpdC1p
bml0aWFsLWxldHRlcjogbm9ybWFsOyAtd2Via2l0LWxpbmUtYWxpZ246IG5vbmU7IC13ZWJraXQt
bGluZS1ib3gtY29udGFpbjogYmxvY2sgaW5saW5lIHJlcGxhY2VkOyAtd2Via2l0LWxpbmUtY2xh
bXA6IG5vbmU7IC13ZWJraXQtbGluZS1ncmlkOiBub25lOyAtd2Via2l0LWxpbmUtc25hcDogbm9u
ZTsgLXdlYmtpdC1sb2NhbGU6IGF1dG87IC13ZWJraXQtbWFyZ2luLWFmdGVyLWNvbGxhcHNlOiBj
b2xsYXBzZTsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtp
dC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXJnaW4tdG9wLWNv
bGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogbm9uZTsgLXdlYmtpdC1t
YXNrLWJveC1pbWFnZS1vdXRzZXQ6IDBweDsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1yZXBlYXQ6
IHN0cmV0Y2g7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utc2xpY2U6IDAgZmlsbDsgLXdlYmtpdC1t
YXNrLWJveC1pbWFnZS1zb3VyY2U6IG5vbmU7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utd2lkdGg6
IGF1dG87IC13ZWJraXQtbWFzay1jbGlwOiBib3JkZXItYm94OyAtd2Via2l0LW1hc2stY29tcG9z
aXRlOiBzb3VyY2Utb3ZlcjsgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lOyAtd2Via2l0LW1hc2st
b3JpZ2luOiBib3JkZXItYm94OyAtd2Via2l0LW1hc2stcG9zaXRpb24teDogMCU7IC13ZWJraXQt
bWFzay1wb3NpdGlvbi15OiAwJTsgLXdlYmtpdC1tYXNrLXJlcGVhdDogcmVwZWF0OyAtd2Via2l0
LW1hc2stc2l6ZTogYXV0bzsgLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlOiBhbHBoYTsgLXdlYmtp
dC1uYnNwLW1vZGU6IG5vcm1hbDsgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7
IC13ZWJraXQtcnRsLW9yZGVyaW5nOiBsb2dpY2FsOyAtd2Via2l0LXJ1YnktcG9zaXRpb246IGJl
Zm9yZTsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IG5vbmU7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1j
b2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogb3Zl
ciByaWdodDsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBub25lOyAtd2Via2l0LXRleHQt
ZmlsbC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbjogbWl4
ZWQ7IC13ZWJraXQtdGV4dC1zZWN1cml0eTogbm9uZTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0
OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgLXdlYmtp
dC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyAtd2Via2l0LXRleHQtem9vbTogbm9ybWFsOyAtd2Vi
a2l0LXRyYW5zZm9ybS1zdHlsZTogZmxhdDsgLXdlYmtpdC11c2VyLWRyYWc6IGF1dG87IC13ZWJr
aXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsiCitG
QUlMIGNzc1RleHQgb24gY29tcHV0ZWQgc3R5bGUgZGVjbGFyYXRpb24gcmV0dXJucyB0aGUgZW1w
dHkgc3RyaW5nIGFzc2VydF9lcXVhbHM6IGNzc1RleHQgaXMgZW1wdHkgZXhwZWN0ZWQgIiIgYnV0
IGdvdCAiYWxpZ24tY29udGVudDogbm9ybWFsOyBhbGlnbi1pdGVtczogbm9ybWFsOyBhbGlnbi1z
ZWxmOiBhdXRvOyBhbGlnbm1lbnQtYmFzZWxpbmU6IGF1dG87IGFsbDogOyBhbHQ6IFwiXCI7IGFu
aW1hdGlvbi1kZWxheTogMHM7IGFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsgYW5pbWF0aW9u
LWR1cmF0aW9uOiAwczsgYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsgYW5pbWF0aW9uLWl0ZXJh
dGlvbi1jb3VudDogMTsgYW5pbWF0aW9uLW5hbWU6IG5vbmU7IGFuaW1hdGlvbi1wbGF5LXN0YXRl
OiBydW5uaW5nOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyBiYWNrZ3JvdW5kLWF0
dGFjaG1lbnQ6IHNjcm9sbDsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBub3JtYWw7IGJhY2tncm91
bmQtY2xpcDogYm9yZGVyLWJveDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsg
YmFja2dyb3VuZC1pbWFnZTogbm9uZTsgYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94OyBi
YWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDAlOyBiYWNr
Z3JvdW5kLXJlcGVhdDogcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IGF1dG87IGJhc2VsaW5lLXNo
aWZ0OiBiYXNlbGluZTsgYmxvY2stc2l6ZTogMHB4OyBib3JkZXItYmxvY2stZW5kLWNvbG9yOiBy
Z2IoMjU1LCAwLCAwKTsgYm9yZGVyLWJsb2NrLWVuZC1zdHlsZTogbm9uZTsgYm9yZGVyLWJsb2Nr
LWVuZC13aWR0aDogMHB4OyBib3JkZXItYmxvY2stc3RhcnQtY29sb3I6IHJnYigyNTUsIDAsIDAp
OyBib3JkZXItYmxvY2stc3RhcnQtc3R5bGU6IG5vbmU7IGJvcmRlci1ibG9jay1zdGFydC13aWR0
aDogMHB4OyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLWJvdHRv
bS1sZWZ0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyBib3Jk
ZXItYm90dG9tLXN0eWxlOiBub25lOyBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IGJvcmRlci1j
b2xsYXBzZTogc2VwYXJhdGU7IGJvcmRlci1pbWFnZS1vdXRzZXQ6IDBweDsgYm9yZGVyLWltYWdl
LXJlcGVhdDogc3RyZXRjaDsgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlOyBib3JkZXItaW1hZ2Ut
c291cmNlOiBub25lOyBib3JkZXItaW1hZ2Utd2lkdGg6IDE7IGJvcmRlci1pbmxpbmUtZW5kLWNv
bG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLWlubGluZS1lbmQtc3R5bGU6IG5vbmU7IGJvcmRl
ci1pbmxpbmUtZW5kLXdpZHRoOiAwcHg7IGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYigy
NTUsIDAsIDApOyBib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlOiBub25lOyBib3JkZXItaW5saW5l
LXN0YXJ0LXdpZHRoOiAwcHg7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9y
ZGVyLWxlZnQtc3R5bGU6IG5vbmU7IGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7IGJvcmRlci1yaWdo
dC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTsgYm9yZGVy
LXJpZ2h0LXdpZHRoOiAwcHg7IGJvcmRlci10b3AtY29sb3I6IHJnYigyNTUsIDAsIDApOyBib3Jk
ZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7IGJv
cmRlci10b3Atc3R5bGU6IG5vbmU7IGJvcmRlci10b3Atd2lkdGg6IDBweDsgYm90dG9tOiBhdXRv
OyBib3gtc2hhZG93OiBub25lOyBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgYnJlYWstYWZ0ZXI6
IGF1dG87IGJyZWFrLWJlZm9yZTogYXV0bzsgYnJlYWstaW5zaWRlOiBhdXRvOyBidWZmZXJlZC1y
ZW5kZXJpbmc6IGF1dG87IGNhcHRpb24tc2lkZTogdG9wOyBjYXJldC1jb2xvcjogcmdiKDI1NSwg
MCwgMCk7IGNsZWFyOiBub25lOyBjbGlwOiBhdXRvOyBjbGlwLXBhdGg6IG5vbmU7IGNsaXAtcnVs
ZTogbm9uemVybzsgY29sb3I6IHJnYigyNTUsIDAsIDApOyBjb2xvci1pbnRlcnBvbGF0aW9uOiBz
UkdCOyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6IGxpbmVhclJHQjsgY29sb3ItcmVuZGVy
aW5nOiBhdXRvOyBjb2xvci1zY2hlbWU6IGF1dG87IGNvbHVtbi1jb3VudDogYXV0bzsgY29sdW1u
LWZpbGw6IGJhbGFuY2U7IGNvbHVtbi1nYXA6IG5vcm1hbDsgY29sdW1uLXJ1bGUtY29sb3I6IHJn
YigyNTUsIDAsIDApOyBjb2x1bW4tcnVsZS1zdHlsZTogbm9uZTsgY29sdW1uLXJ1bGUtd2lkdGg6
IDBweDsgY29sdW1uLXNwYW46IG5vbmU7IGNvbHVtbi13aWR0aDogYXV0bzsgY29udGVudDogOyBj
b3VudGVyLWluY3JlbWVudDogbm9uZTsgY291bnRlci1yZXNldDogbm9uZTsgY3Vyc29yOiBhdXRv
OyBjeDogMHB4OyBjeTogMHB4OyBkaXJlY3Rpb246IGx0cjsgZGlzcGxheTogYmxvY2s7IGRvbWlu
YW50LWJhc2VsaW5lOiBhdXRvOyBlbXB0eS1jZWxsczogc2hvdzsgZmlsbDogcmdiKDAsIDAsIDAp
OyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogbm9uemVybzsgZmlsdGVyOiBub25lOyBmbGV4
LWJhc2lzOiBhdXRvOyBmbGV4LWRpcmVjdGlvbjogcm93OyBmbGV4LWdyb3c6IDA7IGZsZXgtc2hy
aW5rOiAxOyBmbGV4LXdyYXA6IG5vd3JhcDsgZmxvYXQ6IG5vbmU7IGZsb29kLWNvbG9yOiByZ2Io
MCwgMCwgMCk7IGZsb29kLW9wYWNpdHk6IDE7IGZvbnQtZmFtaWx5OiAtd2Via2l0LXN0YW5kYXJk
OyBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgZm9udC1vcHRpY2FsLXNpemluZzogYXV0
bzsgZm9udC1zaXplOiAxMy4zMzMzMzMwMTU0NDE4OTVweDsgZm9udC1zdHJldGNoOiBub3JtYWw7
IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC1zeW50aGVzaXM6IHN0eWxlIHdlaWdodCBzbWFsbC1j
YXBzOyBmb250LXZhcmlhbnQtYWx0ZXJuYXRlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczog
bm9ybWFsOyBmb250LXZhcmlhbnQtZWFzdC1hc2lhbjogbm9ybWFsOyBmb250LXZhcmlhbnQtbGln
YXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1udW1lcmljOiBub3JtYWw7IGZvbnQtdmFyaWFu
dC1wb3NpdGlvbjogbm9ybWFsOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyBmb250
LXdlaWdodDogbm9ybWFsOyBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsOiAwZGVnOyBnbHlw
aC1vcmllbnRhdGlvbi12ZXJ0aWNhbDogYXV0bzsgZ3JpZC1hdXRvLWNvbHVtbnM6IGF1dG87IGdy
aWQtYXV0by1mbG93OiByb3c7IGdyaWQtYXV0by1yb3dzOiBhdXRvOyBncmlkLWNvbHVtbi1lbmQ6
IGF1dG87IGdyaWQtY29sdW1uLXN0YXJ0OiBhdXRvOyBncmlkLXJvdy1lbmQ6IGF1dG87IGdyaWQt
cm93LXN0YXJ0OiBhdXRvOyBncmlkLXRlbXBsYXRlLWFyZWFzOiBub25lOyBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IG5vbmU7IGdyaWQtdGVtcGxhdGUtcm93czogbm9uZTsgaGFuZ2luZy1wdW5jdHVh
dGlvbjogbm9uZTsgaGVpZ2h0OiAwcHg7IGltYWdlLW9yaWVudGF0aW9uOiBmcm9tLWltYWdlOyBp
bWFnZS1yZW5kZXJpbmc6IGF1dG87IGlubGluZS1zaXplOiA3ODRweDsgaW5zZXQtYmxvY2stZW5k
OiBhdXRvOyBpbnNldC1ibG9jay1zdGFydDogYXV0bzsgaW5zZXQtaW5saW5lLWVuZDogYXV0bzsg
aW5zZXQtaW5saW5lLXN0YXJ0OiBhdXRvOyBpc29sYXRpb246IGF1dG87IGp1c3RpZnktY29udGVu
dDogbm9ybWFsOyBqdXN0aWZ5LWl0ZW1zOiBub3JtYWw7IGp1c3RpZnktc2VsZjogYXV0bzsga2Vy
bmluZzogMDsgbGVmdDogYXV0bzsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgbGlnaHRpbmctY29s
b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgbGluZS1icmVhazogYXV0bzsgbGluZS1oZWlnaHQ6IG5v
cm1hbDsgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lk
ZTsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyBtYXJnaW4tYmxvY2stZW5kOiAwcHg7IG1hcmdpbi1i
bG9jay1zdGFydDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1pbmxpbmUtZW5kOiAw
cHg7IG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJp
Z2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgbWFya2VyLWVuZDogbm9uZTsgbWFya2VyLW1pZDog
bm9uZTsgbWFya2VyLXN0YXJ0OiBub25lOyBtYXNrOiBub25lOyBtYXNrLXR5cGU6IGx1bWluYW5j
ZTsgbWF4LWJsb2NrLXNpemU6IG5vbmU7IG1heC1oZWlnaHQ6IG5vbmU7IG1heC1pbmxpbmUtc2l6
ZTogbm9uZTsgbWF4LXdpZHRoOiBub25lOyBtaW4tYmxvY2stc2l6ZTogMHB4OyBtaW4taGVpZ2h0
OiAwcHg7IG1pbi1pbmxpbmUtc2l6ZTogMHB4OyBtaW4td2lkdGg6IDBweDsgbWl4LWJsZW5kLW1v
ZGU6IG5vcm1hbDsgb2JqZWN0LWZpdDogZmlsbDsgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlOyBv
cGFjaXR5OiAxOyBvcmRlcjogMDsgb3JwaGFuczogYXV0bzsgb3V0bGluZS1jb2xvcjogcmdiKDI1
NSwgMCwgMCk7IG91dGxpbmUtb2Zmc2V0OiAwcHg7IG91dGxpbmUtc3R5bGU6IG5vbmU7IG91dGxp
bmUtd2lkdGg6IDBweDsgb3ZlcmZsb3ctd3JhcDogbm9ybWFsOyBvdmVyZmxvdy14OiB2aXNpYmxl
OyBvdmVyZmxvdy15OiB2aXNpYmxlOyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGF1dG87IG92ZXJz
Y3JvbGwtYmVoYXZpb3IteTogYXV0bzsgcGFkZGluZy1ibG9jay1lbmQ6IDBweDsgcGFkZGluZy1i
bG9jay1zdGFydDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWlubGluZS1lbmQ6
IDBweDsgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRp
bmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcGFnZS1icmVhay1hZnRlcjogYXV0bzsg
cGFnZS1icmVhay1iZWZvcmU6IGF1dG87IHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyBwYWludC1v
cmRlcjogbm9ybWFsOyBwZXJzcGVjdGl2ZTogbm9uZTsgcGVyc3BlY3RpdmUtb3JpZ2luLXg6IDsg
cGVyc3BlY3RpdmUtb3JpZ2luLXk6IDsgcG9pbnRlci1ldmVudHM6IGF1dG87IHBvc2l0aW9uOiBz
dGF0aWM7IHF1b3RlczogYXV0bzsgcjogMHB4OyByZXNpemU6IG5vbmU7IHJpZ2h0OiBhdXRvOyBy
b3ctZ2FwOiBub3JtYWw7IHJ4OiBhdXRvOyByeTogYXV0bzsgc2Nyb2xsLWJlaGF2aW9yOiBhdXRv
OyBzY3JvbGwtcGFkZGluZy1ib3R0b206IDBweDsgc2Nyb2xsLXBhZGRpbmctbGVmdDogMHB4OyBz
Y3JvbGwtcGFkZGluZy1yaWdodDogMHB4OyBzY3JvbGwtcGFkZGluZy10b3A6IDBweDsgc2Nyb2xs
LXNuYXAtYWxpZ246IG5vbmUgbm9uZTsgc2Nyb2xsLXNuYXAtbWFyZ2luLWJvdHRvbTogMHB4OyBz
Y3JvbGwtc25hcC1tYXJnaW4tbGVmdDogMHB4OyBzY3JvbGwtc25hcC1tYXJnaW4tcmlnaHQ6IDBw
eDsgc2Nyb2xsLXNuYXAtbWFyZ2luLXRvcDogMHB4OyBzY3JvbGwtc25hcC10eXBlOiBub25lOyBz
aGFwZS1pbWFnZS10aHJlc2hvbGQ6IDA7IHNoYXBlLW1hcmdpbjogMHB4OyBzaGFwZS1vdXRzaWRl
OiBub25lOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IHNpemU6IDsgc3BlYWstYXM6IG5vcm1hbDsg
c3RvcC1jb2xvcjogcmdiKDAsIDAsIDApOyBzdG9wLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsg
c3Ryb2tlLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBz
dHJva2UtZGFzaG9mZnNldDogMHB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVq
b2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1vcGFjaXR5OiAxOyBzdHJv
a2Utd2lkdGg6IDFweDsgdGFiLXNpemU6IDg7IHRhYmxlLWxheW91dDogYXV0bzsgdGV4dC1hbGln
bjogc3RhcnQ7IHRleHQtYW5jaG9yOiBzdGFydDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0
LWRlY29yYXRpb24tY29sb3I6IHJnYigyNTUsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tbGluZTog
bm9uZTsgdGV4dC1kZWNvcmF0aW9uLXNraXA6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog
c29saWQ7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtaW5kZW50OiAwcHg7
IHRleHQtb3JpZW50YXRpb246IG1peGVkOyB0ZXh0LW92ZXJmbG93OiBjbGlwOyB0ZXh0LXJlbmRl
cmluZzogYXV0bzsgdGV4dC1zaGFkb3c6IG5vbmU7IHRleHQtdHJhbnNmb3JtOiBub25lOyB0ZXh0
LXVuZGVybGluZS1vZmZzZXQ6IGF1dG87IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBhdXRvOyB0
b3A6IGF1dG87IHRvdWNoLWFjdGlvbjogYXV0bzsgdHJhbnNmb3JtOiBub25lOyB0cmFuc2Zvcm0t
Ym94OiB2aWV3LWJveDsgdHJhbnNmb3JtLW9yaWdpbi14OiA7IHRyYW5zZm9ybS1vcmlnaW4teTog
OyB0cmFuc2Zvcm0tb3JpZ2luLXo6IDsgdHJhbnNmb3JtLXN0eWxlOiBmbGF0OyB0cmFuc2l0aW9u
LWRlbGF5OiAwczsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7IHRyYW5zaXRpb24tcHJvcGVydHk6
IGFsbDsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IHVuaWNvZGUtYmlkaTogbm9y
bWFsOyB2ZWN0b3ItZWZmZWN0OiBub25lOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IHZpc2li
aWxpdHk6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogYXV0bzsgd2lkdGg6
IDc4NHB4OyB3aWxsLWNoYW5nZTogYXV0bzsgd29yZC1icmVhazogbm9ybWFsOyB3b3JkLXNwYWNp
bmc6IDBweDsgd29yZC13cmFwOiBub3JtYWw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10Yjsg
eDogMHB4OyB5OiAwcHg7IHotaW5kZXg6IGF1dG87IHpvb206IDE7IC1hcHBsZS1jb2xvci1maWx0
ZXI6IG5vbmU7IC1hcHBsZS1wYXktYnV0dG9uLXN0eWxlOiBibGFjazsgLWFwcGxlLXBheS1idXR0
b24tdHlwZTogcGxhaW47IC1hcHBsZS10cmFpbGluZy13b3JkOiBhdXRvOyAtd2Via2l0LWFwcGVh
cmFuY2U6IG5vbmU7IC13ZWJraXQtYXNwZWN0LXJhdGlvOiBhdXRvOyAtd2Via2l0LWJhY2tkcm9w
LWZpbHRlcjogbm9uZTsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlOyAtd2Vi
a2l0LWJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBv
c2l0ZTogc291cmNlLW92ZXI7IC13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94
OyAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogYXV0bzsgLXdlYmtpdC1ib3JkZXItZml0OiBib3Jk
ZXI7IC13ZWJraXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZzogMHB4OyAtd2Via2l0LWJvcmRl
ci1pbWFnZTogbm9uZTsgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZzogMHB4OyAtd2Vi
a2l0LWJveC1hbGlnbjogc3RyZXRjaDsgLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogc2xp
Y2U7IC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOyAtd2Via2l0LWJveC1mbGV4OiAwOyAt
d2Via2l0LWJveC1mbGV4LWdyb3VwOiAxOyAtd2Via2l0LWJveC1saW5lczogc2luZ2xlOyAtd2Vi
a2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxOyAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7
IC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0OyAtd2Via2l0LWJveC1yZWZsZWN0OiBub25lOyAtd2Vi
a2l0LWJveC1zaGFkb3c6IG5vbmU7IC13ZWJraXQtY29sdW1uLWF4aXM6IGF1dG87IC13ZWJraXQt
Y29sdW1uLWJyZWFrLWFmdGVyOiBhdXRvOyAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGF1
dG87IC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzsgLXdlYmtpdC1jb2x1bW4tcHJv
Z3Jlc3Npb246IG5vcm1hbDsgLXdlYmtpdC1jdXJzb3ItdmlzaWJpbGl0eTogYXV0bzsgLXdlYmtp
dC1mb250LWtlcm5pbmc6IGF1dG87IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87IC13ZWJr
aXQtaHlwaGVuYXRlLWNoYXJhY3RlcjogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUtbGltaXQtYWZ0
ZXI6IGF1dG87IC13ZWJraXQtaHlwaGVuYXRlLWxpbWl0LWJlZm9yZTogYXV0bzsgLXdlYmtpdC1o
eXBoZW5hdGUtbGltaXQtbGluZXM6IG5vLWxpbWl0OyAtd2Via2l0LWh5cGhlbnM6IG1hbnVhbDsg
LXdlYmtpdC1pbml0aWFsLWxldHRlcjogbm9ybWFsOyAtd2Via2l0LWxpbmUtYWxpZ246IG5vbmU7
IC13ZWJraXQtbGluZS1ib3gtY29udGFpbjogYmxvY2sgaW5saW5lIHJlcGxhY2VkOyAtd2Via2l0
LWxpbmUtY2xhbXA6IG5vbmU7IC13ZWJraXQtbGluZS1ncmlkOiBub25lOyAtd2Via2l0LWxpbmUt
c25hcDogbm9uZTsgLXdlYmtpdC1sb2NhbGU6IGF1dG87IC13ZWJraXQtbWFyZ2luLWFmdGVyLWNv
bGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlLWNvbGxhcHNlOiBjb2xsYXBz
ZTsgLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXJn
aW4tdG9wLWNvbGxhcHNlOiBjb2xsYXBzZTsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogbm9uZTsg
LXdlYmtpdC1tYXNrLWJveC1pbWFnZS1vdXRzZXQ6IDBweDsgLXdlYmtpdC1tYXNrLWJveC1pbWFn
ZS1yZXBlYXQ6IHN0cmV0Y2g7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utc2xpY2U6IDAgZmlsbDsg
LXdlYmtpdC1tYXNrLWJveC1pbWFnZS1zb3VyY2U6IG5vbmU7IC13ZWJraXQtbWFzay1ib3gtaW1h
Z2Utd2lkdGg6IGF1dG87IC13ZWJraXQtbWFzay1jbGlwOiBib3JkZXItYm94OyAtd2Via2l0LW1h
c2stY29tcG9zaXRlOiBzb3VyY2Utb3ZlcjsgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lOyAtd2Vi
a2l0LW1hc2stb3JpZ2luOiBib3JkZXItYm94OyAtd2Via2l0LW1hc2stcG9zaXRpb24teDogMCU7
IC13ZWJraXQtbWFzay1wb3NpdGlvbi15OiAwJTsgLXdlYmtpdC1tYXNrLXJlcGVhdDogcmVwZWF0
OyAtd2Via2l0LW1hc2stc2l6ZTogYXV0bzsgLXdlYmtpdC1tYXNrLXNvdXJjZS10eXBlOiBhbHBo
YTsgLXdlYmtpdC1uYnNwLW1vZGU6IG5vcm1hbDsgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6
IGVjb25vbXk7IC13ZWJraXQtcnRsLW9yZGVyaW5nOiBsb2dpY2FsOyAtd2Via2l0LXJ1YnktcG9z
aXRpb246IGJlZm9yZTsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IG5vbmU7IC13ZWJraXQtdGV4dC1l
bXBoYXNpcy1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3Np
dGlvbjogb3ZlciByaWdodDsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBub25lOyAtd2Vi
a2l0LXRleHQtZmlsbC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1vcmllbnRh
dGlvbjogbWl4ZWQ7IC13ZWJraXQtdGV4dC1zZWN1cml0eTogbm9uZTsgLXdlYmtpdC10ZXh0LXNp
emUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiByZ2IoMjU1LCAwLCAw
KTsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyAtd2Via2l0LXRleHQtem9vbTogbm9y
bWFsOyAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogZmxhdDsgLXdlYmtpdC11c2VyLWRyYWc6IGF1
dG87IC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsgLXdlYmtpdC11c2VyLXNlbGVjdDog
dGV4dDsiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xMy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFs
LXhtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14
bWwtZXhwZWN0ZWQudHh0CmluZGV4IDMyNGYzYzdhOTQuLjJjZjlkNzQxM2MgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xMy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0aWFsLXhtbC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLTEzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dApA
QCAtMTkzLDYgKzE5Myw4IEBAIFBBU1Mgb3V0bGluZS13aWR0aAogUEFTUyBvdmVyZmxvdy13cmFw
IAogUEFTUyBvdmVyZmxvdy14IAogUEFTUyBvdmVyZmxvdy15IAorUEFTUyBvdmVyc2Nyb2xsLWJl
aGF2aW9yLXggCitQQVNTIG92ZXJzY3JvbGwtYmVoYXZpb3IteSAKIFBBU1MgcGFkZGluZy1ibG9j
ay1lbmQgCiBQQVNTIHBhZGRpbmctYmxvY2stc3RhcnQgCiBQQVNTIHBhZGRpbmctYm90dG9tIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLWNzc3RleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLWNzc3RleHQtZXhw
ZWN0ZWQudHh0CmluZGV4IDZlZjk2Y2MzMGYuLjRhMWM1MDZhMTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1jc3N0ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tL2Nzc3N0eWxlZGVjbGFyYXRpb24tY3NzdGV4dC1leHBlY3RlZC50eHQKQEAg
LTcsNSArNyw1IEBAIFBBU1MgY3NzVGV4dCBvcmRlcgogUEFTUyBhbm90aGVyIGNzc1RleHQgb3Jk
ZXIgKG5vbi1hbHBoYWJldGljYWwgb3JkZXIpIAogUEFTUyB3aGl0ZXNwYWNlcyBpbiB2YWx1ZSAK
IFBBU1MgaW52YWxpZCBwcm9wZXJ0eSBkb2VzIG5vdCBhcHBlYXIgCi1GQUlMIGNzc1RleHQgb24g
Y29tcHV0ZWQgc3R5bGUgZGVjbGFyYXRpb24gcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nIGFzc2Vy
dF9lcXVhbHM6IGNzc1RleHQgaXMgZW1wdHkgZXhwZWN0ZWQgIiIgYnV0IGdvdCAiYWxpZ24tY29u
dGVudDogbm9ybWFsOyBhbGlnbi1pdGVtczogbm9ybWFsOyBhbGlnbi1zZWxmOiBhdXRvOyBhbGln
bm1lbnQtYmFzZWxpbmU6IGF1dG87IGFsbDogOyBhbHQ6IFwiXCI7IGFuaW1hdGlvbi1kZWxheTog
MHM7IGFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsgYW5pbWF0aW9uLWR1cmF0aW9uOiAwczsg
YW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsg
YW5pbWF0aW9uLW5hbWU6IG5vbmU7IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmlt
YXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9s
bDsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBub3JtYWw7IGJhY2tncm91bmQtY2xpcDogYm9yZGVy
LWJveDsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgYmFja2dyb3VuZC1pbWFn
ZTogbm9uZTsgYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94OyBiYWNrZ3JvdW5kLXBvc2l0
aW9uLXg6IDAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDog
cmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IGF1dG87IGJhc2VsaW5lLXNoaWZ0OiBiYXNlbGluZTsg
YmxvY2stc2l6ZTogMHB4OyBib3JkZXItYmxvY2stZW5kLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsg
Ym9yZGVyLWJsb2NrLWVuZC1zdHlsZTogbm9uZTsgYm9yZGVyLWJsb2NrLWVuZC13aWR0aDogMHB4
OyBib3JkZXItYmxvY2stc3RhcnQtY29sb3I6IHJnYigyNTUsIDAsIDApOyBib3JkZXItYmxvY2st
c3RhcnQtc3R5bGU6IG5vbmU7IGJvcmRlci1ibG9jay1zdGFydC13aWR0aDogMHB4OyBib3JkZXIt
Ym90dG9tLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czog
MHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9tLXN0eWxl
OiBub25lOyBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IGJvcmRlci1jb2xsYXBzZTogc2VwYXJh
dGU7IGJvcmRlci1pbWFnZS1vdXRzZXQ6IDBweDsgYm9yZGVyLWltYWdlLXJlcGVhdDogc3RyZXRj
aDsgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlOyBib3JkZXItaW1hZ2Utc291cmNlOiBub25lOyBi
b3JkZXItaW1hZ2Utd2lkdGg6IDE7IGJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOiByZ2IoMjU1LCAw
LCAwKTsgYm9yZGVyLWlubGluZS1lbmQtc3R5bGU6IG5vbmU7IGJvcmRlci1pbmxpbmUtZW5kLXdp
ZHRoOiAwcHg7IGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6IHJnYigyNTUsIDAsIDApOyBib3Jk
ZXItaW5saW5lLXN0YXJ0LXN0eWxlOiBub25lOyBib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOiAw
cHg7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLWxlZnQtc3R5bGU6
IG5vbmU7IGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7IGJvcmRlci1yaWdodC1jb2xvcjogcmdiKDI1
NSwgMCwgMCk7IGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAw
cHg7IGJvcmRlci10b3AtY29sb3I6IHJnYigyNTUsIDAsIDApOyBib3JkZXItdG9wLWxlZnQtcmFk
aXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7IGJvcmRlci10b3Atc3R5bGU6
IG5vbmU7IGJvcmRlci10b3Atd2lkdGg6IDBweDsgYm90dG9tOiBhdXRvOyBib3gtc2hhZG93OiBu
b25lOyBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgYnJlYWstYWZ0ZXI6IGF1dG87IGJyZWFrLWJl
Zm9yZTogYXV0bzsgYnJlYWstaW5zaWRlOiBhdXRvOyBidWZmZXJlZC1yZW5kZXJpbmc6IGF1dG87
IGNhcHRpb24tc2lkZTogdG9wOyBjYXJldC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGNsZWFyOiBu
b25lOyBjbGlwOiBhdXRvOyBjbGlwLXBhdGg6IG5vbmU7IGNsaXAtcnVsZTogbm9uemVybzsgY29s
b3I6IHJnYigyNTUsIDAsIDApOyBjb2xvci1pbnRlcnBvbGF0aW9uOiBzUkdCOyBjb2xvci1pbnRl
cnBvbGF0aW9uLWZpbHRlcnM6IGxpbmVhclJHQjsgY29sb3ItcmVuZGVyaW5nOiBhdXRvOyBjb2xv
ci1zY2hlbWU6IGF1dG87IGNvbHVtbi1jb3VudDogYXV0bzsgY29sdW1uLWZpbGw6IGJhbGFuY2U7
IGNvbHVtbi1nYXA6IG5vcm1hbDsgY29sdW1uLXJ1bGUtY29sb3I6IHJnYigyNTUsIDAsIDApOyBj
b2x1bW4tcnVsZS1zdHlsZTogbm9uZTsgY29sdW1uLXJ1bGUtd2lkdGg6IDBweDsgY29sdW1uLXNw
YW46IG5vbmU7IGNvbHVtbi13aWR0aDogYXV0bzsgY29udGVudDogOyBjb3VudGVyLWluY3JlbWVu
dDogbm9uZTsgY291bnRlci1yZXNldDogbm9uZTsgY3Vyc29yOiBhdXRvOyBjeDogMHB4OyBjeTog
MHB4OyBkaXJlY3Rpb246IGx0cjsgZGlzcGxheTogYmxvY2s7IGRvbWluYW50LWJhc2VsaW5lOiBh
dXRvOyBlbXB0eS1jZWxsczogc2hvdzsgZmlsbDogcmdiKDAsIDAsIDApOyBmaWxsLW9wYWNpdHk6
IDE7IGZpbGwtcnVsZTogbm9uemVybzsgZmlsdGVyOiBub25lOyBmbGV4LWJhc2lzOiBhdXRvOyBm
bGV4LWRpcmVjdGlvbjogcm93OyBmbGV4LWdyb3c6IDA7IGZsZXgtc2hyaW5rOiAxOyBmbGV4LXdy
YXA6IG5vd3JhcDsgZmxvYXQ6IG5vbmU7IGZsb29kLWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZsb29k
LW9wYWNpdHk6IDE7IGZvbnQtZmFtaWx5OiAtd2Via2l0LXN0YW5kYXJkOyBmb250LWZlYXR1cmUt
c2V0dGluZ3M6IG5vcm1hbDsgZm9udC1vcHRpY2FsLXNpemluZzogYXV0bzsgZm9udC1zaXplOiAx
My4zMzMzMzMwMTU0NDE4OTVweDsgZm9udC1zdHJldGNoOiBub3JtYWw7IGZvbnQtc3R5bGU6IG5v
cm1hbDsgZm9udC1zeW50aGVzaXM6IHN0eWxlIHdlaWdodCBzbWFsbC1jYXBzOyBmb250LXZhcmlh
bnQtYWx0ZXJuYXRlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXZh
cmlhbnQtZWFzdC1hc2lhbjogbm9ybWFsOyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7
IGZvbnQtdmFyaWFudC1udW1lcmljOiBub3JtYWw7IGZvbnQtdmFyaWFudC1wb3NpdGlvbjogbm9y
bWFsOyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFs
OyBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsOiAwZGVnOyBnbHlwaC1vcmllbnRhdGlvbi12
ZXJ0aWNhbDogYXV0bzsgZ3JpZC1hdXRvLWNvbHVtbnM6IGF1dG87IGdyaWQtYXV0by1mbG93OiBy
b3c7IGdyaWQtYXV0by1yb3dzOiBhdXRvOyBncmlkLWNvbHVtbi1lbmQ6IGF1dG87IGdyaWQtY29s
dW1uLXN0YXJ0OiBhdXRvOyBncmlkLXJvdy1lbmQ6IGF1dG87IGdyaWQtcm93LXN0YXJ0OiBhdXRv
OyBncmlkLXRlbXBsYXRlLWFyZWFzOiBub25lOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG5vbmU7
IGdyaWQtdGVtcGxhdGUtcm93czogbm9uZTsgaGFuZ2luZy1wdW5jdHVhdGlvbjogbm9uZTsgaGVp
Z2h0OiAwcHg7IGltYWdlLW9yaWVudGF0aW9uOiBmcm9tLWltYWdlOyBpbWFnZS1yZW5kZXJpbmc6
IGF1dG87IGlubGluZS1zaXplOiA3ODRweDsgaW5zZXQtYmxvY2stZW5kOiBhdXRvOyBpbnNldC1i
bG9jay1zdGFydDogYXV0bzsgaW5zZXQtaW5saW5lLWVuZDogYXV0bzsgaW5zZXQtaW5saW5lLXN0
YXJ0OiBhdXRvOyBpc29sYXRpb246IGF1dG87IGp1c3RpZnktY29udGVudDogbm9ybWFsOyBqdXN0
aWZ5LWl0ZW1zOiBub3JtYWw7IGp1c3RpZnktc2VsZjogYXV0bzsga2VybmluZzogMDsgbGVmdDog
YXV0bzsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgbGlnaHRpbmctY29sb3I6IHJnYigyNTUsIDI1
NSwgMjU1KTsgbGluZS1icmVhazogYXV0bzsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgbGlzdC1zdHls
ZS1pbWFnZTogbm9uZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsgbGlzdC1zdHlsZS10
eXBlOiBkaXNjOyBtYXJnaW4tYmxvY2stZW5kOiAwcHg7IG1hcmdpbi1ibG9jay1zdGFydDogMHB4
OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1pbmxpbmUtZW5kOiAwcHg7IG1hcmdpbi1pbmxp
bmUtc3RhcnQ6IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdp
bi10b3A6IDBweDsgbWFya2VyLWVuZDogbm9uZTsgbWFya2VyLW1pZDogbm9uZTsgbWFya2VyLXN0
YXJ0OiBub25lOyBtYXNrOiBub25lOyBtYXNrLXR5cGU6IGx1bWluYW5jZTsgbWF4LWJsb2NrLXNp
emU6IG5vbmU7IG1heC1oZWlnaHQ6IG5vbmU7IG1heC1pbmxpbmUtc2l6ZTogbm9uZTsgbWF4LXdp
ZHRoOiBub25lOyBtaW4tYmxvY2stc2l6ZTogMHB4OyBtaW4taGVpZ2h0OiAwcHg7IG1pbi1pbmxp
bmUtc2l6ZTogMHB4OyBtaW4td2lkdGg6IDBweDsgbWl4LWJsZW5kLW1vZGU6IG5vcm1hbDsgb2Jq
ZWN0LWZpdDogZmlsbDsgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlOyBvcGFjaXR5OiAxOyBvcmRl
cjogMDsgb3JwaGFuczogYXV0bzsgb3V0bGluZS1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IG91dGxp
bmUtb2Zmc2V0OiAwcHg7IG91dGxpbmUtc3R5bGU6IG5vbmU7IG91dGxpbmUtd2lkdGg6IDBweDsg
b3ZlcmZsb3ctd3JhcDogbm9ybWFsOyBvdmVyZmxvdy14OiB2aXNpYmxlOyBvdmVyZmxvdy15OiB2
aXNpYmxlOyBwYWRkaW5nLWJsb2NrLWVuZDogMHB4OyBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwcHg7
IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRpbmctaW5saW5lLWVuZDogMHB4OyBwYWRkaW5nLWlu
bGluZS1zdGFydDogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBw
YWRkaW5nLXRvcDogMHB4OyBwYWdlLWJyZWFrLWFmdGVyOiBhdXRvOyBwYWdlLWJyZWFrLWJlZm9y
ZTogYXV0bzsgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IHBhaW50LW9yZGVyOiBub3JtYWw7IHBl
cnNwZWN0aXZlOiBub25lOyBwZXJzcGVjdGl2ZS1vcmlnaW4teDogOyBwZXJzcGVjdGl2ZS1vcmln
aW4teTogOyBwb2ludGVyLWV2ZW50czogYXV0bzsgcG9zaXRpb246IHN0YXRpYzsgcXVvdGVzOiBh
dXRvOyByOiAwcHg7IHJlc2l6ZTogbm9uZTsgcmlnaHQ6IGF1dG87IHJvdy1nYXA6IG5vcm1hbDsg
cng6IGF1dG87IHJ5OiBhdXRvOyBzY3JvbGwtYmVoYXZpb3I6IGF1dG87IHNjcm9sbC1wYWRkaW5n
LWJvdHRvbTogMHB4OyBzY3JvbGwtcGFkZGluZy1sZWZ0OiAwcHg7IHNjcm9sbC1wYWRkaW5nLXJp
Z2h0OiAwcHg7IHNjcm9sbC1wYWRkaW5nLXRvcDogMHB4OyBzY3JvbGwtc25hcC1hbGlnbjogbm9u
ZSBub25lOyBzY3JvbGwtc25hcC1tYXJnaW4tYm90dG9tOiAwcHg7IHNjcm9sbC1zbmFwLW1hcmdp
bi1sZWZ0OiAwcHg7IHNjcm9sbC1zbmFwLW1hcmdpbi1yaWdodDogMHB4OyBzY3JvbGwtc25hcC1t
YXJnaW4tdG9wOiAwcHg7IHNjcm9sbC1zbmFwLXR5cGU6IG5vbmU7IHNoYXBlLWltYWdlLXRocmVz
aG9sZDogMDsgc2hhcGUtbWFyZ2luOiAwcHg7IHNoYXBlLW91dHNpZGU6IG5vbmU7IHNoYXBlLXJl
bmRlcmluZzogYXV0bzsgc2l6ZTogOyBzcGVhay1hczogbm9ybWFsOyBzdG9wLWNvbG9yOiByZ2Io
MCwgMCwgMCk7IHN0b3Atb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2UtY29sb3I6IHJn
YmEoMCwgMCwgMCwgMCk7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0
OiAwcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJv
a2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLW9wYWNpdHk6IDE7IHN0cm9rZS13aWR0aDogMXB4OyB0
YWItc2l6ZTogODsgdGFibGUtbGF5b3V0OiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1h
bmNob3I6IHN0YXJ0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtZGVjb3JhdGlvbi1jb2xv
cjogcmdiKDI1NSwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29y
YXRpb24tc2tpcDogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsgdGV4dC1kZWNv
cmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC1vcmllbnRhdGlv
bjogbWl4ZWQ7IHRleHQtb3ZlcmZsb3c6IGNsaXA7IHRleHQtcmVuZGVyaW5nOiBhdXRvOyB0ZXh0
LXNoYWRvdzogbm9uZTsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHRleHQtdW5kZXJsaW5lLW9mZnNl
dDogYXV0bzsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IGF1dG87IHRvcDogYXV0bzsgdG91Y2gt
YWN0aW9uOiBhdXRvOyB0cmFuc2Zvcm06IG5vbmU7IHRyYW5zZm9ybS1ib3g6IHZpZXctYm94OyB0
cmFuc2Zvcm0tb3JpZ2luLXg6IDsgdHJhbnNmb3JtLW9yaWdpbi15OiA7IHRyYW5zZm9ybS1vcmln
aW4tejogOyB0cmFuc2Zvcm0tc3R5bGU6IGZsYXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFu
c2l0aW9uLWR1cmF0aW9uOiAwczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsOyB0cmFuc2l0aW9u
LXRpbWluZy1mdW5jdGlvbjogZWFzZTsgdW5pY29kZS1iaWRpOiBub3JtYWw7IHZlY3Rvci1lZmZl
Y3Q6IG5vbmU7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgdmlzaWJpbGl0eTogdmlzaWJsZTsg
d2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRvOyB3aWR0aDogNzg0cHg7IHdpbGwtY2hh
bmdlOiBhdXRvOyB3b3JkLWJyZWFrOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyB3b3JkLXdy
YXA6IG5vcm1hbDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOyB4OiAwcHg7IHk6IDBweDsg
ei1pbmRleDogYXV0bzsgem9vbTogMTsgLWFwcGxlLWNvbG9yLWZpbHRlcjogbm9uZTsgLWFwcGxl
LXBheS1idXR0b24tc3R5bGU6IGJsYWNrOyAtYXBwbGUtcGF5LWJ1dHRvbi10eXBlOiBwbGFpbjsg
LWFwcGxlLXRyYWlsaW5nLXdvcmQ6IGF1dG87IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLXdl
YmtpdC1hc3BlY3QtcmF0aW86IGF1dG87IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lOyAt
d2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7IC13ZWJraXQtYmFja2dyb3VuZC1j
bGlwOiBib3JkZXItYm94OyAtd2Via2l0LWJhY2tncm91bmQtY29tcG9zaXRlOiBzb3VyY2Utb3Zl
cjsgLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjogcGFkZGluZy1ib3g7IC13ZWJraXQtYmFja2dy
b3VuZC1zaXplOiBhdXRvOyAtd2Via2l0LWJvcmRlci1maXQ6IGJvcmRlcjsgLXdlYmtpdC1ib3Jk
ZXItaG9yaXpvbnRhbC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtYm9yZGVyLWltYWdlOiBub25lOyAt
d2Via2l0LWJvcmRlci12ZXJ0aWNhbC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtYm94LWFsaWduOiBz
dHJldGNoOyAtd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBzbGljZTsgLXdlYmtpdC1ib3gt
ZGlyZWN0aW9uOiBub3JtYWw7IC13ZWJraXQtYm94LWZsZXg6IDA7IC13ZWJraXQtYm94LWZsZXgt
Z3JvdXA6IDE7IC13ZWJraXQtYm94LWxpbmVzOiBzaW5nbGU7IC13ZWJraXQtYm94LW9yZGluYWwt
Z3JvdXA6IDE7IC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsgLXdlYmtpdC1ib3gtcGFj
azogc3RhcnQ7IC13ZWJraXQtYm94LXJlZmxlY3Q6IG5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzog
bm9uZTsgLXdlYmtpdC1jb2x1bW4tYXhpczogYXV0bzsgLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0
ZXI6IGF1dG87IC13ZWJraXQtY29sdW1uLWJyZWFrLWJlZm9yZTogYXV0bzsgLXdlYmtpdC1jb2x1
bW4tYnJlYWstaW5zaWRlOiBhdXRvOyAtd2Via2l0LWNvbHVtbi1wcm9ncmVzc2lvbjogbm9ybWFs
OyAtd2Via2l0LWN1cnNvci12aXNpYmlsaXR5OiBhdXRvOyAtd2Via2l0LWZvbnQta2VybmluZzog
YXV0bzsgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUtY2hh
cmFjdGVyOiBhdXRvOyAtd2Via2l0LWh5cGhlbmF0ZS1saW1pdC1hZnRlcjogYXV0bzsgLXdlYmtp
dC1oeXBoZW5hdGUtbGltaXQtYmVmb3JlOiBhdXRvOyAtd2Via2l0LWh5cGhlbmF0ZS1saW1pdC1s
aW5lczogbm8tbGltaXQ7IC13ZWJraXQtaHlwaGVuczogbWFudWFsOyAtd2Via2l0LWluaXRpYWwt
bGV0dGVyOiBub3JtYWw7IC13ZWJraXQtbGluZS1hbGlnbjogbm9uZTsgLXdlYmtpdC1saW5lLWJv
eC1jb250YWluOiBibG9jayBpbmxpbmUgcmVwbGFjZWQ7IC13ZWJraXQtbGluZS1jbGFtcDogbm9u
ZTsgLXdlYmtpdC1saW5lLWdyaWQ6IG5vbmU7IC13ZWJraXQtbGluZS1zbmFwOiBub25lOyAtd2Vi
a2l0LWxvY2FsZTogYXV0bzsgLXdlYmtpdC1tYXJnaW4tYWZ0ZXItY29sbGFwc2U6IGNvbGxhcHNl
OyAtd2Via2l0LW1hcmdpbi1iZWZvcmUtY29sbGFwc2U6IGNvbGxhcHNlOyAtd2Via2l0LW1hcmdp
bi1ib3R0b20tY29sbGFwc2U6IGNvbGxhcHNlOyAtd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6
IGNvbGxhcHNlOyAtd2Via2l0LW1hc2stYm94LWltYWdlOiBub25lOyAtd2Via2l0LW1hc2stYm94
LWltYWdlLW91dHNldDogMHB4OyAtd2Via2l0LW1hc2stYm94LWltYWdlLXJlcGVhdDogc3RyZXRj
aDsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1zbGljZTogMCBmaWxsOyAtd2Via2l0LW1hc2stYm94
LWltYWdlLXNvdXJjZTogbm9uZTsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS13aWR0aDogYXV0bzsg
LXdlYmtpdC1tYXNrLWNsaXA6IGJvcmRlci1ib3g7IC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHNv
dXJjZS1vdmVyOyAtd2Via2l0LW1hc2staW1hZ2U6IG5vbmU7IC13ZWJraXQtbWFzay1vcmlnaW46
IGJvcmRlci1ib3g7IC13ZWJraXQtbWFzay1wb3NpdGlvbi14OiAwJTsgLXdlYmtpdC1tYXNrLXBv
c2l0aW9uLXk6IDAlOyAtd2Via2l0LW1hc2stcmVwZWF0OiByZXBlYXQ7IC13ZWJraXQtbWFzay1z
aXplOiBhdXRvOyAtd2Via2l0LW1hc2stc291cmNlLXR5cGU6IGFscGhhOyAtd2Via2l0LW5ic3At
bW9kZTogbm9ybWFsOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogYXV0bzsgLXdlYmtpdC1w
cmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7IC13ZWJraXQtcnRsLW9yZGVyaW5nOiBsb2dpY2Fs
OyAtd2Via2l0LXJ1YnktcG9zaXRpb246IGJlZm9yZTsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IG5v
bmU7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13ZWJraXQt
dGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogb3ZlciByaWdodDsgLXdlYmtpdC10ZXh0LWVtcGhhc2lz
LXN0eWxlOiBub25lOyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IC13
ZWJraXQtdGV4dC1vcmllbnRhdGlvbjogbWl4ZWQ7IC13ZWJraXQtdGV4dC1zZWN1cml0eTogbm9u
ZTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLWNv
bG9yOiByZ2IoMjU1LCAwLCAwKTsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyAtd2Vi
a2l0LXRleHQtem9vbTogbm9ybWFsOyAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IGRlZmF1bHQ7IC13
ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBmbGF0OyAtd2Via2l0LXVzZXItZHJhZzogYXV0bzsgLXdl
YmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5OyAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OyIK
K0ZBSUwgY3NzVGV4dCBvbiBjb21wdXRlZCBzdHlsZSBkZWNsYXJhdGlvbiByZXR1cm5zIHRoZSBl
bXB0eSBzdHJpbmcgYXNzZXJ0X2VxdWFsczogY3NzVGV4dCBpcyBlbXB0eSBleHBlY3RlZCAiIiBi
dXQgZ290ICJhbGlnbi1jb250ZW50OiBub3JtYWw7IGFsaWduLWl0ZW1zOiBub3JtYWw7IGFsaWdu
LXNlbGY6IGF1dG87IGFsaWdubWVudC1iYXNlbGluZTogYXV0bzsgYWxsOiA7IGFsdDogXCJcIjsg
YW5pbWF0aW9uLWRlbGF5OiAwczsgYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOyBhbmltYXRp
b24tZHVyYXRpb246IDBzOyBhbmltYXRpb24tZmlsbC1tb2RlOiBub25lOyBhbmltYXRpb24taXRl
cmF0aW9uLWNvdW50OiAxOyBhbmltYXRpb24tbmFtZTogbm9uZTsgYW5pbWF0aW9uLXBsYXktc3Rh
dGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IGJhY2tncm91bmQt
YXR0YWNobWVudDogc2Nyb2xsOyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG5vcm1hbDsgYmFja2dy
b3VuZC1jbGlwOiBib3JkZXItYm94OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAp
OyBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyBiYWNrZ3JvdW5kLW9yaWdpbjogcGFkZGluZy1ib3g7
IGJhY2tncm91bmQtcG9zaXRpb24teDogMCU7IGJhY2tncm91bmQtcG9zaXRpb24teTogMCU7IGJh
Y2tncm91bmQtcmVwZWF0OiByZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogYXV0bzsgYmFzZWxpbmUt
c2hpZnQ6IGJhc2VsaW5lOyBibG9jay1zaXplOiAwcHg7IGJvcmRlci1ibG9jay1lbmQtY29sb3I6
IHJnYigyNTUsIDAsIDApOyBib3JkZXItYmxvY2stZW5kLXN0eWxlOiBub25lOyBib3JkZXItYmxv
Y2stZW5kLXdpZHRoOiAwcHg7IGJvcmRlci1ibG9jay1zdGFydC1jb2xvcjogcmdiKDI1NSwgMCwg
MCk7IGJvcmRlci1ibG9jay1zdGFydC1zdHlsZTogbm9uZTsgYm9yZGVyLWJsb2NrLXN0YXJ0LXdp
ZHRoOiAwcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyNTUsIDAsIDApOyBib3JkZXItYm90
dG9tLWxlZnQtcmFkaXVzOiAwcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7IGJv
cmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsgYm9yZGVy
LWNvbGxhcHNlOiBzZXBhcmF0ZTsgYm9yZGVyLWltYWdlLW91dHNldDogMHB4OyBib3JkZXItaW1h
Z2UtcmVwZWF0OiBzdHJldGNoOyBib3JkZXItaW1hZ2Utc2xpY2U6IDEwMCU7IGJvcmRlci1pbWFn
ZS1zb3VyY2U6IG5vbmU7IGJvcmRlci1pbWFnZS13aWR0aDogMTsgYm9yZGVyLWlubGluZS1lbmQt
Y29sb3I6IHJnYigyNTUsIDAsIDApOyBib3JkZXItaW5saW5lLWVuZC1zdHlsZTogbm9uZTsgYm9y
ZGVyLWlubGluZS1lbmQtd2lkdGg6IDBweDsgYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcjogcmdi
KDI1NSwgMCwgMCk7IGJvcmRlci1pbmxpbmUtc3RhcnQtc3R5bGU6IG5vbmU7IGJvcmRlci1pbmxp
bmUtc3RhcnQtd2lkdGg6IDBweDsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigyNTUsIDAsIDApOyBi
b3JkZXItbGVmdC1zdHlsZTogbm9uZTsgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDsgYm9yZGVyLXJp
Z2h0LWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lOyBib3Jk
ZXItcmlnaHQtd2lkdGg6IDBweDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IGJv
cmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsg
Ym9yZGVyLXRvcC1zdHlsZTogbm9uZTsgYm9yZGVyLXRvcC13aWR0aDogMHB4OyBib3R0b206IGF1
dG87IGJveC1zaGFkb3c6IG5vbmU7IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyBicmVhay1hZnRl
cjogYXV0bzsgYnJlYWstYmVmb3JlOiBhdXRvOyBicmVhay1pbnNpZGU6IGF1dG87IGJ1ZmZlcmVk
LXJlbmRlcmluZzogYXV0bzsgY2FwdGlvbi1zaWRlOiB0b3A7IGNhcmV0LWNvbG9yOiByZ2IoMjU1
LCAwLCAwKTsgY2xlYXI6IG5vbmU7IGNsaXA6IGF1dG87IGNsaXAtcGF0aDogbm9uZTsgY2xpcC1y
dWxlOiBub256ZXJvOyBjb2xvcjogcmdiKDI1NSwgMCwgMCk7IGNvbG9yLWludGVycG9sYXRpb246
IHNSR0I7IGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVyczogbGluZWFyUkdCOyBjb2xvci1yZW5k
ZXJpbmc6IGF1dG87IGNvbG9yLXNjaGVtZTogYXV0bzsgY29sdW1uLWNvdW50OiBhdXRvOyBjb2x1
bW4tZmlsbDogYmFsYW5jZTsgY29sdW1uLWdhcDogbm9ybWFsOyBjb2x1bW4tcnVsZS1jb2xvcjog
cmdiKDI1NSwgMCwgMCk7IGNvbHVtbi1ydWxlLXN0eWxlOiBub25lOyBjb2x1bW4tcnVsZS13aWR0
aDogMHB4OyBjb2x1bW4tc3Bhbjogbm9uZTsgY29sdW1uLXdpZHRoOiBhdXRvOyBjb250ZW50OiA7
IGNvdW50ZXItaW5jcmVtZW50OiBub25lOyBjb3VudGVyLXJlc2V0OiBub25lOyBjdXJzb3I6IGF1
dG87IGN4OiAwcHg7IGN5OiAwcHg7IGRpcmVjdGlvbjogbHRyOyBkaXNwbGF5OiBibG9jazsgZG9t
aW5hbnQtYmFzZWxpbmU6IGF1dG87IGVtcHR5LWNlbGxzOiBzaG93OyBmaWxsOiByZ2IoMCwgMCwg
MCk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBub256ZXJvOyBmaWx0ZXI6IG5vbmU7IGZs
ZXgtYmFzaXM6IGF1dG87IGZsZXgtZGlyZWN0aW9uOiByb3c7IGZsZXgtZ3JvdzogMDsgZmxleC1z
aHJpbms6IDE7IGZsZXgtd3JhcDogbm93cmFwOyBmbG9hdDogbm9uZTsgZmxvb2QtY29sb3I6IHJn
YigwLCAwLCAwKTsgZmxvb2Qtb3BhY2l0eTogMTsgZm9udC1mYW1pbHk6IC13ZWJraXQtc3RhbmRh
cmQ7IGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOyBmb250LW9wdGljYWwtc2l6aW5nOiBh
dXRvOyBmb250LXNpemU6IDEzLjMzMzMzMzAxNTQ0MTg5NXB4OyBmb250LXN0cmV0Y2g6IG5vcm1h
bDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXN5bnRoZXNpczogc3R5bGUgd2VpZ2h0IHNtYWxs
LWNhcHM7IGZvbnQtdmFyaWFudC1hbHRlcm5hdGVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBz
OiBub3JtYWw7IGZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOiBub3JtYWw7IGZvbnQtdmFyaWFudC1s
aWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LW51bWVyaWM6IG5vcm1hbDsgZm9udC12YXJp
YW50LXBvc2l0aW9uOiBub3JtYWw7IGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IGZv
bnQtd2VpZ2h0OiBub3JtYWw7IGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWw6IDBkZWc7IGds
eXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsOiBhdXRvOyBncmlkLWF1dG8tY29sdW1uczogYXV0bzsg
Z3JpZC1hdXRvLWZsb3c6IHJvdzsgZ3JpZC1hdXRvLXJvd3M6IGF1dG87IGdyaWQtY29sdW1uLWVu
ZDogYXV0bzsgZ3JpZC1jb2x1bW4tc3RhcnQ6IGF1dG87IGdyaWQtcm93LWVuZDogYXV0bzsgZ3Jp
ZC1yb3ctc3RhcnQ6IGF1dG87IGdyaWQtdGVtcGxhdGUtYXJlYXM6IG5vbmU7IGdyaWQtdGVtcGxh
dGUtY29sdW1uczogbm9uZTsgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBub25lOyBoYW5naW5nLXB1bmN0
dWF0aW9uOiBub25lOyBoZWlnaHQ6IDBweDsgaW1hZ2Utb3JpZW50YXRpb246IGZyb20taW1hZ2U7
IGltYWdlLXJlbmRlcmluZzogYXV0bzsgaW5saW5lLXNpemU6IDc4NHB4OyBpbnNldC1ibG9jay1l
bmQ6IGF1dG87IGluc2V0LWJsb2NrLXN0YXJ0OiBhdXRvOyBpbnNldC1pbmxpbmUtZW5kOiBhdXRv
OyBpbnNldC1pbmxpbmUtc3RhcnQ6IGF1dG87IGlzb2xhdGlvbjogYXV0bzsganVzdGlmeS1jb250
ZW50OiBub3JtYWw7IGp1c3RpZnktaXRlbXM6IG5vcm1hbDsganVzdGlmeS1zZWxmOiBhdXRvOyBr
ZXJuaW5nOiAwOyBsZWZ0OiBhdXRvOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBsaWdodGluZy1j
b2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBsaW5lLWJyZWFrOiBhdXRvOyBsaW5lLWhlaWdodDog
bm9ybWFsOyBsaXN0LXN0eWxlLWltYWdlOiBub25lOyBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRz
aWRlOyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IG1hcmdpbi1ibG9jay1lbmQ6IDBweDsgbWFyZ2lu
LWJsb2NrLXN0YXJ0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWlubGluZS1lbmQ6
IDBweDsgbWFyZ2luLWlubGluZS1zdGFydDogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4t
cmlnaHQ6IDBweDsgbWFyZ2luLXRvcDogMHB4OyBtYXJrZXItZW5kOiBub25lOyBtYXJrZXItbWlk
OiBub25lOyBtYXJrZXItc3RhcnQ6IG5vbmU7IG1hc2s6IG5vbmU7IG1hc2stdHlwZTogbHVtaW5h
bmNlOyBtYXgtYmxvY2stc2l6ZTogbm9uZTsgbWF4LWhlaWdodDogbm9uZTsgbWF4LWlubGluZS1z
aXplOiBub25lOyBtYXgtd2lkdGg6IG5vbmU7IG1pbi1ibG9jay1zaXplOiAwcHg7IG1pbi1oZWln
aHQ6IDBweDsgbWluLWlubGluZS1zaXplOiAwcHg7IG1pbi13aWR0aDogMHB4OyBtaXgtYmxlbmQt
bW9kZTogbm9ybWFsOyBvYmplY3QtZml0OiBmaWxsOyBvYmplY3QtcG9zaXRpb246IDUwJSA1MCU7
IG9wYWNpdHk6IDE7IG9yZGVyOiAwOyBvcnBoYW5zOiBhdXRvOyBvdXRsaW5lLWNvbG9yOiByZ2Io
MjU1LCAwLCAwKTsgb3V0bGluZS1vZmZzZXQ6IDBweDsgb3V0bGluZS1zdHlsZTogbm9uZTsgb3V0
bGluZS13aWR0aDogMHB4OyBvdmVyZmxvdy13cmFwOiBub3JtYWw7IG92ZXJmbG93LXg6IHZpc2li
bGU7IG92ZXJmbG93LXk6IHZpc2libGU7IG92ZXJzY3JvbGwtYmVoYXZpb3IteDogYXV0bzsgb3Zl
cnNjcm9sbC1iZWhhdmlvci15OiBhdXRvOyBwYWRkaW5nLWJsb2NrLWVuZDogMHB4OyBwYWRkaW5n
LWJsb2NrLXN0YXJ0OiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRpbmctaW5saW5lLWVu
ZDogMHB4OyBwYWRkaW5nLWlubGluZS1zdGFydDogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFk
ZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDogMHB4OyBwYWdlLWJyZWFrLWFmdGVyOiBhdXRv
OyBwYWdlLWJyZWFrLWJlZm9yZTogYXV0bzsgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IHBhaW50
LW9yZGVyOiBub3JtYWw7IHBlcnNwZWN0aXZlOiBub25lOyBwZXJzcGVjdGl2ZS1vcmlnaW4teDog
OyBwZXJzcGVjdGl2ZS1vcmlnaW4teTogOyBwb2ludGVyLWV2ZW50czogYXV0bzsgcG9zaXRpb246
IHN0YXRpYzsgcXVvdGVzOiBhdXRvOyByOiAwcHg7IHJlc2l6ZTogbm9uZTsgcmlnaHQ6IGF1dG87
IHJvdy1nYXA6IG5vcm1hbDsgcng6IGF1dG87IHJ5OiBhdXRvOyBzY3JvbGwtYmVoYXZpb3I6IGF1
dG87IHNjcm9sbC1wYWRkaW5nLWJvdHRvbTogMHB4OyBzY3JvbGwtcGFkZGluZy1sZWZ0OiAwcHg7
IHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAwcHg7IHNjcm9sbC1wYWRkaW5nLXRvcDogMHB4OyBzY3Jv
bGwtc25hcC1hbGlnbjogbm9uZSBub25lOyBzY3JvbGwtc25hcC1tYXJnaW4tYm90dG9tOiAwcHg7
IHNjcm9sbC1zbmFwLW1hcmdpbi1sZWZ0OiAwcHg7IHNjcm9sbC1zbmFwLW1hcmdpbi1yaWdodDog
MHB4OyBzY3JvbGwtc25hcC1tYXJnaW4tdG9wOiAwcHg7IHNjcm9sbC1zbmFwLXR5cGU6IG5vbmU7
IHNoYXBlLWltYWdlLXRocmVzaG9sZDogMDsgc2hhcGUtbWFyZ2luOiAwcHg7IHNoYXBlLW91dHNp
ZGU6IG5vbmU7IHNoYXBlLXJlbmRlcmluZzogYXV0bzsgc2l6ZTogOyBzcGVhay1hczogbm9ybWFs
OyBzdG9wLWNvbG9yOiByZ2IoMCwgMCwgMCk7IHN0b3Atb3BhY2l0eTogMTsgc3Ryb2tlOiBub25l
OyBzdHJva2UtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7
IHN0cm9rZS1kYXNob2Zmc2V0OiAwcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGlu
ZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLW9wYWNpdHk6IDE7IHN0
cm9rZS13aWR0aDogMXB4OyB0YWItc2l6ZTogODsgdGFibGUtbGF5b3V0OiBhdXRvOyB0ZXh0LWFs
aWduOiBzdGFydDsgdGV4dC1hbmNob3I6IHN0YXJ0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRl
eHQtZGVjb3JhdGlvbi1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbi1saW5l
OiBub25lOyB0ZXh0LWRlY29yYXRpb24tc2tpcDogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxl
OiBzb2xpZDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1pbmRlbnQ6IDBw
eDsgdGV4dC1vcmllbnRhdGlvbjogbWl4ZWQ7IHRleHQtb3ZlcmZsb3c6IGNsaXA7IHRleHQtcmVu
ZGVyaW5nOiBhdXRvOyB0ZXh0LXNoYWRvdzogbm9uZTsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHRl
eHQtdW5kZXJsaW5lLW9mZnNldDogYXV0bzsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IGF1dG87
IHRvcDogYXV0bzsgdG91Y2gtYWN0aW9uOiBhdXRvOyB0cmFuc2Zvcm06IG5vbmU7IHRyYW5zZm9y
bS1ib3g6IHZpZXctYm94OyB0cmFuc2Zvcm0tb3JpZ2luLXg6IDsgdHJhbnNmb3JtLW9yaWdpbi15
OiA7IHRyYW5zZm9ybS1vcmlnaW4tejogOyB0cmFuc2Zvcm0tc3R5bGU6IGZsYXQ7IHRyYW5zaXRp
b24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwczsgdHJhbnNpdGlvbi1wcm9wZXJ0
eTogYWxsOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgdW5pY29kZS1iaWRpOiBu
b3JtYWw7IHZlY3Rvci1lZmZlY3Q6IG5vbmU7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgdmlz
aWJpbGl0eTogdmlzaWJsZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBhdXRvOyB3aWR0
aDogNzg0cHg7IHdpbGwtY2hhbmdlOiBhdXRvOyB3b3JkLWJyZWFrOiBub3JtYWw7IHdvcmQtc3Bh
Y2luZzogMHB4OyB3b3JkLXdyYXA6IG5vcm1hbDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRi
OyB4OiAwcHg7IHk6IDBweDsgei1pbmRleDogYXV0bzsgem9vbTogMTsgLWFwcGxlLWNvbG9yLWZp
bHRlcjogbm9uZTsgLWFwcGxlLXBheS1idXR0b24tc3R5bGU6IGJsYWNrOyAtYXBwbGUtcGF5LWJ1
dHRvbi10eXBlOiBwbGFpbjsgLWFwcGxlLXRyYWlsaW5nLXdvcmQ6IGF1dG87IC13ZWJraXQtYXBw
ZWFyYW5jZTogbm9uZTsgLXdlYmtpdC1hc3BlY3QtcmF0aW86IGF1dG87IC13ZWJraXQtYmFja2Ry
b3AtZmlsdGVyOiBub25lOyAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7IC13
ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94OyAtd2Via2l0LWJhY2tncm91bmQtY29t
cG9zaXRlOiBzb3VyY2Utb3ZlcjsgLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjogcGFkZGluZy1i
b3g7IC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBhdXRvOyAtd2Via2l0LWJvcmRlci1maXQ6IGJv
cmRlcjsgLXdlYmtpdC1ib3JkZXItaG9yaXpvbnRhbC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtYm9y
ZGVyLWltYWdlOiBub25lOyAtd2Via2l0LWJvcmRlci12ZXJ0aWNhbC1zcGFjaW5nOiAwcHg7IC13
ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOyAtd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBz
bGljZTsgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7IC13ZWJraXQtYm94LWZsZXg6IDA7
IC13ZWJraXQtYm94LWZsZXgtZ3JvdXA6IDE7IC13ZWJraXQtYm94LWxpbmVzOiBzaW5nbGU7IC13
ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7IC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRh
bDsgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7IC13ZWJraXQtYm94LXJlZmxlY3Q6IG5vbmU7IC13
ZWJraXQtYm94LXNoYWRvdzogbm9uZTsgLXdlYmtpdC1jb2x1bW4tYXhpczogYXV0bzsgLXdlYmtp
dC1jb2x1bW4tYnJlYWstYWZ0ZXI6IGF1dG87IC13ZWJraXQtY29sdW1uLWJyZWFrLWJlZm9yZTog
YXV0bzsgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRvOyAtd2Via2l0LWNvbHVtbi1w
cm9ncmVzc2lvbjogbm9ybWFsOyAtd2Via2l0LWN1cnNvci12aXNpYmlsaXR5OiBhdXRvOyAtd2Vi
a2l0LWZvbnQta2VybmluZzogYXV0bzsgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bzsgLXdl
YmtpdC1oeXBoZW5hdGUtY2hhcmFjdGVyOiBhdXRvOyAtd2Via2l0LWh5cGhlbmF0ZS1saW1pdC1h
ZnRlcjogYXV0bzsgLXdlYmtpdC1oeXBoZW5hdGUtbGltaXQtYmVmb3JlOiBhdXRvOyAtd2Via2l0
LWh5cGhlbmF0ZS1saW1pdC1saW5lczogbm8tbGltaXQ7IC13ZWJraXQtaHlwaGVuczogbWFudWFs
OyAtd2Via2l0LWluaXRpYWwtbGV0dGVyOiBub3JtYWw7IC13ZWJraXQtbGluZS1hbGlnbjogbm9u
ZTsgLXdlYmtpdC1saW5lLWJveC1jb250YWluOiBibG9jayBpbmxpbmUgcmVwbGFjZWQ7IC13ZWJr
aXQtbGluZS1jbGFtcDogbm9uZTsgLXdlYmtpdC1saW5lLWdyaWQ6IG5vbmU7IC13ZWJraXQtbGlu
ZS1zbmFwOiBub25lOyAtd2Via2l0LWxvY2FsZTogYXV0bzsgLXdlYmtpdC1tYXJnaW4tYWZ0ZXIt
Y29sbGFwc2U6IGNvbGxhcHNlOyAtd2Via2l0LW1hcmdpbi1iZWZvcmUtY29sbGFwc2U6IGNvbGxh
cHNlOyAtd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U6IGNvbGxhcHNlOyAtd2Via2l0LW1h
cmdpbi10b3AtY29sbGFwc2U6IGNvbGxhcHNlOyAtd2Via2l0LW1hc2stYm94LWltYWdlOiBub25l
OyAtd2Via2l0LW1hc2stYm94LWltYWdlLW91dHNldDogMHB4OyAtd2Via2l0LW1hc2stYm94LWlt
YWdlLXJlcGVhdDogc3RyZXRjaDsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1zbGljZTogMCBmaWxs
OyAtd2Via2l0LW1hc2stYm94LWltYWdlLXNvdXJjZTogbm9uZTsgLXdlYmtpdC1tYXNrLWJveC1p
bWFnZS13aWR0aDogYXV0bzsgLXdlYmtpdC1tYXNrLWNsaXA6IGJvcmRlci1ib3g7IC13ZWJraXQt
bWFzay1jb21wb3NpdGU6IHNvdXJjZS1vdmVyOyAtd2Via2l0LW1hc2staW1hZ2U6IG5vbmU7IC13
ZWJraXQtbWFzay1vcmlnaW46IGJvcmRlci1ib3g7IC13ZWJraXQtbWFzay1wb3NpdGlvbi14OiAw
JTsgLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXk6IDAlOyAtd2Via2l0LW1hc2stcmVwZWF0OiByZXBl
YXQ7IC13ZWJraXQtbWFzay1zaXplOiBhdXRvOyAtd2Via2l0LW1hc2stc291cmNlLXR5cGU6IGFs
cGhhOyAtd2Via2l0LW5ic3AtbW9kZTogbm9ybWFsOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGlu
ZzogYXV0bzsgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7IC13ZWJraXQtcnRs
LW9yZGVyaW5nOiBsb2dpY2FsOyAtd2Via2l0LXJ1YnktcG9zaXRpb246IGJlZm9yZTsgLXdlYmtp
dC10ZXh0LWNvbWJpbmU6IG5vbmU7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1jb2xvcjogcmdiKDI1
NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogb3ZlciByaWdodDsgLXdl
YmtpdC10ZXh0LWVtcGhhc2lzLXN0eWxlOiBub25lOyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjog
cmdiKDI1NSwgMCwgMCk7IC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbjogbWl4ZWQ7IC13ZWJraXQt
dGV4dC1zZWN1cml0eTogbm9uZTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAtd2Vi
a2l0LXRleHQtc3Ryb2tlLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgLXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aDogMHB4OyAtd2Via2l0LXRleHQtem9vbTogbm9ybWFsOyAtd2Via2l0LXRvdWNoLWNh
bGxvdXQ6IGRlZmF1bHQ7IC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBmbGF0OyAtd2Via2l0LXVz
ZXItZHJhZzogYXV0bzsgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5OyAtd2Via2l0LXVz
ZXItc2VsZWN0OiB0ZXh0OyIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9w
LWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9hbGwtcHJvcC1pbml0
aWFsLXhtbC1leHBlY3RlZC50eHQKaW5kZXggN2VjYzhkZDk5Ny4uYTI3YTRhMDg3MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvYWxsLXByb3AtaW5pdGlhbC14bWwtZXhwZWN0ZWQudHh0CkBA
IC0xOTMsNiArMTkzLDggQEAgUEFTUyBvdXRsaW5lLXdpZHRoCiBQQVNTIG92ZXJmbG93LXdyYXAg
CiBQQVNTIG92ZXJmbG93LXggCiBQQVNTIG92ZXJmbG93LXkgCitQQVNTIG92ZXJzY3JvbGwtYmVo
YXZpb3IteCAKK1BBU1Mgb3ZlcnNjcm9sbC1iZWhhdmlvci15IAogUEFTUyBwYWRkaW5nLWJsb2Nr
LWVuZCAKIFBBU1MgcGFkZGluZy1ibG9jay1zdGFydCAKIFBBU1MgcGFkZGluZy1ib3R0b20gCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IGEzZjEzMzhiMzYuLmI5MmI4ZWJhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMDYwLDYgKzMwNjAsMTIg
QEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3Bl
cnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2wuY3JlYXRlVmFsdWUoc3R5bGUub3ZlcmZsb3dYKCkpOwogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5T3ZlcmZsb3dZOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1
ZShzdHlsZS5vdmVyZmxvd1koKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xs
QmVoYXZpb3I6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0
ZDo6bWF4KHN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvclgoKSwgc3R5bGUub3ZlcnNjcm9sbEJlaGF2
aW9yWSgpKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgor
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vdmVyc2Ny
b2xsQmVoYXZpb3JYKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2
aW9yWToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUu
b3ZlcnNjcm9sbEJlaGF2aW9yWSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdU
b3A6CiAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGFkZGluZ09yTWFyZ2luUGl4ZWxW
YWx1ZTwmUmVuZGVyU3R5bGU6OnBhZGRpbmdUb3AsICZSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29t
cHV0ZWRDU1NQYWRkaW5nVG9wPihzdHlsZSwgcmVuZGVyZXIpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5UGFkZGluZ1JpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKaW5kZXggYTNjNzZjZGRmZi4uYzVmMjQ2MTZkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiTGluZUNsYW1wVmFsdWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNv
bnN0YW50cy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlRGVmcy5oIgorI2luY2x1ZGUgIlNj
cm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCiAjaW5jbHVkZSAiVGhlbWVUeXBl
cy5oIgogI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCkBAIC0yMjA1LDYgKzIyMDYsNDIgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93KCkgY29u
c3QKICAgICByZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7CiB9CiAKK3RlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyc2Nyb2xsQmVoYXZpb3Ig
YmVoYXZpb3IpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKKyAgICBzd2l0Y2ggKGJl
aGF2aW9yKSB7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW46CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZp
b3I6OkF1dG86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNW
YWx1ZUlEKCkpOworCisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENT
U1ZhbHVlQ29udGFpbjoKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFp
bjsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhh
dmlvcjo6Tm9uZTsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIE92ZXJz
Y3JvbGxCZWhhdmlvcjo6QXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2
aW9yOjpBdXRvOworfQorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoQnJlYWtCZXR3ZWVuIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IDJhY2IwOWMx
MjcuLmNmYWVmZDk2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAt
MzI4OSw2ICszMjg5LDUzIEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53
My5vcmcvVFIvY3NzLW92ZXJmbG93LTMvI3Byb3BkZWYtb3ZlcmZsb3cteSIKICAgICAgICAgICAg
IH0KICAgICAgICAgfSwKKyAgICAgICAgIm92ZXJzY3JvbGwtYmVoYXZpb3IiOiB7CisgICAgICAg
ICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJsb25naGFuZHMi
OiBbCisgICAgICAgICAgICAgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiLAorICAgICAg
ICAgICAgICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlvci15IgorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgInNldHRpbmdzLWZsYWciOiAib3ZlcnNjcm9sbEJlaGF2aW9yIgor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAi
c3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vb3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9y
IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib3ZlcnNjcm9sbC1iZWhhdmlv
ci14IjogeworICAgICAgICAgICAgInZhbHVlcyI6IFsKKyAgICAgICAgICAgICAgICAiY29udGFp
biIsCisgICAgICAgICAgICAgICAgIm5vbmUiLAorICAgICAgICAgICAgICAgICJhdXRvIgorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CisgICAgICAg
ICAgICAgICAgInNldHRpbmdzLWZsYWciOiAib3ZlcnNjcm9sbEJlaGF2aW9yIgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICJzdGF0dXMiOiB7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJpbiBkZXZlbG9wbWVudCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNh
dGlvbiI6IHsKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd2ljZy5naXRodWIuaW8v
b3ZlcnNjcm9sbC1iZWhhdmlvci8jcHJvcGRlZi1vdmVyc2Nyb2xsLWJlaGF2aW9yLXgiCisgICAg
ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiB7
CisgICAgICAgICAgICAidmFsdWVzIjogWworICAgICAgICAgICAgICAgICJjb250YWluIiwKKyAg
ICAgICAgICAgICAgICAibm9uZSIsCisgICAgICAgICAgICAgICAgImF1dG8iCisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAg
ICAic2V0dGluZ3MtZmxhZyI6ICJvdmVyc2Nyb2xsQmVoYXZpb3IiCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInN0YXR1cyI6IHsKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogImluIGRl
dmVsb3BtZW50IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjog
eworICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Ny
b2xsLWJlaGF2aW9yLyNwcm9wZGVmLW92ZXJzY3JvbGwtYmVoYXZpb3IteSIKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSwKICAgICAgICAgInBhZGRpbmciOiB7CiAgICAgICAgICAgICAiY29kZWdl
bi1wcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICJsb25naGFuZHMiOiBbCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDZiYWMwMDMyNjYuLmM4Y2ZmN2E2YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzkzLDYgKzEzOTMs
OSBAQCBwaW5jaC16b29tCiAvLyBhdXRvCiBzbW9vdGgKIAorLy8gb3ZlcnNjcm9sbC1iZWhhdmlv
cgorLy8gY29udGFpbgorCiAvLyBoYW5naW5nLXB1bmN0dWF0aW9uCiBhbGxvdy1lbmQKIGZpcnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IGEwMmE4MTkwYjguLjEx
OGFlYTEyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yNTUs
NiArMjU1LDggQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRW
YWx1ZSh3ZWJraXRNYXJnaW5Db2xsYXBzZVNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBnZXQyVmFsdWVzKG92ZXJmbG93U2hvcnRoYW5k
KCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3I6CisgICAgICAgIHJl
dHVybiBnZXQyVmFsdWVzKG92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZCgpKTsKICAgICBjYXNl
IENTU1Byb3BlcnR5UGFkZGluZzoKICAgICAgICAgcmV0dXJuIGdldDRWYWx1ZXMocGFkZGluZ1No
b3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0Jsb2NrOgpAQCAtMTE3Nyw2
ICsxMTc5LDEwIEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmFzVGV4dCgpIGNvbnN0CiAgICAg
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgogICAgICAgICAgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJmbG93OwogICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclg6Cisg
ICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yWToKKyAgICAgICAg
ICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZp
b3I7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
UGFkZGluZ1RvcDoKICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CiAg
ICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCmluZGV4IDVhN2Q4MDRkYWQuLmQ3
Y2NjMWMyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmNwcApAQCAtNzYsNiArNzYsNyBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250
ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzaGVldEJhcwogI2VuZGlm
CiAgICAgZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5kZWZl
cnJlZENTU1BhcnNlckVuYWJsZWQoKTsKICAgICBzY3JvbGxCZWhhdmlvckVuYWJsZWQgPSBkb2N1
bWVudC5zZXR0aW5ncygpLkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoKTsKKyAgICBv
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5vdmVyc2Nyb2xs
QmVoYXZpb3JFbmFibGVkKCk7CiAgICAgdXNlU3lzdGVtQXBwZWFyYW5jZSA9IGRvY3VtZW50LnBh
Z2UoKSA/IGRvY3VtZW50LnBhZ2UoKS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpIDogZmFsc2U7CiB9
CiAKQEAgLTEwMiw2ICsxMDMsNyBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCYgYSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYikKICAgICAgICAgJiYgYS5kZWZlcnJl
ZENTU1BhcnNlckVuYWJsZWQgPT0gYi5kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQKICAgICAgICAg
JiYgYS5zY3JvbGxCZWhhdmlvckVuYWJsZWQgPT0gYi5zY3JvbGxCZWhhdmlvckVuYWJsZWQKICAg
ICAgICAgJiYgYS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID09IGIuaGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbgorICAgICAgICAmJiBhLm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgPT0gYi5v
dmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkCiAgICAgICAgICYmIGEudXNlU3lzdGVtQXBwZWFyYW5j
ZSA9PSBiLnVzZVN5c3RlbUFwcGVhcmFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJDb250ZXh0LmgKaW5kZXggMGVlNTViZmM4MC4uYTYwYTM3OTY3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTY2LDYg
KzY2LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgYm9vbCBkZWZlcnJlZENTU1BhcnNlckVuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgc2Nyb2xsQmVoYXZpb3JFbmFibGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIAogICAg
IC8vIFRoaXMgaXMgb25seSBuZWVkZWQgdG8gc3VwcG9ydCBnZXRNYXRjaGVkQ1NTUnVsZXMuCiAg
ICAgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIHsgZmFsc2UgfTsKQEAgLTEwOSw3ICsx
MTAsOCBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4dEhhc2ggewogICAgICAgICAgICAgJiBrZXku
YXR0YWNobWVudEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTEKICNlbmRpZgog
ICAgICAgICAgICAgJiBrZXkuc2Nyb2xsQmVoYXZpb3JFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgPDwgMTIKLSAgICAgICAgICAgICYga2V5Lm1vZGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IDEzOyAvLyBLZWVwIHRoaXMgbGFzdC4KKyAgICAgICAgICAgICYga2V5
Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQgICAgICAgICAgICAgICAgIDw8IDEzCisgICAgICAg
ICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAx
NDsgLy8gS2VlcCB0aGlzIGxhc3QuCiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMp
OwogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggOGU4OGZjOTVjZC4uNTRlMjYzMDU3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhz
LmNwcApAQCAtNjgzLDYgKzY4MywxMSBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxp
ZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZAogICAgICAg
ICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZVZpc2libGUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZUhpZGRlbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU2Nyb2xsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVPdmVybGF5OwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlPdmVyZmxvd1k6IC8vIHZpc2libGUgfCBoaWRkZW4gfCBzY3JvbGwgfCBhdXRvIHwgb3Zlcmxh
eSB8IC13ZWJraXQtcGFnZWQteCB8IC13ZWJraXQtcGFnZWQteSAob3ZlcmxheSBpcyBhIHN5bm9u
eW0gZm9yIGF1dG8pCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlVmlzaWJsZSB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlSGlkZGVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTY3JvbGwg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU92ZXJsYXkg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWCB8fCB2YWx1ZUlEID09IENTU1ZhbHVl
V2Via2l0UGFnZWRZOworICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JYOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyc2Nyb2xsQmVoYXZpb3JZOgorICAgICAgICBpZiAoIWNv
bnRleHQub3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVDb250YWluIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlCcmVha0FmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlCcmVha0JlZm9yZToKICAg
ICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdm9pZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWRQYWdlIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVQYWdlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVMZWZ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVSaWdodCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVjdG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZVZlcnNvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdm9pZENvbHVtbiB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlQ29sdW1uOwpAQCAtOTM4LDYgKzk0Myw4IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKICAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwOgogICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1g6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICBjYXNlIENTU1Byb3BlcnR5T3Zl
cnNjcm9sbEJlaGF2aW9yWDoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9y
WToKICAgICBjYXNlIENTU1Byb3BlcnR5UG9pbnRlckV2ZW50czoKICAgICBjYXNlIENTU1Byb3Bl
cnR5UG9zaXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJlc2l6ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZTQwNGQ0OGVmOC4u
YmEzODUxYzIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKQEAgLTIzNzQsNiArMjM3NCwxNCBAQCBzdGF0aWMgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBjb25zdW1lU2Nyb2xsQmVoYXZpb3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
ZwogICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwogfQogCitzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQoreworICAgIGF1dG8gdmFsdWVJRCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmICh2
YWx1ZUlEICE9IENTU1ZhbHVlQXV0byAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlTm9uZSAmJiB2YWx1
ZUlEICE9IENTU1ZhbHVlQ29udGFpbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Cit9CisKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNv
bnN1bWVCb3JkZXJSYWRpdXNDb3JuZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1Bh
cnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKIHsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGNvbnN1bWVMZW5ndGhPclBlcmNlbnQocmFuZ2UsIGNzc1BhcnNlck1v
ZGUsIFZhbHVlUmFuZ2VOb25OZWdhdGl2ZSk7CkBAIC0zOTYxLDYgKzM5NjksMTEgQEAgUmVmUHRy
PENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5LCBDU1MKICAgICAgICAgaWYgKCFtX2NvbnRleHQuc2Nyb2xsQmVoYXZpb3JF
bmFibGVkKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25z
dW1lU2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3Jv
bGxCZWhhdmlvclg6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvclk6Cisg
ICAgICAgIGlmICghbV9jb250ZXh0Lm92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPdmVyc2Nyb2xsQmVo
YXZpb3IobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNsaXA6CiAgICAgICAgIHJldHVy
biBjb25zdW1lQ2xpcChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRvdWNoQWN0aW9uOgpAQCAtNTU1MCw2ICs1NTYzLDM1IEBAIGJvb2wgQ1NTUHJvcGVydHlQ
YXJzZXI6OmNvbnN1bWVQbGFjZVNlbGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPdmVyc2Nyb2xs
QmVoYXZpb3JTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgQVNTRVJUKHNob3J0aGFu
ZEZvclByb3BlcnR5KENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yKS5sZW5ndGgoKSA9PSAy
KTsKKyAgICBpZiAoIW1fY29udGV4dC5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG92ZXJzY3JvbGxCZWhhdmlvclggPSBj
b25zdW1lT3ZlcnNjcm9sbEJlaGF2aW9yKG1fcmFuZ2UpOworICAgIGlmICghb3ZlcnNjcm9sbEJl
aGF2aW9yWCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBv
dmVyc2Nyb2xsQmVoYXZpb3JZOworICAgIG1fcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAg
ICBpZiAobV9yYW5nZS5hdEVuZCgpKQorICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3JZID0gb3Zl
cnNjcm9sbEJlaGF2aW9yWDsKKyAgICBlbHNlIHsKKyAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9y
WSA9IGNvbnN1bWVPdmVyc2Nyb2xsQmVoYXZpb3IobV9yYW5nZSk7CisgICAgICAgIG1fcmFuZ2Uu
Y29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICAgICAgaWYgKCFtX3JhbmdlLmF0RW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVy
dHlPdmVyc2Nyb2xsQmVoYXZpb3JYLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92
ZXJzY3JvbGxCZWhhdmlvclgsIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVy
dHlPdmVyc2Nyb2xsQmVoYXZpb3JZLCBDU1NQcm9wZXJ0eU92ZXJzY3JvbGxCZWhhdmlvciwgKm92
ZXJzY3JvbGxCZWhhdmlvclksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJv
b2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHksIGJvb2wgaW1wb3J0YW50KQogewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKQEAgLTU1NzAs
NiArNTYxMiw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1By
b3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogICAgIH0KICAgICBjYXNlIENTU1By
b3BlcnR5T3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiBjb25zdW1lT3ZlcmZsb3dTaG9ydGhhbmQo
aW1wb3J0YW50KTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcnNjcm9sbEJlaGF2aW9yOgorICAg
ICAgICByZXR1cm4gY29uc3VtZU92ZXJzY3JvbGxCZWhhdmlvclNob3J0aGFuZChpbXBvcnRhbnQp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250OiB7CiAgICAgICAgIGNvbnN0IENTU1BhcnNlclRv
a2VuJiB0b2tlbiA9IG1fcmFuZ2UucGVlaygpOwogICAgICAgICBpZiAodG9rZW4uaWQoKSA+PSBD
U1NWYWx1ZUNhcHRpb24gJiYgdG9rZW4uaWQoKSA8PSBDU1NWYWx1ZVN0YXR1c0JhcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAppbmRleCBiN2UxOWZi
ZDY0Li4zMDMzMjZmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5oCkBAIC0xMTIsNiArMTEyLDggQEAgcHJpdmF0ZToKICAgICBib29sIGNvbnN1
bWVUcmFuc2Zvcm1PcmlnaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgY29uc3VtZVBlcnNw
ZWN0aXZlT3JpZ2luKGJvb2wgaW1wb3J0YW50KTsKIAorICAgIGJvb2wgY29uc3VtZU92ZXJzY3Jv
bGxCZWhhdmlvclNob3J0aGFuZChib29sIGltcG9ydGFudCk7CisKIHByaXZhdGU6CiAgICAgLy8g
SW5wdXRzOgogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgbV9yYW5nZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCBhMjM2NmYxZmEwLi44NGJhYmU3NzliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMDIsMTUgKzMwMiwxNyBAQCBzdGF0aWMgdm9p
ZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2VJblNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBz
Y3JvbGxhYmxlQXJlYQogI2VuZGlmCiB9CiAKLXN0YXRpYyBib29sIGRpZFNjcm9sbEluU2Nyb2xs
YWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBjb25zdCBXaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQorc3RhdGljIGJvb2wgZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYShTY3Jv
bGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQs
IGNvbnN0IElnbm9yZURlbHRhUmVxdWVzdCYgaWdub3JlUmVxdWVzdCkKIHsKKyAgICBkb3VibGUg
ZGVsdGFYID0gaWdub3JlUmVxdWVzdC5pZ25vcmVYID8gMCA6IHdoZWVsRXZlbnQuZGVsdGFYKCk7
CisgICAgZG91YmxlIGRlbHRhWSA9IGlnbm9yZVJlcXVlc3QuaWdub3JlWSA/IDAgOiB3aGVlbEV2
ZW50LmRlbHRhWSgpOwogICAgIFNjcm9sbEdyYW51bGFyaXR5IHNjcm9sbEdyYW51bGFyaXR5ID0g
d2hlZWxHcmFudWxhcml0eVRvU2Nyb2xsR3JhbnVsYXJpdHkod2hlZWxFdmVudC5kZWx0YU1vZGUo
KSk7CiAgICAgYm9vbCBkaWRIYW5kbGVXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgaWYgKGZsb2F0
IGFic29sdXRlRGVsdGEgPSBzdGQ6OmFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSkKLSAgICAgICAg
ZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwod2hlZWxFdmVudC5k
ZWx0YVgoKSA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51bGFyaXR5
LCBhYnNvbHV0ZURlbHRhKTsKKyAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0YSA9IHN0ZDo6YWJz
KGRlbHRhWCkpCisgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgfD0gc2Nyb2xsYWJsZUFyZWEu
c2Nyb2xsKGRlbHRhWCA+IDAgPyBTY3JvbGxSaWdodCA6IFNjcm9sbExlZnQsIHNjcm9sbEdyYW51
bGFyaXR5LCBhYnNvbHV0ZURlbHRhKTsKICAgICAKLSAgICBpZiAoZmxvYXQgYWJzb2x1dGVEZWx0
YSA9IHN0ZDo6YWJzKHdoZWVsRXZlbnQuZGVsdGFZKCkpKQotICAgICAgICBkaWRIYW5kbGVXaGVl
bEV2ZW50IHw9IHNjcm9sbGFibGVBcmVhLnNjcm9sbCh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCA/
IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVsdGEp
OworICAgIGlmIChmbG9hdCBhYnNvbHV0ZURlbHRhID0gc3RkOjphYnMoZGVsdGFZKSkKKyAgICAg
ICAgZGlkSGFuZGxlV2hlZWxFdmVudCB8PSBzY3JvbGxhYmxlQXJlYS5zY3JvbGwoZGVsdGFZID4g
MCA/IFNjcm9sbERvd24gOiBTY3JvbGxVcCwgc2Nyb2xsR3JhbnVsYXJpdHksIGFic29sdXRlRGVs
dGEpOwogICAgIAogICAgIHJldHVybiBkaWRIYW5kbGVXaGVlbEV2ZW50OwogfQpAQCAtMzM2LDI0
ICszMzgsMzcgQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNs
b3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICBpZiAoIXNob3VsZEhhbmRs
ZUV2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3Qg
aWdub3JlUmVxdWVzdDsKICAgICBpZiAoaXM8UmVuZGVyTGlzdEJveD4oaW5pdGlhbEVuY2xvc2lu
Z0JveCkpCi0gICAgICAgIHJldHVybiBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVhKGRvd25jYXN0
PFJlbmRlckxpc3RCb3g+KGluaXRpYWxFbmNsb3NpbmdCb3gpLCB3aGVlbEV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuIGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoZG93bmNhc3Q8UmVuZGVyTGlzdEJv
eD4oaW5pdGlhbEVuY2xvc2luZ0JveCksIHdoZWVsRXZlbnQsIGlnbm9yZVJlcXVlc3QpOwogCiAg
ICAgUmVuZGVyQm94KiBjdXJyZW50RW5jbG9zaW5nQm94ID0gJmluaXRpYWxFbmNsb3NpbmdCb3g7
CisgICAgYm9vbCBiaWFzVG9WZXJ0aWNhbCA9IGFicyh3aGVlbEV2ZW50LmRlbHRhWCgpKSA8PSBh
YnMod2hlZWxFdmVudC5kZWx0YVkoKSk7CisgICAgYXV0byogZG9jdW1lbnRTY3JvbGxpbmdFbGVt
ZW50ID0gY3VycmVudEVuY2xvc2luZ0JveC0+ZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCk7
CiAgICAgd2hpbGUgKGN1cnJlbnRFbmNsb3NpbmdCb3gpIHsKICAgICAgICAgaWYgKFJlbmRlckxh
eWVyKiBib3hMYXllciA9IGN1cnJlbnRFbmNsb3NpbmdCb3gtPmxheWVyKCkpIHsKICAgICAgICAg
ICAgIGF1dG8gcGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZl
bnQoKTsKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAg
IGlmIChwbGF0Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9
IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9y
bURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRW
ZWxvY2l0eSk7CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZl
bnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoaWdub3JlUmVxdWVzdC5pZ25vcmVYID8gMCA6
IGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkgPyAw
IDogZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICAg
ICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVs
RXZlbnQoY29waWVkRXZlbnQpOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
c2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJveExheWVy
LCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gZGlk
U2Nyb2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdoZWVsRXZlbnQsIGlnbm9yZVJlcXVl
c3QpOwogCiAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nV2FzSGFuZGxlZCkKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGJvb2wgaXNEb2N1bWVudFNj
cm9sbGluZ0VsZW1lbnQgPSBjdXJyZW50RW5jbG9zaW5nQm94LT5lbGVtZW50KCkgPT0gZG9jdW1l
bnRTY3JvbGxpbmdFbGVtZW50OworICAgICAgICBpZiAoIWlzRG9jdW1lbnRTY3JvbGxpbmdFbGVt
ZW50ICYmICFpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggJiYgY3VycmVudEVuY2xvc2luZ0JveC0+c3R5
bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JYKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQor
ICAgICAgICAgICAgaWdub3JlUmVxdWVzdC5pZ25vcmVYID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFp
c0RvY3VtZW50U2Nyb2xsaW5nRWxlbWVudCAmJiAhaWdub3JlUmVxdWVzdC5pZ25vcmVZICYmIGN1
cnJlbnRFbmNsb3NpbmdCb3gtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpICE9IE92ZXJz
Y3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgICAgIGlnbm9yZVJlcXVlc3QuaWdub3JlWSA9
IHRydWU7CisgICAgICAgIGlmICgoaWdub3JlUmVxdWVzdC5pZ25vcmVYICYmIGlnbm9yZVJlcXVl
c3QuaWdub3JlWSkKKyAgICAgICAgICAgIHx8IChpZ25vcmVSZXF1ZXN0Lmlnbm9yZVggJiYgIWJp
YXNUb1ZlcnRpY2FsKQorICAgICAgICAgICAgfHwgKGlnbm9yZVJlcXVlc3QuaWdub3JlWSAmJiBi
aWFzVG9WZXJ0aWNhbCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICBjdXJy
ZW50RW5jbG9zaW5nQm94ID0gY3VycmVudEVuY2xvc2luZ0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7
CiAgICAgICAgIGlmICghY3VycmVudEVuY2xvc2luZ0JveCB8fCBjdXJyZW50RW5jbG9zaW5nQm94
LT5pc1JlbmRlclZpZXcoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NjIsNiAr
Mjg3NywyMSBAQCBib29sIEV2ZW50SGFuZGxlcjo6Y29tcGxldGVXaWRnZXRXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIGNvbgogICAgIHJldHVybiBwbGF0Zm9ybUNv
bXBsZXRlUGxhdGZvcm1XaWRnZXRXaGVlbEV2ZW50KGV2ZW50LCAqd2lkZ2V0LmdldCgpLCBzY3Jv
bGxhYmxlQXJlYSk7CiB9CiAKKyNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCitzdGF0
aWMgdm9pZCB1cGRhdGVQYXJlbnRGcmFtZUlnbm9yZURlbHRhUmVxdWVzdChGcmFtZSYgZnJhbWUs
IElnbm9yZURlbHRhUmVxdWVzdCYgaWdub3JlRGVsdGEpCit7CisgICAgYXV0byogcGFyZW50ID0g
ZnJhbWUudHJlZSgpLnBhcmVudCgpOworICAgIGNvbnN0IFNjcm9sbGFibGVBcmVhKiB2aWV3ID0g
ZnJhbWUudmlldygpOworICAgIGlmICghZnJhbWUucGFnZSgpIHx8ICFwYXJlbnQgfHwgIXZpZXcp
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAodmlldy0+aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhh
dmlvcigpICE9IE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bykKKyAgICAgICAgaWdub3JlRGVsdGEu
aWdub3JlWCA9IHRydWU7CisgICAgaWYgKHZpZXctPnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICBpZ25vcmVEZWx0YS5pZ25v
cmVZID0gdHJ1ZTsKKyAgICBmcmFtZS5wYWdlKCktPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigp
LnVwZGF0ZUlnbm9yZURlbHRhUmVxdWVzdCgqcGFyZW50LCBpZ25vcmVEZWx0YSk7Cit9CisjZW5k
aWYKKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBldmVudCkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IG1fZnJhbWUuZG9jdW1l
bnQoKTsKQEAgLTI5NDcsMTIgKzI5NzcsNDYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBib29sIGFsbG93
U2Nyb2xsaW5nID0gdHJ1ZTsKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCiAgICAg
YWxsb3dTY3JvbGxpbmcgPSBtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVy
KCkubGF0Y2hpbmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKG1fZnJhbWUsIHNjcm9sbGFibGVBcmVh
KTsKKyAgICBJZ25vcmVEZWx0YVJlcXVlc3QgaWdub3JlRGVsdGEgPSBtX2ZyYW1lLnBhZ2UoKS0+
c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkuZ2V0SWdub3JlRGVsdGFSZXF1ZXN0KG1fZnJhbWUp
OwogI2VuZGlmCiAgICAgaWYgKGFsbG93U2Nyb2xsaW5nKSB7CisgICAgICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCBhZGp1c3RlZFdoZWVsRXZlbnQgPSBQbGF0Zm9ybVdoZWVsRXZlbnQoZXZlbnQpOwor
I2lmIEVOQUJMRShXSEVFTF9FVkVOVF9MQVRDSElORykKKyAgICAgICAgaWYgKHNjcm9sbGFibGVB
cmVhID09IHZpZXcpIHsKKyAgICAgICAgICAgIGJvb2wgYmlhc1RvVmVydGljYWwgPSBhYnMoZXZl
bnQuZGVsdGFYKCkpIDw9IGFicyhldmVudC5kZWx0YVkoKSk7CisgICAgICAgICAgICBpZiAoaWdu
b3JlRGVsdGEuaWdub3JlWCAmJiAhYmlhc1RvVmVydGljYWwpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIW1fZnJhbWUuaXNNYWluRnJhbWUoKSkgeworICAgICAgICAgICAgICAgICAgICB1cGRhdGVQ
YXJlbnRGcmFtZUlnbm9yZURlbHRhUmVxdWVzdChtX2ZyYW1lLCBpZ25vcmVEZWx0YSk7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYXV0byBwb3NpdGlvbiA9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigp
OworICAgICAgICAgICAgICAgIGF1dG8gbWluaW11bVBvc2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEt
Pm1pbmltdW1TY3JvbGxQb3NpdGlvbigpOworICAgICAgICAgICAgICAgIGF1dG8gbWF4aW11bVBv
c2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEtPm1heGltdW1TY3JvbGxQb3NpdGlvbigpOworICAgICAg
ICAgICAgICAgIGlmICgocG9zaXRpb24ueCgpIDw9IG1pbmltdW1Qb3NpdGlvbi54KCkgJiYgZXZl
bnQuZGVsdGFYKCkgPiAwKQorICAgICAgICAgICAgICAgICAgICB8fCAocG9zaXRpb24ueCgpID49
IG1heGltdW1Qb3NpdGlvbi54KCkgJiYgZXZlbnQuZGVsdGFYKCkgPCAwKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGlnbm9yZURlbHRhLmlnbm9yZVggJiYgaWdu
b3JlRGVsdGEuaWdub3JlWSkKKyAgICAgICAgICAgICAgICB8fCAoaWdub3JlRGVsdGEuaWdub3Jl
WSAmJiBiaWFzVG9WZXJ0aWNhbCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAgICAgICAgIGZsb2F0IGRlbHRhWCA9IGlnbm9yZURlbHRhLmlnbm9yZVggPyAwIDogZXZlbnQu
ZGVsdGFYKCk7CisgICAgICAgICAgICBmbG9hdCBkZWx0YVkgPSBpZ25vcmVEZWx0YS5pZ25vcmVZ
ID8gMCA6IGV2ZW50LmRlbHRhWSgpOworICAgICAgICAgICAgYWRqdXN0ZWRXaGVlbEV2ZW50ID0g
YWRqdXN0ZWRXaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZGVsdGFYLCBkZWx0
YVksIGV2ZW50LnNjcm9sbGluZ1ZlbG9jaXR5KCkpOworICAgICAgICB9CisjZW5kaWYKICAgICAg
ICAgLy8gRklYTUU6IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKCkgaXMgb25seSBjYWxs
ZWQgZm9yIEZyYW1lVmlldyBzY3JvbGxpbmcsIG5vdCBvdmVyZmxvdyBzY3JvbGxpbmcsIHdoaWNo
IGlzIGNvbmZ1c2luZy4KLSAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRG
b3JTY3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKLSAgICAgICAgcHJvY2Vzc1doZWVs
RXZlbnRGb3JTY3JvbGxTbmFwKGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CisgICAgICAgIGhhbmRs
ZWRFdmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGFkanVzdGVkV2hlZWxFdmVu
dCwgc2Nyb2xsYWJsZUFyZWEpOworICAgICAgICBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNu
YXAoYWRqdXN0ZWRXaGVlbEV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgfQorCisjaWYgRU5B
QkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQorICAgIGlmICghYWxsb3dTY3JvbGxpbmcgJiYgIW1f
ZnJhbWUuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgdXBkYXRlUGFyZW50RnJhbWVJZ25vcmVEZWx0
YVJlcXVlc3QobV9mcmFtZSwgaWdub3JlRGVsdGEpOworI2VuZGlmCisKICAgICByZXR1cm4gaGFu
ZGxlZEV2ZW50OwogfQogCkBAIC0yOTk4LDE0ICszMDYyLDE4IEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpkZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3
aGVlbEV2CiAgICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVy
KCkubGF0Y2hpbmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKG1fZnJhbWUsIGxhdGNoZWRTY3JvbGxl
cikpCiAgICAgICAgIHJldHVybjsKIAorICAgIElnbm9yZURlbHRhUmVxdWVzdCBpZ25vcmVEZWx0
YSA9IG1fZnJhbWUucGFnZSgpLT5zY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIoKS5nZXRJZ25vcmVE
ZWx0YVJlcXVlc3QobV9mcmFtZSk7CiAgICAgaWYgKGxhdGNoZWRTY3JvbGxlcikgewogICAgICAg
ICBpZiAobGF0Y2hlZFNjcm9sbGVyID09IG1fZnJhbWUudmlldygpKSB7CiAgICAgICAgICAgICAv
LyBGcmFtZVZpZXcgc2Nyb2xsaW5nIGlzIGhhbmRsZWQgdmlhIHByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKCkuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQogICAgICAgICBh
dXRvIHBsYXRmb3JtRXZlbnQgPSB3aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2ZW50KCk7
CiAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7CisgICAgICAgICAgICBpZiAoaWdub3JlRGVs
dGEuaWdub3JlWCkKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuc2V0V2lk
dGgoMCk7CisgICAgICAgICAgICBpZiAoaWdub3JlRGVsdGEuaWdub3JlWSkKKyAgICAgICAgICAg
ICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuc2V0SGVpZ2h0KDApOwogICAgICAgICAgICAgYXV0
byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHko
ZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWln
aHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CiAgICAgICAgICAgICBpZiAobGF0Y2hlZFNjcm9sbGVy
LT5oYW5kbGVXaGVlbEV2ZW50KGNvcGllZEV2ZW50KSkKICAgICAgICAgICAgICAgICB3aGVlbEV2
ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NGUzMzM1NzFlOS4uZDI0ZTQzNTliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NDE4LDYgKzQxOCwyOCBAQCBib29sIEZyYW1lVmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBjb25zdAog
ICAgIHJldHVybiBsYXlvdXRDb250ZXh0KCkuZGlkRmlyc3RMYXlvdXQoKTsKIH0KIAorT3ZlcnNj
cm9sbEJlaGF2aW9yIEZyYW1lVmlldzo6aG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xs
LWJlaGF2aW9yIGlzIGxpbWl0ZWQgdG8gdGhlIGN1cnJlbnQgZnJhbWUuCisgICAgLy8gU2hvdWxk
IG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBo
dHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8q
IGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0
ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpID8gZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpIDogbnVsbHB0cjsKKyAgICBpZiAoIXNjcm9sbGlu
Z09iamVjdCkKKyAgICAgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpob3Jpem9udGFsT3ZlcnNj
cm9sbEJlaGF2aW9yKCk7CisgICAgcmV0dXJuIHNjcm9sbGluZ09iamVjdC0+c3R5bGUoKS5vdmVy
c2Nyb2xsQmVoYXZpb3JYKCk7Cit9CisKK092ZXJzY3JvbGxCZWhhdmlvciBGcmFtZVZpZXc6OnZl
cnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEN1cnJl
bnRseSwgdGhlIGltcGFjdCBvZiBvdmVyc2Nyb2xsLWJlaGF2aW9yIGlzIGxpbWl0ZWQgdG8gdGhl
IGN1cnJlbnQgZnJhbWUuCisgICAgLy8gU2hvdWxkIG92ZXJzY3JvbGwtYmVoYXZpb3IgY2hhbmdl
IHRoZSBiZWhhdmlvciBvZiBhIHN1YmZyYW1lPyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dn
LWRyYWZ0cy9pc3N1ZXMvNTEyOQorICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVu
dCgpOworICAgIGF1dG8gc2Nyb2xsaW5nT2JqZWN0ID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpID8gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigp
IDogbnVsbHB0cjsKKyAgICBpZiAoIXNjcm9sbGluZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIFNj
cm9sbGFibGVBcmVhOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOworICAgIHJldHVybiBz
Y3JvbGxpbmdPYmplY3QtPnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiB2b2lk
IEZyYW1lVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBp
ZiAoIXBhcmVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBkN2U4ZGI5YWY0Li42
NmUzNGQxY2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTc0MCw2ICs3NDAsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgdW5vYnNjdXJlZENvbnRlbnRTaXplQ2hhbmdlZCgpIGZpbmFsOwog
CiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgaW50ZXJmYWNlCisgICAgT3ZlcnNjcm9sbEJlaGF2aW9y
IGhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKyAgICBPdmVyc2Ny
b2xsQmVoYXZpb3IgdmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdCBmaW5hbDsKKwog
ICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVj
dCYpIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5h
bDsKICAgICB2b2lkIHNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0Jikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMmY4NGM1YmMwYy4uYjU4OWE2
Y2IxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjM5LDYgKzYzOSw5IEBAIHZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZDoKIHN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6
CiAgIGluaXRpYWw6IHRydWUKIAorb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDoKKyAgaW5pdGlh
bDogZmFsc2UKKwogQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZDoKICAgaW5pdGlhbDogZmFs
c2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDNm
MjU4ZmQ4NGQuLjNkMzhiODgwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhh
bmRsZXJNYWMubW0KQEAgLTc4Niw3ICs3ODYsNyBAQCBzdGF0aWMgU2Nyb2xsYWJsZUFyZWEqIHNj
cm9sbGFibGVBcmVhRm9yQm94KFJlbmRlckJveCYgYm94KQogfQogCiAvLyBGSVhNRTogVGhpcyBj
b3VsZCBiZSB3cml0dGVuIGluIHRlcm1zIG9mIFNjcm9sbGFibGVBcmVhOjplbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSgpLgotc3RhdGljIENvbnRhaW5lck5vZGUqIGZpbmRFbmNsb3NpbmdTY3JvbGxh
YmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIG5vZGUsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKK3N0YXRpYyBDb250YWluZXJOb2RlKiBmaW5kRW5jbG9zaW5nU2Nyb2xs
YWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKiBub2RlLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIElnbm9yZURlbHRhUmVxdWVzdCYgaWdub3JlRGVsdGEpCiB7CiAgICAg
YXV0byBiaWFzZWREZWx0YSA9IFNjcm9sbENvbnRyb2xsZXI6OndoZWVsRGVsdGFCaWFzaW5nVG93
YXJkc1ZlcnRpY2FsKHdoZWVsRXZlbnQpOwogCkBAIC04MDAsMTkgKzgwMCwyOSBAQCBzdGF0aWMg
Q29udGFpbmVyTm9kZSogZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIoQ29udGFpbmVy
Tm9kZSogbm9kZSwgY29ucwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAg
UmVuZGVyQm94KiBib3ggPSBjYW5kaWRhdGUtPnJlbmRlckJveCgpOwotICAgICAgICBpZiAoIWJv
eCB8fCAhYm94LT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAKLSAgICAgICAgYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBz
Y3JvbGxhYmxlQXJlYUZvckJveCgqYm94KTsKLSAgICAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYSkK
KyAgICAgICAgaWYgKCFib3gpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAo
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTWF5QmVnaW4gfHwg
d2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2FuY2VsbGVkKQot
ICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAgICAgICAgYXV0byogc2Nyb2xsYWJsZUFy
ZWEgPSBzY3JvbGxhYmxlQXJlYUZvckJveCgqYm94KTsKKyAgICAgICAgaWYgKHNjcm9sbGFibGVB
cmVhICYmIGJveC0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpIHsKKyAgICAg
ICAgICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VN
YXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VD
YW5jZWxsZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKIAotICAgICAgICBp
ZiAoKGJpYXNlZERlbHRhLmhlaWdodCgpID4gMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVk
VG9Ub3AoKSkgfHwgKGJpYXNlZERlbHRhLmhlaWdodCgpIDwgMCAmJiAhc2Nyb2xsYWJsZUFyZWEt
PnNjcm9sbGVkVG9Cb3R0b20oKSkKLSAgICAgICAgICAgIHx8IChiaWFzZWREZWx0YS53aWR0aCgp
ID4gMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9MZWZ0KCkpIHx8IChiaWFzZWREZWx0
YS53aWR0aCgpIDwgMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9SaWdodCgpKSkKLSAg
ICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgICAgICAgICBpZiAoKGJpYXNlZERlbHRh
LmhlaWdodCgpID4gMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9Ub3AoKSkgfHwgKGJp
YXNlZERlbHRhLmhlaWdodCgpIDwgMCAmJiAhc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbGVkVG9Cb3R0
b20oKSkKKyAgICAgICAgICAgICAgICB8fCAoYmlhc2VkRGVsdGEud2lkdGgoKSA+IDAgJiYgIXNj
cm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvTGVmdCgpKSB8fCAoYmlhc2VkRGVsdGEud2lkdGgoKSA8
IDAgJiYgIXNjcm9sbGFibGVBcmVhLT5zY3JvbGxlZFRvUmlnaHQoKSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNhbmRpZGF0ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBMZXQgRnJhbWVWaWV3
Ojpob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIGRlY2lkZSB3aGljaCBub2RlJ3Mgb3ZlcnNj
cm9sbC1iYWh2aW9yIGlzIGVmZmVjdGl2ZSB0byBGcmFtZVZpZXcuCisgICAgICAgIGlmIChjYW5k
aWRhdGUgPT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpLmJvZHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBpZiAoY2FuZGlkYXRlICE9IG5vZGUgJiYgYm94LT5zdHlsZSgpLm92ZXJz
Y3JvbGxCZWhhdmlvclgoKSAhPSBPdmVyc2Nyb2xsQmVoYXZpb3I6OkF1dG8pCisgICAgICAgICAg
ICBpZ25vcmVEZWx0YS5pZ25vcmVYID0gdHJ1ZTsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZSAhPSBu
b2RlICYmIGJveC0+c3R5bGUoKS5vdmVyc2Nyb2xsQmVoYXZpb3JZKCkgIT0gT3ZlcnNjcm9sbEJl
aGF2aW9yOjpBdXRvKQorICAgICAgICAgICAgaWdub3JlRGVsdGEuaWdub3JlWSA9IHRydWU7Cisg
ICAgICAgIGlmICgoaWdub3JlRGVsdGEuaWdub3JlWCAmJiBpZ25vcmVEZWx0YS5pZ25vcmVZKQor
ICAgICAgICAgICAgfHwgKGlnbm9yZURlbHRhLmlnbm9yZVggJiYgIWJpYXNlZERlbHRhLmhlaWdo
dCgpKQorICAgICAgICAgICAgfHwgKGlnbm9yZURlbHRhLmlnbm9yZVkgJiYgIWJpYXNlZERlbHRh
LndpZHRoKCkpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBudWxscHRyOwpAQCAtODU5LDE4ICs4NjksMTcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW4KICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKIAorICAgIElnbm9yZURlbHRh
UmVxdWVzdCBpZ25vcmVEZWx0YTsKICAgICBpZiAoZXZlbnRUYXJnZXRJc1BsYXRmb3JtV2lkZ2V0
KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpKQogICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IHNjcm9s
bGFibGVBcmVhRm9yRXZlbnRUYXJnZXQod2hlZWxFdmVudFRhcmdldC5nZXQoKSk7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGF1dG8qIHNjcm9sbGFibGVDb250YWluZXIgPSBmaW5kRW5jbG9zaW5nU2Ny
b2xsYWJsZUNvbnRhaW5lcih3aGVlbEV2ZW50VGFyZ2V0LmdldCgpLCB3aGVlbEV2ZW50KTsKKyAg
ICAgICAgYXV0byogc2Nyb2xsYWJsZUNvbnRhaW5lciA9IGZpbmRFbmNsb3NpbmdTY3JvbGxhYmxl
Q29udGFpbmVyKHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCksIHdoZWVsRXZlbnQsIGlnbm9yZURlbHRh
KTsKICAgICAgICAgaWYgKHNjcm9sbGFibGVDb250YWluZXIpCiAgICAgICAgICAgICBzY3JvbGxh
YmxlQXJlYSA9IHNjcm9sbGFibGVBcmVhRm9yQ29udGFpbmVyTm9kZSgqc2Nyb2xsYWJsZUNvbnRh
aW5lcik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhID0gbWFrZVdl
YWtQdHIoc3RhdGljX2Nhc3Q8U2Nyb2xsYWJsZUFyZWEmPigqdmlldykpOwogICAgIH0KIAotICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRsZXI6
OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoKSAtIGV2ZW50IiA8PCB3aGVlbEV2ZW50IDw8ICIg
Zm91bmQgc2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQo
KSkgPDwgIiwgbGF0Y2hpbmcgc3RhdGUgaXMgIiA8PCBwYWdlLT5zY3JvbGxMYXRjaGluZ0NvbnRy
b2xsZXIoKSk7Ci0KICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEgJiYgcGFnZS0+aXNNb25pdG9yaW5n
V2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbEFuaW1hdG9yKCku
c2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsK
IApAQCAtODgwLDcgKzg4OSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2
ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgaWYgKG1f
ZnJhbWUuaXNNYWluRnJhbWUoKSAmJiB3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCiAgICAg
ICAgIHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygp
OwogCi0gICAgcGFnZS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkudXBkYXRlQW5kRmV0Y2hM
YXRjaGluZ1N0YXRlRm9yRnJhbWUobV9mcmFtZSwgd2hlZWxFdmVudCwgd2hlZWxFdmVudFRhcmdl
dCwgc2Nyb2xsYWJsZUFyZWEsIGlzT3ZlcldpZGdldCk7CisgICAgcGFnZS0+c2Nyb2xsTGF0Y2hp
bmdDb250cm9sbGVyKCkudXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUobV9mcmFt
ZSwgd2hlZWxFdmVudCwgd2hlZWxFdmVudFRhcmdldCwgc2Nyb2xsYWJsZUFyZWEsIGlnbm9yZURl
bHRhLCBpc092ZXJXaWRnZXQpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6cmVjb3JkV2hlZWxF
dmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNjBmYjZmNzk5OS4uMmUwOTA4YzExNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKQEAgLTcxNiw2ICs3MTYsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFNjcm9sbGluZ05vZGVTY3JvbGxhYmxlQXJlYUdlb21ldHJ5KFNjcm9s
bGluZwogICAgIHNjcm9sbGluZ05vZGUuc2V0U2Nyb2xsYWJsZUFyZWFTaXplKHNjcm9sbGFibGVB
cmVhLnZpc2libGVTaXplKCkpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHNjcm9s
bFBhcmFtZXRlcnM7CisgICAgc2Nyb2xsUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJl
aGF2aW9yID0gc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwor
ICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3IgPSBzY3JvbGxh
YmxlQXJlYS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpOwogICAgIHNjcm9sbFBhcmFtZXRl
cnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFs
U2Nyb2xsRWxhc3RpY2l0eSgpOwogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVydGljYWxTY3JvbGxF
bGFzdGljaXR5ID0gc2Nyb2xsYWJsZUFyZWEudmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCk7CiAg
ICAgc2Nyb2xsUGFyYW1ldGVycy5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6
b250YWxTY3JvbGxiYXIgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+ZW5hYmxlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29u
dHJvbGxlci5jcHAKaW5kZXggNjRhNmUzZWQwYi4uYzY1ODgyN2RiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xs
ZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgYm9vbCBTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6
OmxhdGNoaW5nQWxsb3dzU2Nyb2xsaW5nSW5GcmFtZShjb25zdCBGcmFtZSYgZnJhbWUKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyOjp1cGRhdGVB
bmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZShGcmFtZSYgZnJhbWUsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgUmVmUHRyPEVsZW1lbnQ+JiBsYXRjaGVkRWxlbWVudCwg
V2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mIHNjcm9sbGFibGVBcmVhLCBib29sJiBpc092ZXJXaWRn
ZXQpCit2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGlu
Z1N0YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQsIFJlZlB0cjxFbGVtZW50PiYgbGF0Y2hlZEVsZW1lbnQsIFdlYWtQdHI8U2Nyb2xs
YWJsZUFyZWE+JiBzY3JvbGxhYmxlQXJlYSwgSWdub3JlRGVsdGFSZXF1ZXN0JiBpZ25vcmVEZWx0
YSwgYm9vbCYgaXNPdmVyV2lkZ2V0KQogewogICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVyZVN0
YXJ0KCkpIHsKICAgICAgICAgLy8gV2UgY2FuIGhhdmUgZXhpc3Rpbmcgc3RhdGUgaGVyZSBiZWNh
dXNlIHN0YXRlIGlzIGNsZWFyZWQgb24gYSB0aW1lci4KQEAgLTExOCw2ICsxMTgsNyBAQCB2b2lk
IFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9y
RnJhbWUoRnJhbWUmIGZyYW1lLAogICAgICAgICAgICAgc3RhdGUud2hlZWxFdmVudEVsZW1lbnQg
PSBtYWtlV2Vha1B0cihsYXRjaGVkRWxlbWVudC5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoc2hv
dWxkTGF0Y2hUb1Njcm9sbGFibGVBcmVhKGZyYW1lLCBzY3JvbGxhYmxlQXJlYS5nZXQoKSwgbV9j
dW11bGF0aXZlRXZlbnREZWx0YSkpCiAgICAgICAgICAgICAgICAgc3RhdGUuc2Nyb2xsYWJsZUFy
ZWEgPSBzY3JvbGxhYmxlQXJlYTsKKyAgICAgICAgICAgIHN0YXRlLmlnbm9yZURlbHRhID0gaWdu
b3JlRGVsdGE7CiAgICAgICAgICAgICBzdGF0ZS5pc092ZXJXaWRnZXQgPSBpc092ZXJXaWRnZXQ7
CiAKICAgICAgICAgICAgIG1fZnJhbWVTdGF0ZVN0YWNrLmFwcGVuZChXVEZNb3ZlKHN0YXRlKSk7
CkBAIC0xMzEsOCArMTMyLDEwIEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyOjp1cGRh
dGVBbmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZShGcmFtZSYgZnJhbWUsCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGxhdGNoZWQgYXQgZ2VzdHVy
ZSBzdGFydCBiZWNhdXNlIG9mIHNtYWxsIGRlbHRhcy4gUmUtZXZhbHVhdGUgbGF0Y2hpbmcgYmFz
ZWQgb24gYWNjdW11bGF0ZWQgZGVsdGEuCi0gICAgICAgIGlmICghc3RhdGUtPnNjcm9sbGFibGVB
cmVhICYmIHNob3VsZExhdGNoVG9TY3JvbGxhYmxlQXJlYShmcmFtZSwgc2Nyb2xsYWJsZUFyZWEu
Z2V0KCksIG1fY3VtdWxhdGl2ZUV2ZW50RGVsdGEpKQorICAgICAgICBpZiAoIXN0YXRlLT5zY3Jv
bGxhYmxlQXJlYSAmJiBzaG91bGRMYXRjaFRvU2Nyb2xsYWJsZUFyZWEoZnJhbWUsIHNjcm9sbGFi
bGVBcmVhLmdldCgpLCBtX2N1bXVsYXRpdmVFdmVudERlbHRhKSkgewogICAgICAgICAgICAgc3Rh
dGUtPnNjcm9sbGFibGVBcmVhID0gc2Nyb2xsYWJsZUFyZWE7CisgICAgICAgICAgICBzdGF0ZS0+
aWdub3JlRGVsdGEgPSBpZ25vcmVEZWx0YTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmICgh
d2hlZWxFdmVudC51c2VMYXRjaGVkRXZlbnRFbGVtZW50KCkpCkBAIC0xNDMsMTAgKzE0NiwzMiBA
QCB2b2lkIFNjcm9sbExhdGNoaW5nQ29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0
YXRlRm9yRnJhbWUoRnJhbWUmIGZyYW1lLAogICAgICAgICAgICAgbGF0Y2hlZEVsZW1lbnQgPSBz
dGF0ZS53aGVlbEV2ZW50RWxlbWVudC5nZXQoKTsKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVh
ID0gc3RhdGUuc2Nyb2xsYWJsZUFyZWE7CiAgICAgICAgICAgICBpc092ZXJXaWRnZXQgPSBzdGF0
ZS5pc092ZXJXaWRnZXQ7CisgICAgICAgICAgICBpZ25vcmVEZWx0YSA9IHN0YXRlLmlnbm9yZURl
bHRhOwogICAgICAgICB9CiAgICAgfQogfQogCitJZ25vcmVEZWx0YVJlcXVlc3QgU2Nyb2xsTGF0
Y2hpbmdDb250cm9sbGVyOjpnZXRJZ25vcmVEZWx0YVJlcXVlc3QoY29uc3QgRnJhbWUmIGZyYW1l
KSBjb25zdAoreworICAgIGlmICghbV9mcmFtZVN0YXRlU3RhY2suaXNFbXB0eSgpKSB7CisgICAg
ICAgIGF1dG8qIGZyYW1lU3RhdGUgPSBzdGF0ZUZvckZyYW1lKGZyYW1lKTsKKyAgICAgICAgaWYg
KGZyYW1lU3RhdGUpCisgICAgICAgICAgICByZXR1cm4gZnJhbWVTdGF0ZS0+aWdub3JlRGVsdGE7
CisgICAgfQorCisgICAgcmV0dXJuIHsgZmFsc2UsIGZhbHNlIH07Cit9CisKK3ZvaWQgU2Nyb2xs
TGF0Y2hpbmdDb250cm9sbGVyOjp1cGRhdGVJZ25vcmVEZWx0YVJlcXVlc3QoY29uc3QgRnJhbWUm
IGZyYW1lLCBjb25zdCBJZ25vcmVEZWx0YVJlcXVlc3QmIGlnbm9yZURlbHRhRnJvbVN1YkZyYW1l
KQoreworICAgIGlmIChtX2ZyYW1lU3RhdGVTdGFjay5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBpZiAoYXV0byogZnJhbWVTdGF0ZSA9IHN0YXRlRm9yRnJhbWUoZnJhbWUpKSB7Cisg
ICAgICAgIGZyYW1lU3RhdGUtPmlnbm9yZURlbHRhLmlnbm9yZVggfD0gaWdub3JlRGVsdGFGcm9t
U3ViRnJhbWUuaWdub3JlWDsKKyAgICAgICAgZnJhbWVTdGF0ZS0+aWdub3JlRGVsdGEuaWdub3Jl
WSB8PSBpZ25vcmVEZWx0YUZyb21TdWJGcmFtZS5pZ25vcmVZOworICAgIH0KK30KKwogdm9pZCBT
Y3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6OnJlbW92ZUxhdGNoaW5nU3RhdGVGb3JUYXJnZXQoY29u
c3QgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAobV9mcmFtZVN0YXRlU3RhY2suaXNFbXB0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ0NvbnRyb2xsZXIuaAppbmRleCA1NjQ5NjE1OWM1Li42ZmE1YWFlNjY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0Nv
bnRyb2xsZXIuaApAQCAtNjEsNyArNjEsMTAgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiBubyBmcmFtZSBpcyBsYXRjaGVkLCBvciBsYXRjaGluZyBpcyBpbiB0aGUgZ2l2ZW4gZnJh
bWUgKGluIHdoaWNoIGNhc2UgbGF0Y2hlZFNjcm9sbGVyIHdpbGwgYmUgbm9uLW51bGwpLgogICAg
IGJvb2wgbGF0Y2hpbmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKGNvbnN0IEZyYW1lJiwgV2Vha1B0
cjxTY3JvbGxhYmxlQXJlYT4mIGxhdGNoZWRTY3JvbGxlcikgY29uc3Q7CiAKLSAgICB2b2lkIHVw
ZGF0ZUFuZEZldGNoTGF0Y2hpbmdTdGF0ZUZvckZyYW1lKEZyYW1lJiwgY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiwgUmVmUHRyPEVsZW1lbnQ+JiBsYXRjaGVkRWxlbWVudCwgV2Vha1B0cjxTY3Jv
bGxhYmxlQXJlYT4mLCBib29sJiBpc092ZXJXaWRnZXQpOworICAgIHZvaWQgdXBkYXRlQW5kRmV0
Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUoRnJhbWUmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBSZWZQdHI8RWxlbWVudD4mIGxhdGNoZWRFbGVtZW50LCBXZWFrUHRyPFNjcm9sbGFibGVBcmVh
PiYsIElnbm9yZURlbHRhUmVxdWVzdCYsIGJvb2wmIGlzT3ZlcldpZGdldCk7CisKKyAgICBJZ25v
cmVEZWx0YVJlcXVlc3QgZ2V0SWdub3JlRGVsdGFSZXF1ZXN0KGNvbnN0IEZyYW1lJikgY29uc3Q7
CisgICAgdm9pZCB1cGRhdGVJZ25vcmVEZWx0YVJlcXVlc3QoY29uc3QgRnJhbWUmLCBjb25zdCBJ
Z25vcmVEZWx0YVJlcXVlc3QmIGlnbm9yZURlbHRhRnJvbVN1YkZyYW1lKTsKIAogICAgIHZvaWQg
cmVtb3ZlTGF0Y2hpbmdTdGF0ZUZvclRhcmdldChjb25zdCBFbGVtZW50Jik7CiAgICAgdm9pZCBy
ZW1vdmVMYXRjaGluZ1N0YXRlRm9yRnJhbWUoY29uc3QgRnJhbWUmKTsKQEAgLTczLDYgKzc2LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgV2Vha1B0cjxFbGVtZW50PiB3aGVlbEV2ZW50RWxlbWVudDsK
ICAgICAgICAgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gc2Nyb2xsYWJsZUFyZWE7CiAgICAgICAg
IEZyYW1lKiBmcmFtZSB7IG51bGxwdHIgfTsKKyAgICAgICAgSWdub3JlRGVsdGFSZXF1ZXN0IGln
bm9yZURlbHRhOwogICAgICAgICBib29sIGlzT3ZlcldpZGdldCB7IGZhbHNlIH07CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IGJkNDc4NGI5MzguLjY5ZDBmNjI0NGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlw
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvclR5cGVzLmgKQEAgLTY4LDYgKzY4LDkgQEAgZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uIHsKIH07CiAKIHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgewor
ICAgIE92ZXJzY3JvbGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yIHsgT3Zl
cnNjcm9sbEJlaGF2aW9yOjogQXV0byB9OworICAgIE92ZXJzY3JvbGxCZWhhdmlvciB2ZXJ0aWNh
bE92ZXJzY3JvbGxCZWhhdmlvciB7IE92ZXJzY3JvbGxCZWhhdmlvcjo6IEF1dG8gfTsKKwogICAg
IFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFz
dGljaXR5Tm9uZSB9OwogICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKIApAQCAtODQsNyArODcsOSBAQCBzdHJ1Y3Qg
U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3JvbGxF
bGFzdGljaXR5CisgICAgICAgIHJldHVybiBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yID09
IG90aGVyLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IKKyAgICAgICAgICAgICYmIHZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yID09IG90aGVyLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
CisgICAgICAgICAgICAmJiBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSA9PSBvdGhlci5ob3Jp
em9udGFsU2Nyb2xsRWxhc3RpY2l0eQogICAgICAgICAgICAgJiYgdmVydGljYWxTY3JvbGxFbGFz
dGljaXR5ID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eQogICAgICAgICAgICAgJiYg
aG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUK
ICAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9PSBvdGhlci52ZXJ0aWNhbFNj
cm9sbGJhck1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKaW5kZXggOTE2M2EzNDM3My4uNGU5YTdhODMzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTE0NCwxMSArMTQ0LDEz
IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVuCiAKIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBT
Y3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdUcmVlTm9kZSogbm9kZSkKIHsKKyAgICBQbGF0
Zm9ybVdoZWVsRXZlbnQgYWRqdXN0ZWRXaGVlbEV2ZW50ID0gUGxhdGZvcm1XaGVlbEV2ZW50KHdo
ZWVsRXZlbnQpOworICAgIElnbm9yZURlbHRhUmVxdWVzdCBpZ25vcmVSZXF1ZXN0OworICAgIGJv
b2wgYmlhc1RvVmVydGljYWwgPSBhYnMod2hlZWxFdmVudC5kZWx0YVgoKSkgPD0gYWJzKHdoZWVs
RXZlbnQuZGVsdGFZKCkpOwogICAgIHdoaWxlIChub2RlKSB7CiAgICAgICAgIGlmIChpczxTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7CiAgICAgICAgICAgICBhdXRvJiBzY3Jv
bGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKTsK
LSAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQpOwotCisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHNjcm9sbGluZ05vZGUu
aGFuZGxlV2hlZWxFdmVudChhZGp1c3RlZFdoZWVsRXZlbnQpOwogICAgICAgICAgICAgaWYgKHJl
c3VsdC53YXNIYW5kbGVkKSB7CiAgICAgICAgICAgICAgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIu
bm9kZURpZEhhbmRsZUV2ZW50KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVs
RXZlbnQsIG1fYWxsb3dMYXRjaGluZyk7CiAgICAgICAgICAgICAgICAgbV9nZXN0dXJlU3RhdGUu
bm9kZURpZEhhbmRsZUV2ZW50KHNjcm9sbGluZ05vZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVs
RXZlbnQpOwpAQCAtMTU3LDYgKzE1OSwzMCBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Ny
b2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKGNvbnN0IFBsYXRmb3JtVwogCiAg
ICAgICAgICAgICBpZiAocmVzdWx0Lm5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nTm9k
ZS5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpB
dXRvKSB7CisgICAgICAgICAgICAgICAgaWdub3JlUmVxdWVzdC5pZ25vcmVYID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICBpZiAoYWRqdXN0ZWRXaGVlbEV2ZW50LmRlbHRhWCgpKQorICAgICAgICAg
ICAgICAgICAgICBhZGp1c3RlZFdoZWVsRXZlbnQgPSBhZGp1c3RlZFdoZWVsRXZlbnQuY29weVdp
dGhEZWx0YXNBbmRWZWxvY2l0eSgwLCBhZGp1c3RlZFdoZWVsRXZlbnQuZGVsdGFZKCksIGFkanVz
dGVkV2hlZWxFdmVudC5zY3JvbGxpbmdWZWxvY2l0eSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChzY3JvbGxpbmdOb2RlLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgIT0g
T3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvKSB7CisgICAgICAgICAgICAgICAgaWdub3JlUmVxdWVz
dC5pZ25vcmVZID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoYWRqdXN0ZWRXaGVlbEV2ZW50
LmRlbHRhWSgpKQorICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZFdoZWVsRXZlbnQgPSBhZGp1
c3RlZFdoZWVsRXZlbnQuY29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShhZGp1c3RlZFdoZWVsRXZl
bnQuZGVsdGFYKCksIDAsIGFkanVzdGVkV2hlZWxFdmVudC5zY3JvbGxpbmdWZWxvY2l0eSgpKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlnbm9yZVJlcXVlc3QuaWdub3JlWCB8
fCBpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWdub3JlUmVx
dWVzdC5pZ25vcmVYICYmICFiaWFzVG9WZXJ0aWNhbCAmJiB3aWxsV2hlZWxFdmVudFN0YXJ0U3dp
cGVHZXN0dXJlKHdoZWVsRXZlbnQpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2hlZWxF
dmVudEhhbmRsaW5nUmVzdWx0Ojp1bmhhbmRsZWQoKTsKKworICAgICAgICAgICAgICAgIGlmICgo
aWdub3JlUmVxdWVzdC5pZ25vcmVYICYmIGlnbm9yZVJlcXVlc3QuaWdub3JlWSkKKyAgICAgICAg
ICAgICAgICAgICAgfHwgKGlnbm9yZVJlcXVlc3QuaWdub3JlWCAmJiAhYmlhc1RvVmVydGljYWwp
CisgICAgICAgICAgICAgICAgICAgIHx8IChpZ25vcmVSZXF1ZXN0Lmlnbm9yZVkgJiYgYmlhc1Rv
VmVydGljYWwpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLm5v
ZGVEaWRIYW5kbGVFdmVudChzY3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2
ZW50LCBtX2FsbG93TGF0Y2hpbmcpOworICAgICAgICAgICAgICAgICAgICBtX2dlc3R1cmVTdGF0
ZS5ub2RlRGlkSGFuZGxlRXZlbnQoc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgd2hl
ZWxFdmVudCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdS
ZXN1bHQ6OmhhbmRsZWQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlO
b2RlPigqbm9kZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCAyMzAxYzk2NTg3Li43
NTU1MGViMTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMzQsNiArMTM0LDE2IEBA
IGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmlzTGF0Y2hlZE5vZGUoKSBjb25zdAog
ICAgIHJldHVybiBzY3JvbGxpbmdUcmVlKCkubGF0Y2hlZE5vZGVJRCgpID09IHNjcm9sbGluZ05v
ZGVJRCgpOwogfQogCitPdmVyc2Nyb2xsQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6Omhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAoreworICAgIHJldHVybiBt
X3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy5ob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yOwor
fQorCitPdmVyc2Nyb2xsQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnZlcnRp
Y2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7Cit9CisKIGJvb2wgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhbkhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAogewogICAgIGlmICghY2FuSGF2ZVNjcm9s
bGJhcnMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ4ZjdjYzA3MjcuLjc3NWIzY2EwYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtMTQ2LDYgKzE0Niw4IEBAIHByb3RlY3RlZDoKICAg
ICBjb25zdCBGbG9hdFNpemUmIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCgpIGNvbnN0
IHsgcmV0dXJuIG1fdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kOyB9CiAgICAgdm9pZCBz
ZXRUb3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoY29uc3QgRmxvYXRTaXplJiB0b3RhbENv
bnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQpIHsgbV90b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJh
bmQgPSB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7IH0KIAorICAgIE92ZXJzY3JvbGxC
ZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Q7CisgICAgT3ZlcnNj
cm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Q7CiAgICAgU2Ny
b2xsRWxhc3RpY2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5OyB9
CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVycy52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNp
dHk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgK
aW5kZXggZWFlMDkzYjFlZi4uNGY5NjMxNzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCkBAIC05Miw2ICs5Miw5IEBAIHByaXZhdGU6CiAgICAg
RmxvYXRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICBi
b29sIHNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25zdCBvdmVycmlkZTsKKwogICAgIHZvaWQg
cmVsZWFzZVJlZmVyZW5jZXNUb1Njcm9sbGVySW1wc09uVGhlTWFpblRocmVhZCgpOwogCiAgICAg
U2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IGE4Y2U2OWFjZmIuLmQ4MTk2NjRi
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CkBAIC0xOTEsNiArMTkxLDkgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1l
cj4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3IKIAogYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NIb3Jpem9udGFsU3RyZXRj
aGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CiB7CisgICAg
aWYgKHNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIHN3aXRjaCAoaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkoKSkgewogICAgIGNhc2Ug
U2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpYzogewogICAgICAgICBib29sIHNjcm9sbGJhcnNBbGxv
d1N0cmV0Y2hpbmcgPSBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8ICFoYXNFbmFi
bGVkVmVydGljYWxTY3JvbGxiYXIoKTsKQEAgLTIxMyw2ICsyMTYsOSBAQCBib29sIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6b250YWxTdHJldGNoaW5n
KGNvbnN0IFBsYQogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6
OmFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpIGNvbnN0CiB7CisgICAgaWYgKHNob3VsZFN0b3BWZXJ0aWNhbFN0cmVjaCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICBzd2l0Y2ggKHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSgpKSB7CiAgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QXV0b21hdGljOiB7CiAgICAgICAgIGJv
b2wgc2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyA9IGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJh
cigpIHx8ICFoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcigpOwpAQCAtMzc0LDYgKzM4MCwx
NiBAQCBGbG9hdFNpemUgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6dmll
d3BvcnRTaXplKCkgY29uc3QKIH0KICNlbmRpZgogCitib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OnNob3VsZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZSgpLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Io
KSA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZSgpLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9y
KCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRm9y
UmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uKSBjb25z
dAogewogICAgIGlmICghc2Nyb2xsaW5nVHJlZSgpLmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAppbmRleCA1M2YwNzNjNjY2Li4wY2Nj
NTNmNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTQ2LDYgKzQ2
LDEyIEBAIGVudW0gY2xhc3MgU2Nyb2xsVHlwZSA6IGJvb2wgewogICAgIFByb2dyYW1tYXRpYwog
fTsKIAorZW51bSBjbGFzcyBPdmVyc2Nyb2xsQmVoYXZpb3IgOiB1aW50OF90IHsKKyAgICBBdXRv
ID0gMCwKKyAgICBDb250YWluLAorICAgIE5vbmUKK307CisKIGVudW0gU2Nyb2xsRGlyZWN0aW9u
IDogdWludDhfdCB7CiAgICAgU2Nyb2xsVXAsCiAgICAgU2Nyb2xsRG93biwKQEAgLTI0Myw2ICsy
NDksMTEgQEAgZW51bSBjbGFzcyBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIDogdWludDhfdCB7
CiAgICAgU3RhdGlvbmFyeQogfTsKIAorc3RydWN0IElnbm9yZURlbHRhUmVxdWVzdCB7CisgICAg
Ym9vbCBpZ25vcmVYIHsgZmFsc2UgfTsKKyAgICBib29sIGlnbm9yZVkgeyBmYWxzZSB9OworfTsK
KwogdXNpbmcgU2Nyb2xsYmFyQ29udHJvbFN0YXRlID0gdW5zaWduZWQ7CiB1c2luZyBTY3JvbGxi
YXJDb250cm9sUGFydE1hc2sgPSB1bnNpZ25lZDsKIHVzaW5nIFNjcm9sbGluZ05vZGVJRCA9IHVp
bnQ2NF90OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGNh
ODZiYWE3MC4uYmEyOWZhNzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oCkBAIC0xMjAsNiArMTIwLDkgQEAgcHVibGljOgogICAgIGJvb2wgY29uc3RyYWluc1Nj
cm9sbGluZ1RvQ29udGVudEVkZ2UoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnNTY3JvbGxp
bmdUb0NvbnRlbnRFZGdlOyB9CiAgICAgdm9pZCBzZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250
ZW50RWRnZShib29sIGNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKSB7IG1fY29uc3Ry
YWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UgPSBjb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50
RWRnZTsgfQogCisgICAgdmlydHVhbCBPdmVyc2Nyb2xsQmVoYXZpb3IgaG9yaXpvbnRhbE92ZXJz
Y3JvbGxCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsg
fQorICAgIHZpcnR1YWwgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2
aW9yKCkgY29uc3QgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9yOjpBdXRvOyB9CisKICAgICB2
b2lkIHNldFZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eShTY3JvbGxFbGFzdGljaXR5IHNjcm9sbEVs
YXN0aWNpdHkpIHsgbV92ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPSBzY3JvbGxFbGFzdGljaXR5
OyB9CiAgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxTY3JvbGxFbGFzdGljaXR5PihtX3ZlcnRpY2FsU2Nyb2xs
RWxhc3RpY2l0eSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5oCmluZGV4IDAwYjMyNjMxNjguLmUwMDUwOTI3OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTExMyw2
ICsxMTMsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBzY3JvbGxFeHRlbnQo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Qg
PSAwOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFN0b3BIb3Jpem9udGFsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNlbmRpZgogfTsKIAogZW51bSBjbGFzcyBXaGVlbEV2ZW50U3RhdHVzIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IDAw
NmZlMWNmYzcuLmVlMTg1NjFjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMjUyLDcgKzI1Miw4IEBAIGJvb2wgU2Nyb2xs
Q29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgbV9vdmVyZmxvd1Njcm9sbERlbHRhLnNldFdpZHRoKG1fb3ZlcmZsb3dTY3JvbGxEZWx0
YS53aWR0aCgpICsgZGVsdGFYKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
c2hvdWxkU3RyZXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCghZGVsdGFYIHx8ICFt
X2NsaWVudC5zaG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpKSAmJiAoIWRlbHRhWSB8fCAhbV9j
bGllbnQuc2hvdWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkpKQorICAgICAgICAgICAgICAgICAgICBz
aG91bGRTdHJldGNoID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXgg
NjJiMmJkMjk5OS4uNjU3NjdmYTYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwcml2YXRlOgogICAg
IGJvb2wgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgogCisgICAgYm9vbCBz
aG91bGRTdG9wSG9yaXpvbnRhbFN0cmVjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hv
dWxkU3RvcFZlcnRpY2FsU3RyZWNoKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBib29sIG1faGF2
ZVNjcm9sbGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBk
YXRlOwogICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMDlkODA1
OGI1Yi4uYWIzMzJhYTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgU2Nyb2xsQW5p
bWF0b3JNYWM6OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3Jv
bGxlclRodW1iCiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29v
cmRpbmF0ZXM7CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFN0b3BIb3Jpem9u
dGFsU3RyZWNoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5ob3Jpem9u
dGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQor
Citib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTdG9wVmVydGljYWxTdHJlY2goKSBjb25z
dAoreworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2
aW9yKCkgPT0gT3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGZkMDJiNTFhMTIuLmVmZDI2ZmE3YWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQ0Myw2ICsz
NDQzLDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIG1fcmVzaXplci0+cmVwYWludFJlY3RhbmdsZShy
ZWN0KTsKIH0KIAorT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxheWVyOjpob3Jpem9udGFsT3Zl
cnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zdHlsZSgp
Lm92ZXJzY3JvbGxCZWhhdmlvclgoKTsKK30KKworT3ZlcnNjcm9sbEJlaGF2aW9yIFJlbmRlckxh
eWVyOjp2ZXJ0aWNhbE92ZXJzY3JvbGxCZWhhdmlvcigpICBjb25zdAoreworICAgIHJldHVybiBy
ZW5kZXJlcigpLnN0eWxlKCkub3ZlcnNjcm9sbEJlaGF2aW9yWSgpOworfQorCiBzdGF0aWMgYm9v
bCBzY3JvbGxiYXJIaWRkZW5CeVN0eWxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIHJl
dHVybiBzY3JvbGxiYXIgJiYgc2Nyb2xsYmFyLT5pc0hpZGRlbkJ5U3R5bGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZDgzNzNhYWU4MS4uODEzMjNkMjkwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ4Myw2ICs0ODMsOSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1
cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJh
cigpIGNvbnN0IHsgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsYmFyKCk7IH0KIAorICAgIE92ZXJzY3Jv
bGxCZWhhdmlvciBob3Jpem9udGFsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QgZmluYWw7Cisg
ICAgT3ZlcnNjcm9sbEJlaGF2aW9yIHZlcnRpY2FsT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3Qg
ZmluYWw7CisKICAgICBib29sIGhvcml6b250YWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckhpZGRlbkJ5U3R5bGUoKSBjb25z
dCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAppbmRleCA2N2UyMzY5YzcwLi4xOWZlYzgyNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlJl
bmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKICNpbmNsdWRl
ICJTVkdSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAi
U2hhZG93RGF0YS5oIgogI2luY2x1ZGUgIlNoYXBlVmFsdWUuaCIKICNpbmNsdWRlICJTdHlsZUJh
Y2tncm91bmREYXRhLmgiCkBAIC0zMjcsNiArMzI4LDkgQEAgcHVibGljOgogICAgIE92ZXJmbG93
IG92ZXJmbG93SW5saW5lRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IG92ZXJmbG93WCgpIDogb3ZlcmZsb3dZKCk7IH0KICAgICBPdmVyZmxvdyBv
dmVyZmxvd0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IG92ZXJmbG93WSgpIDogb3ZlcmZsb3dYKCk7IH0KICAgICBib29sIGlzT3ZlcmZs
b3dWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gb3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2li
bGUgfHwgb3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7IH0KKworICAgIE92ZXJzY3Jv
bGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JYKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xs
QmVoYXZpb3JYKTsgfQorICAgIE92ZXJzY3JvbGxCZWhhdmlvciBvdmVyc2Nyb2xsQmVoYXZpb3JZ
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3ZlcnNjcm9sbEJlaGF2aW9yPihtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5vdmVyc2Nyb2xsQmVoYXZpb3JZKTsgfQogICAgIAogICAgIFZpc2li
aWxpdHkgdmlzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpc2liaWxpdHk+
KG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSk7IH0KICAgICBWZXJ0aWNhbEFsaWduIHZlcnRp
Y2FsQWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWZXJ0aWNhbEFsaWduPihtX25v
bkluaGVyaXRlZEZsYWdzLnZlcnRpY2FsQWxpZ24pOyB9CkBAIC04OTEsNiArODk1LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRPdmVyZmxvd1goT3ZlcmZsb3cgdikgeyBtX25vbkluaGVyaXRl
ZEZsYWdzLm92ZXJmbG93WCA9ICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odik7IH0KICAgICB2b2lk
IHNldE92ZXJmbG93WShPdmVyZmxvdyB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Mub3ZlcmZsb3dZ
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOyB9CisgICAgdm9pZCBzZXRPdmVyc2Nyb2xsQmVo
YXZpb3JYKE92ZXJzY3JvbGxCZWhhdmlvciB2KSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVk
RGF0YSwgb3ZlcnNjcm9sbEJlaGF2aW9yWCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQor
ICAgIHZvaWQgc2V0T3ZlcnNjcm9sbEJlaGF2aW9yWShPdmVyc2Nyb2xsQmVoYXZpb3IgdikgeyBT
RVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG92ZXJzY3JvbGxCZWhhdmlvclksIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih2KSk7IH0KICAgICB2b2lkIHNldFZpc2liaWxpdHkoVmlzaWJpbGl0
eSB2KSB7IG1faW5oZXJpdGVkRmxhZ3MudmlzaWJpbGl0eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2KTsgfQogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbihWZXJ0aWNhbEFsaWduIHYpIHsgbV9u
b25Jbmhlcml0ZWRGbGFncy52ZXJ0aWNhbEFsaWduID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYp
OyB9CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCYmIGxlbmd0aCkgeyBz
ZXRWZXJ0aWNhbEFsaWduKFZlcnRpY2FsQWxpZ246Okxlbmd0aCk7IFNFVF9WQVIobV9ib3hEYXRh
LCBtX3ZlcnRpY2FsQWxpZ24sIFdURk1vdmUobGVuZ3RoKSk7IH0KQEAgLTE0NzEsNiArMTQ3Nyw5
IEBAIHB1YmxpYzoKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVz
CiAgICAgc3RhdGljIE92ZXJmbG93IGluaXRpYWxPdmVyZmxvd1goKSB7IHJldHVybiBPdmVyZmxv
dzo6VmlzaWJsZTsgfQogICAgIHN0YXRpYyBPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyBy
ZXR1cm4gT3ZlcmZsb3c6OlZpc2libGU7IH0KKyAgICBzdGF0aWMgT3ZlcnNjcm9sbEJlaGF2aW9y
IGluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkgeyByZXR1cm4gT3ZlcnNjcm9sbEJlaGF2aW9y
OjpBdXRvOyB9CisgICAgc3RhdGljIE92ZXJzY3JvbGxCZWhhdmlvciBpbml0aWFsT3ZlcnNjcm9s
bEJlaGF2aW9yWSgpIHsgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0bzsgfQorCiAgICAg
c3RhdGljIENsZWFyIGluaXRpYWxDbGVhcigpIHsgcmV0dXJuIENsZWFyOjpOb25lOyB9CiAgICAg
c3RhdGljIERpc3BsYXlUeXBlIGluaXRpYWxEaXNwbGF5KCkgeyByZXR1cm4gRGlzcGxheVR5cGU6
OklubGluZTsgfQogICAgIHN0YXRpYyBFVW5pY29kZUJpZGkgaW5pdGlhbFVuaWNvZGVCaWRpKCkg
eyByZXR1cm4gVUJOb3JtYWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAxNWMzZTky
OTI1Li4wYmRjYjY5OTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02NCw2ICs2NCw4
IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEo
KQogICAgICwgc2Nyb2xsU25hcFBvcnQoU3R5bGVTY3JvbGxTbmFwUG9ydDo6Y3JlYXRlKCkpCiAg
ICAgLCBzY3JvbGxTbmFwQXJlYShTdHlsZVNjcm9sbFNuYXBBcmVhOjpjcmVhdGUoKSkKICNlbmRp
ZgorICAgICwgb3ZlcnNjcm9sbEJlaGF2aW9yWChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVy
U3R5bGU6OmluaXRpYWxPdmVyc2Nyb2xsQmVoYXZpb3JYKCkpKQorICAgICwgb3ZlcnNjcm9sbEJl
aGF2aW9yWShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxPdmVyc2Ny
b2xsQmVoYXZpb3JZKCkpKQogICAgICwgd2lsbENoYW5nZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdp
bGxDaGFuZ2UoKSkKICAgICAsIG1hc2soRmlsbExheWVyOjpjcmVhdGUoRmlsbExheWVyVHlwZTo6
TWFzaykpCiAgICAgLCBtYXNrQm94SW1hZ2UoTmluZVBpZWNlSW1hZ2U6OlR5cGU6Ok1hc2spCkBA
IC0xNDAsNiArMTQyLDggQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIHNjcm9sbFNu
YXBQb3J0KG8uc2Nyb2xsU25hcFBvcnQpCiAgICAgLCBzY3JvbGxTbmFwQXJlYShvLnNjcm9sbFNu
YXBBcmVhKQogI2VuZGlmCisgICAgLCBvdmVyc2Nyb2xsQmVoYXZpb3JYKG8ub3ZlcnNjcm9sbEJl
aGF2aW9yWCkKKyAgICAsIG92ZXJzY3JvbGxCZWhhdmlvclkoby5vdmVyc2Nyb2xsQmVoYXZpb3JZ
KQogICAgICwgY29udGVudChvLmNvbnRlbnQgPyBvLmNvbnRlbnQtPmNsb25lKCkgOiBudWxscHRy
KQogICAgICwgY291bnRlckRpcmVjdGl2ZXMoby5jb3VudGVyRGlyZWN0aXZlcyA/IG1ha2VVbmlx
dWU8Q291bnRlckRpcmVjdGl2ZU1hcD4oKm8uY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikK
ICAgICAsIGFsdFRleHQoby5hbHRUZXh0KQpAQCAtMjM5LDYgKzI0Myw4IEBAIGJvb2wgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIHNjcm9sbFNuYXBQb3J0ID09IG8uc2Nyb2xsU25hcFBv
cnQKICAgICAgICAgJiYgc2Nyb2xsU25hcEFyZWEgPT0gby5zY3JvbGxTbmFwQXJlYQogI2VuZGlm
CisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclggPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JY
CisgICAgICAgICYmIG92ZXJzY3JvbGxCZWhhdmlvclkgPT0gby5vdmVyc2Nyb2xsQmVoYXZpb3JZ
CiAgICAgICAgICYmIGNvbnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBhcmVQb2lu
dGluZ1RvRXF1YWxEYXRhKGNvdW50ZXJEaXJlY3RpdmVzLCBvLmNvdW50ZXJEaXJlY3RpdmVzKQog
ICAgICAgICAmJiBhbHRUZXh0ID09IG8uYWx0VGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXgg
ODE4Y2I2Mjc1NS4uZGU0MWMzYmQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xMzEsNiAr
MTMxLDkgQEAgcHVibGljOgogICAgIERhdGFSZWY8U3R5bGVTY3JvbGxTbmFwQXJlYT4gc2Nyb2xs
U25hcEFyZWE7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVkIG92ZXJzY3JvbGxCZWhhdmlvclggOiAy
OyAvLyBPdmVyc2Nyb2xsQmVoYXZpb3IKKyAgICB1bnNpZ25lZCBvdmVyc2Nyb2xsQmVoYXZpb3JZ
IDogMjsgLy8gT3ZlcnNjcm9sbEJlaGF2aW9yCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVu
dERhdGE+IGNvbnRlbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvdW50ZXJEaXJlY3RpdmVNYXA+
IGNvdW50ZXJEaXJlY3RpdmVzOwogICAgIFN0cmluZyBhbHRUZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNzEyN2Y5OWFiZS4uYTlm
OTQ2ZDk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC0yMTQ1LDYgKzIxNDUsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFTZXNz
aW9uTWV0YWRhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTWVkaWFTZXNzaW9uTQogCiB2
b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKKyAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
cjsKKyAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZpb3I7
CisKICAgICBlbmNvZGVyIDw8IHBhcmFtZXRlcnMuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHk7
CiAgICAgZW5jb2RlciA8PCBwYXJhbWV0ZXJzLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eTsKIApA
QCAtMjE2Miw2ICsyMTY1LDExIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2NyCiAKIGJvb2wgQXJn
dW1lbnRDb2RlcjxTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbXMpCiB7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbXMuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlvcikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtcy52ZXJ0aWNhbE92
ZXJzY3JvbGxCZWhhdmlvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1zLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1zLnZlcnRpY2FsU2Ny
b2xsRWxhc3RpY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCmluZGV4IGE5Zjg2ZDI4ZjguLmY0ZWE3NTU1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJpbmdNb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ku
aD4KQEAgLTg4NCw2ICs4ODUsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uPiB7CiAKIG5hbWVzcGFjZSBX
VEYgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok92ZXJzY3JvbGxC
ZWhhdmlvcj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6
T3ZlcnNjcm9sbEJlaGF2aW9yLAorICAgIFdlYkNvcmU6Ok92ZXJzY3JvbGxCZWhhdmlvcjo6QXV0
bywKKyAgICBXZWJDb3JlOjpPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW4sCisgICAgV2ViQ29y
ZTo6T3ZlcnNjcm9sbEJlaGF2aW9yOjpOb25lCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29sb3JTcGFjZT4gewogICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CiAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDIxOTdjMjczOGUuLjA3MzczMjZjZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTQyNCw2ICsxNDI0LDEz
IEBAIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkVuYWJsZSBTeW50aGV0aWMgRWRpdGluZyBDb21tYW5kcyIKICAgY2F0ZWdvcnk6
IGV4cGVyaW1lbnRhbAogCitPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkOgorICB0eXBlOiBib29s
CisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgT3ZlcnNj
cm9sbCBCZWhhdmlvciIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQ1NTIE92ZXJzY3Jv
bGwgQmVoYXZpb3IgcHJvdG90eXBlIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKIENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBk
ZWZhdWx0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXgg
ODEwYWRjZDRlNS4uMDVkNzljMmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMjMwLDEyICsyMzAs
MzEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpjb21taXRT
dGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICBTZXRGb3JTY29wZTxib29sPiB1cGRh
dGluZ0NoYW5nZShtX3VwZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CiAKICAgICBpZiAoc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVyKQorICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5v
ZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xs
YWJsZUFyZWFQYXJhbXMpCiAgICAgICAgIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkK
ICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJlYWNoYWJsZUNvbnRlbnRzU2l6ZSkKICAgICAgICAgfHwg
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbFBvc2l0aW9uKQogICAgICAgICB8fCBzY3JvbGxpbmdTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsT3Jp
Z2luKSkgewogICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAgICAgVUlT
Y3JvbGxWaWV3ICpzY3JvbGxWaWV3ID0gdGhpcy0+c2Nyb2xsVmlldygpOworCisgICAgICAgIC8v
IEZJWE1FKHJkYXI6Ly9wcm9ibGVtLzM0MzE1OTk3KTogVUlTY3JvbGxWaWV3IHNob3VsZCBoYXZl
IHNvbWUga2luZCBvZiBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsLWJlaGF2aW9yIHRvIGVuYWJsZS9k
aXNhYmxlOgorICAgICAgICAvLyAtIG5vbi1sb2NhbCBib3VuZGFyeSBkZWZhdWx0IGFjdGlvbnMg
KGUuZy4gc2Nyb2xsIGNoYWluaW5nKS4KKyAgICAgICAgLy8gLSBsb2NhbCBib3VuZGFyeSBkZWZh
dWx0IGFjdGlvbnMgKGUuZy4gYm91bmNpbmcpLgorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisgICAgICAgIC8vIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbXMpKSB7CisgICAg
ICAgIC8vICAgICBzY3JvbGxWaWV3Lm92ZXJzY3JvbGxCZWhhdmlvckhvcml6b250YWwgPSBjb252
ZXJ0T3ZlcnNjcm9sbEJlaGF2aW9yRnJvbVdlYktpdFRvVUlLaXQoc2Nyb2xsaW5nU3RhdGVOb2Rl
LnNjcm9sbGFibGVBcmVhUGFyYW1ldGVycygpLmhvcml6b250YWxPdmVyc2Nyb2xsQmVoYXZpb3Ip
OworICAgICAgICAvLyAgICAgc2Nyb2xsVmlldy5vdmVyc2Nyb2xsQmVoYXZpb3JWZXJ0aWNhbCA9
IGNvbnZlcnRPdmVyc2Nyb2xsQmVoYXZpb3JGcm9tV2ViS2l0VG9VSUtpdChzY3JvbGxpbmdTdGF0
ZU5vZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkudmVydGljYWxPdmVyc2Nyb2xsQmVoYXZp
b3IpOworICAgICAgICAvLyB9CisjZW5kaWYKKyAgICAgICAgLy8gRm9yIG5vdywgd2Ugb25seSBk
aXNhYmxlIGJvdW5jaW5nIHdoZW4gYm90aCBvdmVyZmxvdy14IGFuZCBvdmVyZmxvdy15IGFyZSBu
b25lLgorICAgICAgICAvLyBVSVNjcm9sbFZpZXc6OmFsd2F5c0JvdW5jZSogZnVuY3Rpb25zIGNh
bm5vdCBoZWxwIGhlcmUuCisgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsYWJsZUFyZWFQYXJh
bXMpKSB7CisgICAgICAgICAgICBzY3JvbGxWaWV3LmJvdW5jZXMgPSBzY3JvbGxpbmdTdGF0ZU5v
ZGUuc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKCkuaG9yaXpvbnRhbE92ZXJzY3JvbGxCZWhhdmlv
ciA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgICYmIHNjcm9sbGluZ1N0
YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoKS52ZXJ0aWNhbE92ZXJzY3JvbGxCZWhh
dmlvciA9PSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmUKKyAgICAgICAgICAgID8gTk8gOiBZRVM7
CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbENvbnRhaW5lckxheWVy
KSkgewogICAgICAgICAgICAgaWYgKCFtX3Njcm9sbFZpZXdEZWxlZ2F0ZSkKICAgICAgICAgICAg
ICAgICBtX3Njcm9sbFZpZXdEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1Njcm9sbGluZ05vZGVTY3Jv
bGxWaWV3RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZTp0
aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwODY4MDQ3Zjk1Li4yMzc1MmRkYTg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE5Miw2ICsxOTIsNyBAQAogI2RlZmluZSBXZWJLaXRE
b3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkIgogI2RlZmluZSBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZp
c3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9y
dEFQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NP
TVZpZXdTY3JvbGxpbmdBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NPTVZpZXdTbW9vdGhT
Y3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU09NVmlld1Ntb290aFNjcm9s
bGluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggZDgx
M2MyZGUzZC4uMWY3ZGI2YWVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NzAsNiArNjcwLDcgQEAgcHVibGljOgogICAg
ICAgICBAWUVTLCBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5LAog
I2VuZGlmCiAKKyAgICAgICAgQE5PLCBXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJl
ZmVyZW5jZUtleSwKICAgICAgICAgQFlFUywgV2ViS2l0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBOTywgV2ViS2l0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBZRVMsIFdlYktpdE5lZWRzU3Rv
cmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrS2V5LApAQCAtMzIxMyw2ICszMjE0LDE2IEBAIHN0
YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9v
bFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwogfQogCistIChCT09MKW92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0T3ZlcnNjcm9sbEJlaGF2aW9yRW5h
YmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpX
ZWJLaXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJP
T0wpQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9v
bFZhbHVlRm9yS2V5OldlYktpdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGVhZjk1NTYzYmMuLmQ3N2Q5MzJmZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaApAQCAtNjU5LDYgKzY1OSw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5j
ZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtIChC
T09MKXVzZXJHZXN0dXJlUHJvbWlzZVByb3BhZ2F0aW9uRW5hYmxlZDsKIAogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkOworQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgb3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDNiMTE0ZGIzNDcuLmI4NzRl
ZGRhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTMxNzksNiArMzE3OSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxlTG9hZGlu
Z1F1aXJrKCkKIAogICAgIHNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChbcHJl
ZmVyZW5jZXMgdmlzdWFsVmlld3BvcnRBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZChbcHJlZmVyZW5jZXMgc3ludGhldGljRWRpdGlu
Z0NvbW1hbmRzRW5hYmxlZF0pOworICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxCZWhhdmlvckVu
YWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRdKTsKICAgICBzZXR0
aW5ncy5zZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZp
ZXdTY3JvbGxpbmdBUElFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0Q1NTT01WaWV3U21vb3Ro
U2Nyb2xsaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5h
YmxlZF0pOwogICAgIHNldHRpbmdzLnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KFtwcmVmZXJlbmNlcyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5kZXggOWE4NzVkNDc5ZS4uY2Uw
MTcyYmFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBAIC0yNjksNCArMjY5LDYgQEAg
aW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU4IDogSVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTcKICAgICBIUkVTVUxUIHNldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoW2luXSBCT09M
IGVuYWJsZWQpOwogICAgIEhSRVNVTFQgbW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0TW9kZXJuVW5wcmVm
aXhlZFdlYkF1ZGlvRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBvdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkKFsgb3V0LCByZXR2YWwgXSBCT09MKik7CisgICAgSFJFU1VM
VCBzZXRPdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
aW5kZXggMmEyMTIxYWRiOS4uYTJmMWI4ZTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE5OCw2ICsxOTgsOCBAQAog
CiAjZGVmaW5lIFdlYktpdENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkUHJlZmVy
ZW5jZUtleSAiV2ViS2l0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQiCiAKKyNk
ZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktp
dE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQiCisKICNkZWZpbmUgV2ViS2l0VXNlclRpbWluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKIAogI2RlZmluZSBX
ZWJLaXRSZXNvdXJjZVRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRSZXNvdXJjZVRp
bWluZ0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAK
aW5kZXggOTNkZThhMzIwYS4uY2VlNjQ0YmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMzQxLDYgKzM0MSw4IEBAIHZvaWQgV2ViUHJlZmVyZW5j
ZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVm
YXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKKwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRz
LCBDRlNUUihXZWJLaXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5GYWxzZSk7CkBAIC0yMjY5LDYgKzIyNzEsMjAgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6
c2V0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICByZXR1cm4gU19P
SzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEJlaGF2aW9yRW5hYmxl
ZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0
dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVy
c2Nyb2xsQmVoYXZpb3JFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgcmV0dXJuIFNfT0s7Cit9
CisKK0hSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQo
Qk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsQmVoYXZp
b3JFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisK
IEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OkNTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoX091
dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCAyNDM3YjBlNzYyLi4yNjA0ZDllMTQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTI2NSw2ICsyNjUsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEluc3Bl
Y3RvckFkZGl0aW9uc0VuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZChCT09MKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9s
bEJlaGF2aW9yRW5hYmxlZChfT3V0XyBCT09MKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQoQk9PTCk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKF9PdXRf
IEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggYmY2OGE3MTQ1ZC4u
ZDVjZTVhZmRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTUzMzQsNiAr
NTMzNCwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2Vi
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0
aW5ncy5zZXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0g
cHJlZnNQcml2YXRlLT5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkKCZlbmFibGVkKTsKKyAgICBp
ZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92ZXJz
Y3JvbGxCZWhhdmlvckVuYWJsZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRl
LT5DU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVE
KGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3Bw
CmluZGV4IDA2NDU3ZGZkZmQuLjNhODIzMTUwYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5jcHAKQEAgLTEzOCw2ICsxMzgsOCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAg
ICAgICAgICAgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgPSB2YWx1ZTsKICAgICAgICAg
ZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6V2ViR1BVRW5hYmxlZCIpCiAgICAgICAgICAg
ICBlbmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOworICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xsQmVoYXZpb3JFbmFi
bGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxCZWhhdmlvciA9IHBhcnNlQm9vbGVh
blRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJu
YWw6Q1NTTG9naWNhbEVuYWJsZWQiKQogICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNhbCA9IHBh
cnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9
PSAiaW50ZXJuYWw6TGluZUhlaWdodFVuaXRzRW5hYmxlZCIpCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuaAppbmRleCBjNWM4Yzg1OTkyLi4yY2E2MTk5NDBkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBi
b29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVNlbGVjdGlv
bkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVXZWJHUFUg
eyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yIHsgZmFsc2UgfTsK
ICAgICBib29sIGVuYWJsZUNTU0xvZ2ljYWwgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlTGlu
ZUhlaWdodFVuaXRzIHsgZmFsc2UgfTsKICAgICBib29sIGFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJs
ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CmluZGV4IDZmN2RmMDY5YzEuLmZlMmJmYTMzYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTgzOSw2ICs4MzksNyBAQCBzdGF0aWMgdm9pZCBlbmFi
bGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAg
W3ByZWZlcmVuY2VzIHNldENTU1NoYWRvd1BhcnRzRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwog
ICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107
CisgICAgW3ByZWZlcmVuY2VzIHNldE92ZXJzY3JvbGxCZWhhdmlvckVuYWJsZWQ6WUVTXTsKIH0K
IAogLy8gQ2FsbGVkIGJlZm9yZSBlYWNoIHRlc3QuCkBAIC05ODYsNiArOTg3LDcgQEAgc3RhdGlj
IHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYg
b3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRpb25zLmVu
YWJsZUNvbG9yRmlsdGVyOwogICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0Jv
dW5kYXJpZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3Vu
ZGFyaWVzOwogICAgIHByZWZlcmVuY2VzLndlYkdQVUVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVdl
YkdQVTsKKyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsQmVoYXZpb3JFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVPdmVyc2Nyb2xsQmVoYXZpb3I7CiAgICAgcHJlZmVyZW5jZXMuQ1NTTG9naWNhbEVu
YWJsZWQgPSBvcHRpb25zLmVuYWJsZUNTU0xvZ2ljYWw7CiAgICAgcHJlZmVyZW5jZXMubGluZUhl
aWdodFVuaXRzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlTGluZUhlaWdodFVuaXRzOwogICAgIHBy
ZWZlcmVuY2VzLmFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQgPSBvcHRpb25zLmFkQ2xpY2tBdHRy
aWJ1dGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAppbmRleCAxNGRjM2QzNDNhLi5mMzY1MTdhNWIzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTkyNSw2ICs5MjUsNyBAQCBzdGF0aWMgdm9p
ZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKElXZWJQcmVmZXJlbmNlcyogcHJlZmVy
ZW5jZXMsIGNvbnN0CiAgICAgcHJlZmVyZW5jZXMtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
b3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc1Bh
Z2VDYWNoZShvcHRpb25zLmVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIHByZWZzUHJpdmF0
ZS0+c2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZChvcHRpb25zLmVuYWJsZUNTU09N
Vmlld1Ntb290aFNjcm9sbGluZyk7CisgICAgcHJlZnNQcml2YXRlLT5zZXRPdmVyc2Nyb2xsQmVo
YXZpb3JFbmFibGVkKG9wdGlvbnMuZW5hYmxlT3ZlcnNjcm9sbEJlaGF2aW9yKTsKIH0KIAogc3Rh
dGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>408213</attachid>
            <date>2020-09-07 22:47:13 -0700</date>
            <delta_ts>2020-09-07 22:47:13 -0700</delta_ts>
            <desc>testcases of overscroll-behavior-y</desc>
            <filename>overscroll-behavior-y.html</filename>
            <type>text/html</type>
            <size>2926</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPk92ZXJzY3JvbGwgQmVo
YXZpb3I8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCI+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgogICAgPHN0eWxlPgogICAg
ICAuc2Nyb2xsaW5nIHsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93
LXk6IGF1dG87CiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogICAg
ICB9CiAgICAgIC5zY3JvbGxDb250ZW50IHsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3Jh
ZGllbnQoMTM1ZGVnLCByZWQsIGJsdWUpOwogICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICBo
ZWlnaHQ6IDMwMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAg
IDxoMT5vdmVyc2Nyb2xsLWJlaGF2aW9yLXk8L2gxPgoKICAgIDxoMj5vdmVyZmxvdywgYXV0bzwv
aDI+CiAgICA8ZGl2IGNsYXNzPSJzY3JvbGxpbmciIHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdo
dDogMjAwcHg7Ij4KICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5nIiBzdHlsZT0id2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMHB4OyBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IGF1dG87Ij4KICAgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxDb250ZW50Ij4xPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8
ZGl2IGNsYXNzPSJzY3JvbGxDb250ZW50Ij4yPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8aDI+b3Zl
cmZsb3csIGNvbnRhaW48L2gyPgogICAgPGRpdiBjbGFzcz0ic2Nyb2xsaW5nIiBzdHlsZT0id2lk
dGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+CiAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGluZyIg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgb3ZlcnNjcm9sbC1iZWhhdmlvci15
OiBjb250YWluOyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsQ29udGVudCI+MzwvZGl2Pgog
ICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsQ29udGVudCI+NDwvZGl2PgogICAg
PC9kaXY+CgogICAgPGgyPm92ZXJmbG93LCBub25lPC9oMj4KICAgIDxkaXYgY2xhc3M9InNjcm9s
bGluZyIgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiPgogICAgICA8ZGl2IGNs
YXNzPSJzY3JvbGxpbmciIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IG92ZXJz
Y3JvbGwtYmVoYXZpb3IteTogbm9uZTsiPgogICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbENvbnRl
bnQiPjU8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNjcm9sbENvbnRlbnQi
PjY8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxoMj5pZnJhbWUsIGF1dG88L2gyPgogICAgPGlmcmFt
ZSBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyIgc3JjZG9jPSI8aWZyYW1lIHN0
eWxlPSZxdW90O3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsmcXVvdDsgc3JjZG9jPSZxdW90
OyZhbXA7bHQ7aHRtbCBzdHlsZT0nb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBhdXRvJmFtcDtndDsm
YW1wO2x0O2RpdiBzdHlsZT0mYW1wO3F1b3Q7d2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBi
YWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGJsdWUpOyZhbXA7cXVvdDsm
YW1wO2d0OyZhbXA7bHQ7L2RpdiZhbXA7Z3Q7JmFtcDtsdDsvaHRtbCZhbXA7Z3Q7JnF1b3Q7Pjwv
aWZyYW1lPjxkaXYgc3R5bGU9JnF1b3Q7d2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNr
Z3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZWQsIGJsdWUpOyZxdW90Oz48L2Rpdj4i
PjwvaWZyYW1lPgoKICAgIDxoMj5pZnJhbWUsIGNvbnRhaW48L2gyPgogICAgPGlmcmFtZSBzdHls
ZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyIgc3JjZG9jPSI8aWZyYW1lIHN0eWxlPSZx
dW90O3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsmcXVvdDsgc3JjZG9jPSZxdW90OyZhbXA7
bHQ7aHRtbCBzdHlsZT0nb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluJyZhbXA7Z3Q7JmFt
cDtsdDtkaXYgc3R5bGU9JmFtcDtxdW90O3dpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFj
a2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBibHVlKTsmYW1wO3F1b3Q7JmFt
cDtndDsmYW1wO2x0Oy9kaXYmYW1wO2d0OyZhbXA7bHQ7L2h0bWwmYW1wO2d0OyZxdW90Oz48L2lm
cmFtZT48ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFja2dy
b3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmVkLCBibHVlKTsmcXVvdDs+PC9kaXY+Ij48
L2lmcmFtZT4KCiAgICA8aDI+aWZyYW1lLCBub25lPC9oMj4KICAgIDxpZnJhbWUgc3R5bGU9Indp
ZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsiIHNyY2RvYz0iPGlmcmFtZSBzdHlsZT0mcXVvdDt3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7JnF1b3Q7IHNyY2RvYz0mcXVvdDsmYW1wO2x0O2h0
bWwgc3R5bGU9J292ZXJzY3JvbGwtYmVoYXZpb3IteTogbm9uZScmYW1wO2d0OyZhbXA7bHQ7ZGl2
IHN0eWxlPSZhbXA7cXVvdDt3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgYmx1ZSk7JmFtcDtxdW90OyZhbXA7Z3Q7JmFt
cDtsdDsvZGl2JmFtcDtndDsmYW1wO2x0Oy9odG1sJmFtcDtndDsmcXVvdDs+PC9pZnJhbWU+PGRp
diBzdHlsZT0mcXVvdDt3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6IGxp
bmVhci1ncmFkaWVudCgxMzVkZWcsIHJlZCwgYmx1ZSk7JnF1b3Q7PjwvZGl2PiI+PC9pZnJhbWU+
CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>